温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

JavaWeb实现学生信息管理系统之二

发布时间:2021-08-16 09:35:21 来源:亿速云 阅读:169 作者:chen 栏目:开发技术

这篇文章主要讲解了“JavaWeb实现学生信息管理系统之二”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“JavaWeb实现学生信息管理系统之二”吧!

本文接着上一篇,继续为大家分享了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. 查找结果如下:

JavaWeb实现学生信息管理系统之二

二、添加学生信息

1. add.jsp

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

<body>  <h4>添加学生页面</h4>    <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>

实现结果如下:

JavaWeb实现学生信息管理系统之二

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. 添加结果如下:

JavaWeb实现学生信息管理系统之二

JavaWeb实现学生信息管理系统之二

未完待续。。。

感谢各位的阅读,以上就是“JavaWeb实现学生信息管理系统之二”的内容了,经过本文的学习后,相信大家对JavaWeb实现学生信息管理系统之二这一问题有了更深刻的体会,具体使用情况还需要大家实践验证。这里是亿速云,小编将为大家推送更多相关知识点的文章,欢迎关注!

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI