JavaWeb实现学生信息管理系统(2)

本文接着上一篇,继续为大家分享了JavaWeb实现学生信息管理系统的第二篇,供大家参考,具体内容如下

今日任务:实现学生管理系统的查找和添加功能!

一、查询学生信息

1. index.jsp

先写一个JSP页面【WebContent/index.jsp】,里面放一个超链接

<a href="StudentListServlet" rel="external nofollow" >显示所有学生列表</a>

2. StudentListServlet.java

写StudentListServlet【com.servlet包下的StudentListServlet.java】,接受请求,去调用service,再由service调用dao

package com.servlet;

import java.io.IOException;
import java.sql.SQLException;
import java.util.List;

import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import com.domain.Student;
import com.service.StudentService;
import com.service.impl.StudentServiceImpl;

/**
 *
 * 负责查询所有的学生信息,然后呈现到list.jsp页面上
 *
 */
@WebServlet("/StudentListServlet")
public class StudentListServlet extends HttpServlet {

 protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {

  try {
   //1.查询出来所有的学生
   StudentService service = new StudentServiceImpl();
   List<Student> list = service.findAll();

   //2.先把数据存储到作用域中
   //3..跳转页面

  } catch (SQLException e) {

   e.printStackTrace();
  }

 }

 protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
  doGet(request, response);
 }

}

3. StudentDao.java & StudentDaoImpl.java

3.1 StudentDao.java【com.dao包下】

package com.dao;

import java.sql.SQLException;
import java.util.List;

import com.domain.Student;

/**
 * 这是针对学生表的数据访问
 * @author Administrator
 *
 */
public interface StudentDao {
 /**
  * 查询所有学生
  * @return  List<Student>
  */
 List<Student> findAll() throws SQLException;
}

3.2 StudentDaoImpl.java【com.dao.impl包下】

实现StudentDao里的findAll()方法。

public class StudentDaoImpl implements StudentDao {
 /**
  * 查询所有学生
  * @throws SQLException
  */
 @Override
 public List<Student> findAll() throws SQLException {

  QueryRunner runner = new QueryRunner(JDBCUtil02.getDataSource());
  String sql = "select * from stu";
  List<Student> list = runner.query(sql, new BeanListHandler<Student>(Student.class));
  return list;
 }
}

4. StudentService.java 和 StudentService.java

4.1 StudentService.java

代码同StudentDao.java,

public interface StudentService {

 /**
  * 查询所有学生
  * @return   List<Student>
  *
  */
 List<Student> findAll() throws SQLException;

}

4.2 StudentService.java

public class StudentServiceImpl implements StudentService{

 @Override
 public List<Student> findAll() throws SQLException {
  StudentDao dao = new StudentDaoImpl();
  return dao.findAll();
 }
}

5. 在StudentListServlet存储数据,并作出页面响应

//2.先把数据存储到作用域中
request.setAttribute("list", list);

//3..跳转页面
request.getRequestDispatcher("list.jsp").forward(request, response);

6. list.jsp

在list.jsp【WebContent/list.jsp】上显示数据。

<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>学生列表页面 </title>
</head>
<body>
 <table border="1" width="700">

  <tr>
   <td colspan="8">
    <a href="add.jsp" rel="external nofollow" >添加</a>
   </td>
  </tr>

  <tr align="center">
   <td>编号</td>
   <td>姓名</td>
   <td>性别</td>
   <td>电话</td>
   <td>生日</td>
   <td>爱好</td>
   <td>简介</td>
   <td>操作</td>
  </tr>

  <c:forEach items="${list }" var="stu">
   <tr align="center">
   <td>${stu.sid }</td>
   <td>${stu.sname }</td>
   <td>${stu.gender }</td>
   <td>${stu.phone }</td>
   <td>${stu.birthday }</td>
   <td>${stu.hobby }</td>
   <td>${stu.info }</td>
   <td><a href="#" rel="external nofollow"  rel="external nofollow" >更新</a>  <a href="#" rel="external nofollow"  rel="external nofollow" >删除</a></td>
  </tr>
  </c:forEach>

 </table>
</body>
</html>

7. 查找结果如下:

二、添加学生信息

1. add.jsp

我们需要先跳转到增加页面,编写增加页面add.jsp【WebContent/add.jsp】

