欢迎您访问 最编程 本站为您分享编程语言代码,编程技术文章!
您现在的位置是: 首页

使用Servlet、JSP和JavaBean进行Web数据库的增删改查操作

最编程 2024-08-11 08:47:44
...

1.开始之前的准备(servlet+jsp+javaBean增删改查)

  • jsp:页面的请求和展示
  • 在前台主要学了jsp进行页面的请求和展示
  • java后台
  • mysql数据库
  • 学习了java如何进行数据库增删改查
  • JDBC
  • JDBC重构Dao
  • Dao进行sql语句
  • 将数据库的获取结果响应到页面上
  • 页面向后台进行请求
  • 请求:(url:http://xx.8080/student.do)
  • servlet进行响应
  • jsp+servlet+javaBean+mysql === M2
  • 代码准备
  • StudentServlet.java
package com.Li;

import java.io.IOException;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

/**
 * @desc Student 模块的 Servlet
 * @author Li Ya Hui 
 * @time   2021年6月2日 上午8:34:22
 */
public class StudentServlet extends HttpServlet {

    @Override
    protected void service(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        System.out.println("Student--->service");
    }
}

index.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
    <head>
        <meta charset="UTF-8">
        <title>JSP+Servlet+JavaBean实现表单的增删改查</title>
    </head>
    <body>
        <a href="<%=request.getContextPath()%>/student.do">Student模块的全部查询 </a>
    </body>
</html>

web.xml

<servlet>
    <servlet-name>ser</servlet-name>
    <servlet-class>com.Li.StudentServlet</servlet-class>
</servlet>

<servlet-mapping>
    <servlet-name>ser</servlet-name>
    <url-pattern>/studnet.do</url-pattern>
</servlet-mapping>

2.查询

  • 首先创建一个Dao(连接数据库)
  • 然后创建一个查询的类StudnetService实例化Dao(StudnetService)
  • 在StudentServlet里创建一个StudnetService对象的query方法
  • query方法将数据转成list然后再存储到request对象里去
  • 在StudentServlet里service方法里获取链接里的method如果匹配 调用 query查询方法
  • 在主页面里写一个超链接,超链接为 Student模块的全部查询
  • method的参数为query代表我的一个匹配参数
  • 当servlet匹配成功时,会将request.getRequestDispatcher("/jsps/studnet/list_student.jsp").forward(request, response);发送请求
  • 子页面接收数据的代码(list_student.jsp)
<%@page import="java.util.Map"%>
<%@page import="java.util.List"%>
<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Student 模块的查询展示界面</title>
<style type="text/css">
  *{
    margin: 0;
    padding: 0;
  }
  table{
  border-width:2px;
    border-color: red;
    text-align: center;
  }
</style>
</head>
<body>
  <table border="1">
    <tr>
      <td>学号</td>
      <td>姓名</td>
      <td>年龄</td>
      <td>性别</td>
      <td>操作</td>
    </tr>
    <%
      List list = (List) request.getAttribute("list");
      for(int i = 0 ; i < list.size() ; i++)
      {
        Map map =(Map) list.get(i);
    %>
    <tr>
      <td><%=map.get("sno") %></td>
      <td><%=map.get("sname") %></td>
      <td><%=map.get("sage") %></td>
      <td><%=map.get("ssex") %></td>
      <td>
        <a href="#">添加</a>
        <a href="#">修改</a>
        <a href="#">删除</a>
      </td>
    </tr>
    <%
      }
    %>
  </table>
</body>
</html>

配置web.xml

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://JAVA.sun.com/xml/ns/javaee" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" version="3.0">
  <display-name>WebM2Demo001</display-name>
  <welcome-file-list>
    <welcome-file>index.html</welcome-file>
    <welcome-file>index.htm</welcome-file>
    <welcome-file>index.jsp</welcome-file>
    <welcome-file>default.html</welcome-file>
    <welcome-file>default.htm</welcome-file>
    <welcome-file>default.jsp</welcome-file>
  </welcome-file-list>
  <servlet>
    <servlet-name>StudentServlet</servlet-name>
    <servlet-class>com.Li.student.StudentServlet</servlet-class>
  </servlet>
  <servlet-mapping>
    <servlet-name>StudentServlet</servlet-name>
    <url-pattern>/student.do</url-pattern>
  </servlet-mapping>
</web-app>

3.删除

  • 删除的第一步,首先给删除的按钮加上链接:">删除
  • method=delete 制造关键字


  • sno=<%=map.get(“sno”) %> 制造主键


  • 在StudentServlet的service方法里添加method=delete时的方法,调用delete方法


  • delete方法里调用StudentService里的deleteBySno方法
/**
   * @desc 根据学号删除了一条学生信息
   * @param sno
   * @throws SQLException 
   * @throws ClassNotFoundException 
   */
  public void deleteBySno(String sno) throws ClassNotFoundException, SQLException {
    // 删除
    dao.executeUpdate(" delete from student where sno='"+sno+"'");
  }

在StudentServlet的delete方法里进行重定向

//2.调用studentService中的方法执行sql语句实现删除该条记录
studentservice.deleteBySno(sno);
//3.重定向:刷新   重新指向新的页面  简介进行刷新页面
response.sendRedirect(request.getContextPath()+"/student.do?method=query");

4.添加

  • 添加的第一步,首先给添加按钮加上链接:添加
  • method=addPage 代表要进入信息添加页面
  • 新建student模块添加页面
<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>student模块的添加页面</title>
<style type="text/css">
  *{
    margin:0;
    padding:0;  
  }

</style>
</head>
<body>
  <form action="<%=request.getContextPath()%>/student.do?method=add" method="post">
    <table border="2" algin="center">
      <tr>
        <td>姓名</td>
        <td><input type="text" name="sname" value=""/></td>
      </tr>
      <tr>
        <td>年龄</td>
        <td><input type="text" name="sage" value=""/></td>
      </tr>
      <tr>
        <td>性别</td>
        <td><input type="text" name="ssex" value=""/></td>
      </tr>
      <tr>
        <td colspan="2"><input type="submit" style="display:block;margin:auto;" value="提交"/></td>
      </tr>
    </table>
  </form>
</body>
</html>

在添加页面的表单里提交地址为:action="<%=request.getContextPath()%>/student.do?method=add"

因为表单存在英文,当前前台向后台用form表单传输数据时,需要设定编码request.setCharacterEncoding("utf-8");

  • 在StudentService里service判断里添加else if(“addPage”.equals(method)) {this.addPage(request,response);
    }
  • 在StudentService里service判断里添加
else if("add".equals(method)) {
    this.add(request,response);
}

在StudentService里添加add数据方法

/**
   * @desc 保存添加页面的数据
   * @param request
   * @param response
   * @throws SQLException 
   * @throws ClassNotFoundException 
   * @throws IOException 
   */
  private void add(HttpServletRequest request, HttpServletResponse response) throws ClassNotFoundException, SQLException, IOException {
    System.out.println("StudentServlet--->add()");
    //1.接值
    String sname = request.getParameter("sname");
    String sage = request.getParameter("sage");
    String ssex = request.getParameter("ssex");
    
    System.out.println(sname+sage+ssex);
    //2.调用StudentService中的方法执行sql语句实现将数据保存到mysql数据库中
    studentservice.save(sname,sage,ssex);
    
    //3.进行重定向(刷新)
    response.sendRedirect(request.getContextPath()+"/student.do?method=query");
  }

还需要在StudentService里添加一个save保存方法

/**
   * @desc 根据前台的信息从而添加一条学生信息到数据库
   * @param sname
   * @param sage
   * @param ssex
   * @throws SQLException 
   * @throws ClassNotFoundException 
   */
  public void save(String sname, String sage, String ssex) throws ClassNotFoundException, SQLException {
    dao.executeUpdate("insert into student values ('"+UUID.randomUUID().toString().substring(0, 9)+"','"+sname+"','"+Integer.parseInt(sage)+"','"+ssex+"')");
  }
  • 测试添加数据(完成)

5.修改

5.1.进入修改的页面

  • 首先讲展示数据页面的修改连接改为

上一篇: 打造校园新闻网站的第7步:发布新闻功能实现

下一篇: Jsp 的映射

推荐阅读