JavaWeb之简单的学生信息管理系统(二)
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. 注意
- 完成了上述存储工作之后,需要跳转到列表页面,这里不能直接跳转到列表页面,否则没有什么内容显示。应该先跳转到查询所有学生信息的那个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之简单的学生信息管理系统(二)相关推荐
- JavaWeb 入门 最简单的学生信息管理系统
最近在学习JavaWeb,整理一下.写了个很简单的学生信息管理系统.系统只包括简单的对学生信息进行增删改查.系统采用三层设计模式. 先展示一下系统的业务处理逻辑图: 逻辑如图所示,获取前端用户交互信息 ...
- c++ stl list实现简单的学生信息管理系统
c++ stl list实现简单的学生信息管理系统 问题描述: 已知有20个学生记录(包括学号.姓名.成绩)的文件student.dat.要求编程序实现查询.排序.插入.删除诸功能. 系统的基本功能: ...
- 用python设计学生管理系统_基于python和tkinter实现的一个简单的学生信息管理系统...
一个简单的学生信息管理系统基于python和tkinter 1.需求分析1.大学生信息管理系统使用tkinter接口创建一个窗口.使界面更漂亮.2. 实现与数据库的连接,教师和学生的信息可以保存或读取 ...
- python成绩管理系统设计 gui csdn_用golang简单编写学生信息管理系统
用golang简单编写学生信息管理系统 发布时间:2020-09-04 11:45:16编辑:三青(参考七米老师的视频)查看次数:187 student.gopackage main import & ...
- Java语言写一个简单的学生信息管理系统,通过JDBC连接数据库对学生信息进行增删改查,采用三层思想和DBUtils第三方框架。
我把源代码和sql文件放GitHub上了,你们可以自行下载:https://github.com/fenglily1/student. 有问题可以留言或私信,我看到就会回. 进阶版加上页面的管理系统在 ...
- java实现简单的学生信息管理系统
java实现简单的学生信息管理系统(无界面) 学生类实体: package com.edu.imau.wcy;public class Stu {private String stuNum;//学号p ...
- php编写一个学生类_PHP实现简单的学生信息管理系统(web版)
(∩_∩) 1.概述 学了php的一些基础,包括HTML,php,pdo,mysql操作等,一直都没有将它们有机结合.最近写了一个简单的网页版学生信息管理系统,前台用HTML,脚本用到了JavaScr ...
- php学籍信息管理系统心得_PHP实现简单的学生信息管理系统(web版)
(∩_∩) 1.概述 学了php的一些基础,包括HTML,php,pdo,mysql操作等,一直都没有将它们有机结合.最近写了一个简单的网页版学生信息管理系统,前台用HTML,脚本用到了JavaScr ...
- 学生信息系统求助_Student Information Management -一个简单的学生信息管理系统(持续更新2)...
这次更新的内容 1:优化了增加学生信息的函数 2: 增加了删除学生信息的功能 系统图 图片发自简书App 第一次见到的库和函数 #include "memory.h" void ...
最新文章
- 博士大佬为机器学习总结的人工智能入门指南!
- P2657 [SCOI2009]windy数 数位dp入门
- 常用jQuery代码分享
- Mysql主从常见问题
- Sqlserver中格式化日期作为查询条件的语句写法
- 网易2016年研发project师编程题(2)
- mybatis获取表名——mybatis动态调用表名和字段名#{},${}
- 2021年360奢侈品用户观察报告
- 效率源希捷硬盘远程维修案例-K9K10盘写认流程
- 智能优化算法:水基湍流优化算法-附代码
- 【机器学习】精确率Precision和召回率recall等评价指标记录
- [0 to 0.5]从零开始学习Android动画知识(上)
- 学报格式和论文格式一样吗_求《浙江大学学报》的论文格式要求 - 论文投稿 - 小木虫 - 学术 科研 互动社区...
- 2012移动开发者经济学
- xx学院学员评优评奖管理系统
- 服务器日志修改保存时间,日志服务保留时间
- 瑞星杀毒软件影响Applet无法启动的解决方法
- 10个最有效的微信推广方法
- JAVA导出excel 直接弹出下载框
- 【飞轮储能】基于simulink的飞轮储能发电系统的仿真