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

本文接着上一篇,继续为大家分享了JavaWeb实现学生信息管理系统的第二篇,供大家参考,具体内容如下
今日任务:实现学生管理系统的查找和添加功能!
一、查询学生信息
1. index.jsp
先写一个JSP页面【WebContent/index.jsp】,里面放一个超链接

显示所有学生列表

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 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 { /*** 查询所有学生* @returnList*/ List findAll() throws SQLException; }

3.2 StudentDaoImpl.java【com.dao.impl包下】
实现StudentDao里的findAll()方法。
public class StudentDaoImpl implements StudentDao { /*** 查询所有学生* @throws SQLException */ @Override public List findAll() throws SQLException {QueryRunner runner = new QueryRunner(JDBCUtil02.getDataSource()); String sql = "select * from stu"; List list = runner.query(sql, new BeanListHandler(Student.class)); return list; }}

4. StudentService.java 和 StudentService.java
4.1 StudentService.java
【JavaWeb实现学生信息管理系统(2)】代码同StudentDao.java,
public interface StudentService { /*** 查询所有学生* @returnList* */ List findAll() throws SQLException; }

4.2 StudentService.java
public class StudentServiceImpl implements StudentService{ @Override public List 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】上显示数据。
学生列表页面 - 锐客网
添加
编号姓名性别电话生日爱好简介操作
${stu.sid }${stu.sname }${stu.gender }${stu.phone }${stu.birthday }${stu.hobby }${stu.info }更新删除

7. 查找结果如下:
JavaWeb实现学生信息管理系统(2)
文章图片

二、添加学生信息
1. add.jsp
我们需要先跳转到增加页面,编写增加页面add.jsp【WebContent/add.jsp】
添加学生页面
姓名
性别
电话
生日
爱好游泳篮球足球看书写字
简介

实现结果如下:
JavaWeb实现学生信息管理系统(2)
文章图片

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-18String 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-------DateDate 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之外,还能跳servletrequest.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. 添加结果如下:
JavaWeb实现学生信息管理系统(2)
文章图片

JavaWeb实现学生信息管理系统(2)
文章图片

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

    推荐阅读