<body>

 <h3>添加学生页面</h3>

 <form action="AddServlet" method="post">
  <table border="1" width="600">
   <tr>
    <td>姓名</td>
    <td><input type="text" name="sname"></td>
   </tr>
   <tr>
    <td>性别</td>
    <td>
     <input type="radio" name="gender" value="男">男
     <input type="radio" name="gender" value="女">女
    </td>
   </tr>
   <tr>
    <td>电话</td>
    <td><input type="text" name="phone"></td>
   </tr>
   <tr>
    <td>生日</td>
    <td><input type="text" name="birthday"></td>
   </tr>
   <tr>
    <td>爱好</td>
    <td>
     <input type="checkbox" name="hobby" value="游泳">游泳
     <input type="checkbox" name="hobby" value="篮球">篮球
     <input type="checkbox" name="hobby" value="足球">足球
     <input type="checkbox" name="hobby" value="看书">看书
     <input type="checkbox" name="hobby" value="写字">写字
    </td>
   </tr>
   <tr>
    <td>简介</td>
    <td>
     <textarea rows="3" cols="20" name="info"></textarea>
    </td>
   </tr>
   <tr>
    <td colspan="2"><input type="submit" value="添加"></td>
   </tr>
  </table>
 </form>

</body>

实现结果如下:

2. AddServlet.java

点击添加,提交数据到AddServlet,处理数据。
【备:com.servlet包下的AddServlet.java】

protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {

  request.setCharacterEncoding("utf-8");

  try {

   //1.获取客户端提交上来的数据
   String sname = request.getParameter("sname");
   String gender = request.getParameter("gender");
   String phone = request.getParameter("phone");
   String birthday = request.getParameter("birthday");  //传过来是1989-10-18
   String info = request.getParameter("info");

   //String hobby = request.getParameter("hobby");
   String [] h = request.getParameterValues("hobby");
   //[篮球,足球,写字]-----篮球,足球,写字
   String hobby = Arrays.toString(h);
   hobby = hobby.substring(1,hobby.length()-1);

   //2.添加到数据库

   //String-------Date
   Date date = new SimpleDateFormat("yyyy-MM-dd").parse(birthday);

   Student student = new Student(sname,gender,phone,hobby,info,date);
   StudentService service = new StudentServiceImpl();
   service.insert(student);

   //3.跳转到列表页
   //这里是直接跳转到页面上,那么这个页面会重新翻译一次,上面那个request里面的数据就没有了
   //request.getRequestDispatcher("list.jsp").forward(request, response);

   //servlet除了能跳jsp之外,还能跳servlet
   request.getRequestDispatcher("StudentListServlet").forward(request, response);

  } catch (Exception e) {
   e.printStackTrace();
  }

 }

3. StudentDao & StudentService

 /**
  * 添加学生
  * @param student  需要添加到数据库的学生对象
  * @throws SQLException
  */
 void insert(Student student) throws SQLException;

4. Dao & Service的实现

4.1 StudentDaoImpl.java

 @Override
 public void insert(Student student) throws SQLException {

  QueryRunner runner = new QueryRunner(JDBCUtil02.getDataSource());
  String sql = "insert into stu values(null,?,?,?,?,?,?)";
  runner.update(sql,
    student.getSname(),
    student.getGender(),
    student.getPhone(),
    student.getBirthday(),
    student.getHobby(),
    student.getInfo()

    );
 }

4.2 StudentServiceImpl.java

@Override
 public void insert(Student student) throws SQLException {
  StudentDao dao = new StudentDaoImpl();
  dao.insert(student);

 }

5. 注意

完成了上述存储工作之后,需要跳转到列表页面,这里不能直接跳转到列表页面,否则没有什么内容显示。应该先跳转到查询所有学生信息的那个servlet,即StudentListServlet,再由这个servlet跳转到列表页面。

request.getRequestDispatcher("StudentListServlet").forward(request, response);

hobby的value有多个值。处理时需多次转化:

//String hobby = request.getParameter("hobby");
String [] h = request.getParameterValues("hobby");
//[篮球,足球,写字]-----篮球,足球,写字
String hobby = Arrays.toString(h);
hobby = hobby.substring(1,hobby.length()-1);

6. 添加结果如下:

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持我们。

(0)

