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. 添加结果如下:
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持猪先飞。
相关文章
- 这篇文章主要为大家详细介绍了python实现学生通讯录管理系统,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下...2021-02-25
- 护卫神·主机管理系统该版本支持在Windows Server 200320082012,含32位和64位,直接开设配置WEB站、FTP站,以及SQL Server和MySQL,是您开设和管理虚拟主机的绝好帮手。但是对于新用户可能在使用上有一些困难,因此请仔细阅读如下说明文档...2016-01-27
- 本文给大家介绍一个不错的需要登录的php 文件上传管理系统,功能简单有需要了解的同学可参考。 代码如下<?php$admin_pw="admin";//管理密码$uploaddir="upload";//上传目录session_start();if($_GET['action']=="g...2015-10-30
- 这篇文章主要为大家想详细介绍了C++学生信息管理系统的实现代码,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下...2020-04-25
- 这篇文章主要为大家详细介绍了C语言学生成绩管理系统小设计,具有一定的参考价值,感兴趣的小伙伴们可以参考一下...2020-04-25
- 本文介绍了个人的《零压健身房管理系统(扁平化)》的基本流程和功能点的介绍,虚心接受各位的意见,欢迎在提出宝贵的意见,大家一起探讨学习...2021-09-26
- 这篇文章主要介绍了JavaWeb实战之编写单元测试类测试数据库操作,文中有非常详细的代码示例,对正在学习javaweb的小伙伴们有很大的帮助,需要的朋友可以参考下...2021-04-22
- 这篇文章主要为大家详细介绍了C++顺序表实现图书管理系统,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下...2021-10-13
- 这篇文章主要介绍了基于python实现银行管理系统,文中有非常详细的代码示例,对正在学习python项目制作的小伙伴们有很好的帮助,需要的朋友可以参考下...2021-04-19
- 读万卷书不如行万里路,只学书上的理论是远远不够的,只有在实战中才能获得能力的提升,本篇文章手把手带你用Java 集合实现一个客户信息管理系统,大家可以在过程中查缺补漏,提升水平...2021-11-11
- [原创]php+ajax实现模拟Win文件管理系统 // 本教程由本站原创,转载请注明来处 作者:www.111cn.net 邮箱:drise@163.com QQ:271728967 // 就是deldir()函数了这个函数的...2016-11-25
- 这篇文章主要为大家详细介绍了C语言实现学生学籍管理系统,具有一定的参考价值,感兴趣的小伙伴们可以参考一下...2020-04-25
NPOINT免费虚拟主机管理系统windows2003的安装方法【图文】第1/2页
这是一款免费的虚拟主机管理系统,无限制,并可以二次开发...2016-01-27- 在本篇文章里小编给大家整理的是一篇关于Django后台管理系统的图文使用教学内容,需要的朋友们参考下。...2020-04-22
- 这篇文章主要为大家详细介绍了C语言实现职工管理系统,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下...2020-04-25
- 随着网络技术的高速发展,计算机应用的普及,利用计算机对图书馆的日常工作进行管理势在必行,本篇文章手把手带你用Java实现一个图书管理系统,大家可以在过程中查缺补漏,提升水平...2021-10-21
- 这篇文章主要为大家详细介绍了java控制台实现学生信息管理系统的集合版,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下...2021-04-28
- 这篇文章主要介绍了jQuery实现B2B网站后台管理系统侧导航,文中示例代码非常详细,帮助大家更好的理解和学习,感兴趣的朋友可以了解下...2020-07-09
- 这篇文章主要为大家详细介绍了基于SSM实现学生管理系统,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下...2020-12-18
- 这篇文章主要介绍了spring+mybatis实现图书管理系统...2020-06-18