JavaWeb之简单的学生信息管理系统(一)
JavaWeb之简单的学生信息管理系统(二)
JavaWeb之简单的学生信息管理系统(三)

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

一、 查询学生信息

1. index.jsp

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

<a href="StudentListServlet">显示所有学生列表</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 */@Overridepublic 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{@Overridepublic 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">添加</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="#">更新</a>  <a href="#">删除</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-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
 @Overridepublic 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
 @Overridepublic void insert(Student student) throws SQLException {StudentDao dao = new StudentDaoImpl();dao.insert(student);}
5. 注意
  1. 完成了上述存储工作之后,需要跳转到列表页面,这里不能直接跳转到列表页面,否则没有什么内容显示。应该先跳转到查询所有学生信息的那个servlet,即StudentListServlet,再由这个servlet跳转到列表页面。
request.getRequestDispatcher("StudentListServlet").forward(request, response);
  1. 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之简单的学生信息管理系统(二)相关推荐

  1. JavaWeb 入门 最简单的学生信息管理系统

    最近在学习JavaWeb,整理一下.写了个很简单的学生信息管理系统.系统只包括简单的对学生信息进行增删改查.系统采用三层设计模式. 先展示一下系统的业务处理逻辑图: 逻辑如图所示,获取前端用户交互信息 ...

  2. c++ stl list实现简单的学生信息管理系统

    c++ stl list实现简单的学生信息管理系统 问题描述: 已知有20个学生记录(包括学号.姓名.成绩)的文件student.dat.要求编程序实现查询.排序.插入.删除诸功能. 系统的基本功能: ...

  3. 用python设计学生管理系统_基于python和tkinter实现的一个简单的学生信息管理系统...

    一个简单的学生信息管理系统基于python和tkinter 1.需求分析1.大学生信息管理系统使用tkinter接口创建一个窗口.使界面更漂亮.2. 实现与数据库的连接,教师和学生的信息可以保存或读取 ...

  4. python成绩管理系统设计 gui csdn_用golang简单编写学生信息管理系统

    用golang简单编写学生信息管理系统 发布时间:2020-09-04 11:45:16编辑:三青(参考七米老师的视频)查看次数:187 student.gopackage main import & ...

  5. Java语言写一个简单的学生信息管理系统,通过JDBC连接数据库对学生信息进行增删改查,采用三层思想和DBUtils第三方框架。

    我把源代码和sql文件放GitHub上了,你们可以自行下载:https://github.com/fenglily1/student. 有问题可以留言或私信,我看到就会回. 进阶版加上页面的管理系统在 ...

  6. java实现简单的学生信息管理系统

    java实现简单的学生信息管理系统(无界面) 学生类实体: package com.edu.imau.wcy;public class Stu {private String stuNum;//学号p ...

  7. php编写一个学生类_PHP实现简单的学生信息管理系统(web版)

    (∩_∩) 1.概述 学了php的一些基础,包括HTML,php,pdo,mysql操作等,一直都没有将它们有机结合.最近写了一个简单的网页版学生信息管理系统,前台用HTML,脚本用到了JavaScr ...

  8. php学籍信息管理系统心得_PHP实现简单的学生信息管理系统(web版)

    (∩_∩) 1.概述 学了php的一些基础,包括HTML,php,pdo,mysql操作等,一直都没有将它们有机结合.最近写了一个简单的网页版学生信息管理系统,前台用HTML,脚本用到了JavaScr ...

  9. 学生信息系统求助_Student Information Management -一个简单的学生信息管理系统(持续更新2)...

    这次更新的内容 1:优化了增加学生信息的函数 2:   增加了删除学生信息的功能 系统图 图片发自简书App 第一次见到的库和函数 #include "memory.h" void ...

最新文章

  1. 博士大佬为机器学习总结的人工智能入门指南!
  2. P2657 [SCOI2009]windy数 数位dp入门
  3. 常用jQuery代码分享
  4. Mysql主从常见问题
  5. Sqlserver中格式化日期作为查询条件的语句写法
  6. 网易2016年研发project师编程题(2)
  7. mybatis获取表名——mybatis动态调用表名和字段名#{},${}
  8. 2021年360奢侈品用户观察报告
  9. 效率源希捷硬盘远程维修案例-K9K10盘写认流程
  10. 智能优化算法:水基湍流优化算法-附代码
  11. 【机器学习】精确率Precision和召回率recall等评价指标记录
  12. [0 to 0.5]从零开始学习Android动画知识(上)
  13. 学报格式和论文格式一样吗_求《浙江大学学报》的论文格式要求 - 论文投稿 - 小木虫 - 学术 科研 互动社区...
  14. 2012移动开发者经济学
  15. xx学院学员评优评奖管理系统
  16. 服务器日志修改保存时间,日志服务保留时间
  17. 瑞星杀毒软件影响Applet无法启动的解决方法
  18. 10个最有效的微信推广方法
  19. JAVA导出excel 直接弹出下载框
  20. 【飞轮储能】基于simulink的飞轮储能发电系统的仿真

热门文章

  1. 软件著作权和专利权有什么不同
  2. 发现一个好玩的东西:Markdown 使用 Emoji 表情
  3. 小型搬运式AGV小车L100具体参数应用场景
  4. [渝粤教育] 南宁学院 应用文写作 参考 资料
  5. c++程序员必知必会的技术,推荐你们一份qt书单
  6. mfc CDHtmlDialog htm5 写的tribon套料软件显示不正常
  7. Hubble Zhang的学习日记(第十二周)
  8. 基于SSM实现快递代取单管理系统
  9. 一个乳腺癌组织病理图像数据集和几种常用的特征提取方法、常用的分类算法
  10. js验证密码 必须由大小写字母、数字和特殊字符组成