相关推荐

  • javaWeb实现学生信息管理系统

    本文为大家分享了javaWeb实现学生信息管理系统,供大家参考,具体内容如下 初始版 初始版是没有加分页的.因为没怎么学过前端,界面很丑陋.主要技术:JSP,JavaBean,servlet,JDBC主要页面如下: 登录页面 主页 添加学生 查看所有学生 查询学生 工程目录 数据库 两个表,user表和student表.为了使用DBUtils工具,一定要注意数据库表的属性的命名和JavaBean的get(),set() 方法的匹配.比如t_user表里的uname,在JavaBean中是:pri

  • JavaWeb实现学生信息管理系统(1)

    这是一个很简单的学生信息管理系统,会用到很多小知识,比如说: 数据库连接池 DBUtils JSP.EL.JSTL MVC设计模式 JavaWeb之简单的学生信息管理系统(一) JavaWeb之简单的学生信息管理系统(二) JavaWeb之简单的学生信息管理系统(三) 一.需求分析 实现一个简单的学生信息管理系统,具体实现功能有如下: 1.查询学生的息并列表展示 2.添加学生信息 3.删除学生信息 4.更新(修改)学生信息 5.模糊查询 二.准备工作 1. 创建数据库stus以及创建数据库表st

  • JavaWeb实现学生信息管理系统(3)

    本文接着第二篇,继续为大家分享了JavaWeb实现学生信息管理系统,供大家参考,具体内容如下 今日任务:实现学生管理系统的删除.更新.修改和模糊查询功能! 一.删除学生信息 点击超链接,弹出一个询问是否删除的对话框,如果点击了确定,删除此学生的信息. 1. 超链接执行一个js方法 <a href="#" rel="external nofollow" onclick="doDelete(${stu.sid})">删除</a>

  • JavaWeb实现学生信息管理系统(2)

    本文接着上一篇,继续为大家分享了JavaWeb实现学生信息管理系统的第二篇,供大家参考,具体内容如下 今日任务:实现学生管理系统的查找和添加功能! 一.查询学生信息 1. index.jsp 先写一个JSP页面[WebContent/index.jsp],里面放一个超链接 <a href="StudentListServlet" rel="external nofollow" >显示所有学生列表</a> 2. StudentListServl

  • JavaWeb实现学生信息管理系统(2)

    本文接着上一篇,继续为大家分享了JavaWeb实现学生信息管理系统的第二篇,供大家参考,具体内容如下 今日任务:实现学生管理系统的查找和添加功能! 一.查询学生信息 1. index.jsp 先写一个JSP页面[WebContent/index.jsp],里面放一个超链接 <a href="StudentListServlet" rel="external nofollow" >显示所有学生列表</a> 2. StudentListServl

  • JavaWeb实现学生信息管理系统(3)

    本文接着第二篇,继续为大家分享了JavaWeb实现学生信息管理系统,供大家参考,具体内容如下 今日任务:实现学生管理系统的删除.更新.修改和模糊查询功能! 一.删除学生信息 点击超链接,弹出一个询问是否删除的对话框,如果点击了确定,删除此学生的信息. 1. 超链接执行一个js方法 <a href="#" onclick="doDelete(${stu.sid})">删除</a> 在doDelete()方法里判断点击的选项,然后跳转到Delet

  • JavaWeb实现学生信息管理系统(1)

    这是一个很简单的学生信息管理系统,会用到很多小知识,比如说: 数据库连接池 DBUtils JSP.EL.JSTL MVC设计模式 JavaWeb之简单的学生信息管理系统(一) JavaWeb之简单的学生信息管理系统(二) JavaWeb之简单的学生信息管理系统(三) 一.需求分析 实现一个简单的学生信息管理系统,具体实现功能有如下: 1.查询学生的息并列表展示 2.添加学生信息 3.删除学生信息 4.更新(修改)学生信息 5.模糊查询 二.准备工作 1. 创建数据库stus以及创建数据库表st

  • java学生信息管理系统源代码

    本文实例为大家分享了java学生信息管理系统的具体代码,实现学生信息: 增加 int[] a=new int[9] .删除 .查找.更改,供大家参考,具体内容如下 /*学生信息管理系统,实现学生信息: *增加 int[] a=new int[9] *删除 *查找 *更改 */ import java.util.Scanner;//导入java输入流 import java.lang.*; import java.io.*; class Student { private static Stude

  • JSP学生信息管理系统

    本文实例为大家分享了JSP学生信息管理系统源码,JSP+Servlet+Javabean+JDBC+MySQL,供大家参考,具体内容如下 1.service层,进行数据库操作     package com.service; /** * 负责学生信息的所有数据库操作,增删改查 */ import java.sql.Connection; import java.sql.PreparedStatement; import java.sql.ResultSet; import java.sql.SQ

  • C++学生信息管理系统

    本文实例为大家分享了C++学生信息管理系统源码,供大家参考,具体内容如下 1. tea_list.c #include<stdio.h> #include<stdlib.h> #include<string.h> #include"teacher.h" int sq_tea ; PTEA head = NULL ; FILE *fp ; int tea_llopen(const char* path)//打开文件 { fp=fopen(path,&q

随机推荐