jsp+servlet+jdbc实现学生表的CRUD

3 篇文章 0 订阅
1 篇文章 0 订阅

1.技术使用

jsp+Servlet+jdbc

idea 2020.3

Mysql 5.8

tomcat 8.5

sqlYog 8.7

2.准备工具

jdbc 驱动下载:

针对于5.8以上的mysql驱动要专门的升级驱动

传送门: mysql-connector-java-8.0.13.jar/.keep · xuge/java - Gitee.com

3.框架搭建

3.1建立学生信息表

CREATE TABLE studentbase (
id INT UNSIGNED NOT NULL AUTO_INCREMENT COMMENT '学号',
NAME VARCHAR(75)   COMMENT '姓名',
sex VARCHAR(30) COMMENT '性别',
age INT (11) COMMENT '年龄',
major VARCHAR(120) COMMENT '专业',
department VARCHAR(120) COMMENT '院系',
telephone VARCHAR(45)  COMMENT '电话号码',
email VARCHAR(120) COMMENT '邮箱',
PRIMARY KEY(id)
	
) ENGINE=INNODB;

3.2建立Web工程

src目录

image-20211210231356465

image-20211210231356465

Web目录

image-20211210231455091

4.前菜

到这步来得话应该各位都执行了创建表

4.1连接数据源

image-20211210232348431

点击右侧的DataBase

image-20211210232433681

Data Source -->Mysql --

image-20211210232554498

测试连接

image-20211210232622033

连接通过

4.2实现数据库的表 的javaBean组件

按照表中的 id ,name,age,.sex....,依次建立属性,私有,并提供接口

package com.domain;

/**
 * @author yjx
 * @version 1.0
 */
public class student {
    private int  id;
    private String name;
    private String sex;
    private int age;
    private String major;
    private String department;
    private String telephone;
    private String email;

    public student() {

    }

    public student(int id, String name, String sex, int age, String major, String department,
                        String telephone, String email) {
        this.id = id;
        this.name = name;
        this.sex = sex;
        this.age = age;
        this.major = major;
        this.department = department;
        this.telephone = telephone;
        this.email = email;
    }

    public int getId() {
        return id;
    }

    public void setId(int id) {
        this.id = id;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public String getSex() {
        return sex;
    }

    public void setSex(String sex) {
        this.sex = sex;
    }

    public int getAge() {
        return age;
    }

    public void setAge(int age) {
        this.age = age;
    }

    public String getMajor() {
        return major;
    }

    public void setMajor(String major) {
        this.major = major;
    }

    public String getDepartment() {
        return department;
    }

    public void setDepartment(String department) {
        this.department = department;
    }

    public String getTelephone() {
        return telephone;
    }

    public void setTelephone(String telephone) {
        this.telephone = telephone;
    }

    public String getEmail() {
        return email;
    }

    public void setEmail(String email) {
        this.email = email;
    }

    @Override
    public String toString() {
        return "student{" +
                "id=" + id +
                ", name='" + name + '\'' +
                ", sex='" + sex + '\'' +
                ", age=" + age +
                ", major='" + major + '\'' +
                ", department='" + department + '\'' +
                ", telephone='" + telephone + '\'' +
                ", email='" + email + '\'' +
                '}';
    }
}

4.3实现获取数据库连接对象的工具类

package com.utils;

/*
 * @author yjx
 * @version 1.0
 */


import org.junit.Test;

import java.sql.*;

/**
 * 数据库工具
 */
public class DBUtil {
    private static String dbUrl = "jdbc:mysql://localhost:3306/student?user=root&password=609483" +
            "&useUnicode=true&characterEncoding=UTF8"; //数据库地址
    private static String dbUser = "root"; //数据库用户
    private static String dbPwd = "609483"; //数据库密码
    private static String dbDriver = "com.mysql.cj.jdbc.Driver"; //数据库驱动

    private static Connection conn = null;

    //获取连接
    public static Connection getConn() {
        if (null == conn) {
            try {
                Class.forName(dbDriver);
                conn = DriverManager.getConnection(dbUrl);
            } catch (ClassNotFoundException | SQLException e) {
                e.printStackTrace();
            }
        }
        return conn;
    }
    ///测试
    @Test
    public void test(){
        if(getConn() != null){
            System.out.println("数据库连接成功");
        }else{
            System.out.println("数据库连接失败");
        }
    }
}
 

用单元测试来测试数据库是否连接,需要引入junit 4.12.jar

4.4对数据库中的学生对象处理(CRUD)

package com.dao;

import com.domain.student;
import com.utils.DBUtil;
import org.junit.Test;

import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;

/**
 * @author yjx
 * @version 1.0
 */
public class studentDao {
    PreparedStatement pst = null;

    public List<student> getAllUser() {
        List<student> list = new ArrayList<>();
        Connection conn = DBUtil.getConn();
        String sql = "select * from studentbase";

        try {
            pst = conn.prepareStatement(sql);
            ResultSet rs = pst.executeQuery();
            while (rs.next()) {
                student stu = new student();
                stu.setId(rs.getInt("id"));
                stu.setName(rs.getString("name"));
                stu.setSex(rs.getString("sex"));
                stu.setAge(rs.getInt("age"));
                stu.setMajor(rs.getString("major"));
                stu.setDepartment(rs.getString("department"));
                stu.setTelephone(rs.getString("telephone"));
                stu.setEmail(rs.getString("email"));
                list.add(stu);
            }
//            Iterator iterator=list.iterator();
//            System.out.println("=====学生信息如下======");
//            while (iterator.hasNext()) {
//                Object next =  iterator.next();
//                System.out.println(next);
//
//            }

            rs.close();
            pst.close();
        } catch (SQLException e) {
            e.printStackTrace();
        }
        return list;
    }

    public boolean addStudent(student stu) {
        String sql = "insert into studentbase(id,NAME,sex,age,major,department,telephone,email) " +
                "values(?,?,?,?,?,?,?,?)";
        Connection conn = DBUtil.getConn();

        try {
            pst = conn.prepareStatement(sql);
            pst.setInt(1, stu.getId());
            pst.setString(2, stu.getName());
            pst.setString(3, stu.getSex());
            pst.setInt(4, stu.getAge());
            pst.setString(5, stu.getMajor());
            pst.setString(6, stu.getDepartment());
            pst.setString(7, stu.getTelephone());
            pst.setString(8, stu.getEmail());

            int count = pst.executeUpdate();
            pst.close();
            return count > 0;
        } catch (SQLException e) {
            e.printStackTrace();
        }
        return false;
    }

    public boolean deleteUser(int id) {
        String sql = "delete from studentbase where id = ?";
        Connection conn = DBUtil.getConn();

        try {
            pst = conn.prepareStatement(sql);
            pst.setInt(1, id);
            int count = 0;
            count = pst.executeUpdate();
            System.out.println(count);
            pst.close();
            if (count > 0) {
                System.out.println("删除success!!");
            } else {
                System.out.println("failed");
            }
            return count > 0;
        } catch (SQLException e) {
            System.out.println(e.getErrorCode() + "删除失败....");
        }
        return false;
    }

    public boolean updateUser(student stu,int id) {
        String sql = "update studentbase set id =?,NAME=?,sex=? ,age=?,major=?,department=?," +
                "telephone=?,email=?" +
                " where id="+id;
        Connection conn = DBUtil.getConn();

        try {
            pst = conn.prepareStatement(sql);
            pst.setInt(1, stu.getId());
            pst.setString(2, stu.getName());
            pst.setString(3, stu.getSex());
            pst.setInt(4, stu.getAge());
            pst.setString(5, stu.getMajor() + "");
            pst.setString(6, stu.getDepartment());
            pst.setString(7, stu.getTelephone());
            pst.setString(8, stu.getEmail());


            int count = pst.executeUpdate();
            pst.close();
            return count > 0;
        } catch (SQLException e) {
            e.printStackTrace();
        }
        return false;
    }

    public student findUserById(int id) {
        String sql = "select * from studentbase where id = " + id;
        Connection conn = DBUtil.getConn();
        student stu = null;

        try {
            pst = conn.prepareStatement(sql);
            ResultSet rs = pst.executeQuery();
            while (rs.next()) {
                stu = new student();
                stu.setId(rs.getInt("id"));
                stu.setName(rs.getString("name"));
                stu.setSex(rs.getString("sex"));
                stu.setAge(rs.getInt("age"));
                stu.setMajor(rs.getString("major"));
                stu.setDepartment(rs.getString("department"));
                stu.setTelephone(rs.getString("telephone"));
                stu.setEmail(rs.getString("email"));


            }

            pst.close();

        } catch (SQLException e) {
            e.printStackTrace();
        }
        return stu;
    }

    @Test
    public void test() {
        student stu = new student();
       stu.setId(1004);
       stu.setName("yjx");
       stu.setSex("男");
       stu.setAge(20);
       stu.setMajor("书记");
       stu.setDepartment("数学与计算机");
       stu.setTelephone("485545454");
       stu.setEmail("@45454.com");
        studentDao sd = new studentDao();
        sd.addStudent(stu);
        boolean b = false;

//        if(b){
//            System.out.println("添加success!!");
//        }else{
//            System.out.println("failed!!");
//        }

//        b=sd.deleteUser("1003");
//        System.out.println(sd.findUserById(10));
//        if (b) {
//            System.out.println("modify success!!");
//        } else {
//            System.out.println("failed!!");
//        }
        sd.updateUser(stu,1004);


    }


}
 

可以照我写得那样依次对方法进行测试,当然前提是数据库连接上了,不然NullPointerException那就不是我的事了哈哈哈哈

5.关于与前段jsp页面的交互(正餐)

AddServlet 关于在前端添加用户时,统过表单提交到这个servlet,来进行处理,再返回给前端页面

package com.servlet;

import com.dao.studentDao;
import com.domain.student;

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 java.io.IOException;
import java.text.ParseException;

/**
 * @author yjx
 * @version 1.0
 */
  @WebServlet("/addServlet")
    public class AddServlet extends HttpServlet {
        protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
            request.setCharacterEncoding("UTF-8");
            response.setContentType("text/html;charset=UTF-8");

            int  id= Integer.parseInt(request.getParameter("id"));
            String name = request.getParameter("name");
            String sex = request.getParameter("sex");
            int age = Integer.parseInt(request.getParameter("age"));
            String major = request.getParameter("major");
            String department = request.getParameter("department");
            String telephone = request.getParameter("telephone");
            String email = request.getParameter("email");


            student stu = new student();
            stu.setId(id);
            stu.setName(name);
            stu.setSex(sex);
            stu.setAge(age);
            stu.setMajor(major);
            stu.setDepartment(department);
            stu.setTelephone(telephone);
            stu.setEmail(email);
        /*u.setUsername(new String(username.getBytes("ISO-8859-1"),"UTF-8"));
        u.setPassword(new String(password.getBytes("ISO-8859-1"),"UTF-8"));*/
            studentDao sd = new studentDao();
            sd.addStudent(stu);
//            request.setCharacterEncoding("UTF-8");
            request.getRequestDispatcher("showServlet").forward(request,response);
        }

        protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
            doPost(request,response);
        }


}
 

DeleteServlet

package com.servlet;

import com.dao.studentDao;
import org.omg.PortableInterceptor.INACTIVE;

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 java.io.IOException;

/**
 * @author yjx
 * @version 1.0
 */
@WebServlet("/deleteServlet")
public class DeleteServlet extends HttpServlet {
    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
//        request.setCharacterEncoding("utf-8");
//        response.setContentType("utf-8");
        request.setCharacterEncoding("UTF-8");
        response.setContentType("text/html;charset=UTF-8");

        String idStr = request.getParameter("id");
        int id1=Integer.parseInt(idStr);
        studentDao sd = new studentDao();
        if (sd.deleteUser(id1)) {
            request.setAttribute("deleted", "删除成功!");
            request.getRequestDispatcher("showServlet").forward(request, response);
        } else {
            response.sendRedirect("showServlet");
        }
    }

    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        doPost(request, response);

    }
}
 

searchServlet

package com.servlet;

import com.dao.studentDao;
import com.domain.student;

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 javax.servlet.http.HttpSession;
import java.io.IOException;

/**
 * @author yjx
 * @version 1.0
 */
@WebServlet("/searchServlet")
public class searchServlet extends HttpServlet {
    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
//        request.setCharacterEncoding("utf-8");
//        response.setContentType("utf-8");
        request.setCharacterEncoding("UTF-8");
        response.setContentType("text/html;charset=UTF-8");
        doPost(request,response);

//        String idStr = request.getParameter("id");
//        if (idStr != null && !idStr.equals("")) {
//            int id = Integer.parseInt(idStr);
//            studentDao sd = new studentDao();
//            student user = sd.findUserById(id);
//            request.setAttribute("user", user);
//        }
//        request.getRequestDispatcher("search.jsp").forward(request, response);
    }

    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        int id = -1;
        try {
            id = Integer.parseInt(request.getParameter("id"));
        } catch (NumberFormatException e) {
            e.printStackTrace();
        }
        student stu = new student();
        studentDao sd = new studentDao();

        if(id!=-1){
            if(sd.findUserById(id)!=null){
                stu=sd.findUserById(id);
                HttpSession session = request.getSession();
                session.setAttribute("list",stu);
                request.getRequestDispatcher("searchSuccess.jsp").forward(request, response);
            }else{
                request.getRequestDispatcher("failed.jsp").forward(request, response);
            }
        }else{
            request.getRequestDispatcher("showServlet").forward(request, response);
        }



    }
}

 

不要问我为什么不用request来获取域对象中的数据,关于这个坑就是用request设置的没法在jsp页面中用request来获取,那我就用户session来保存这个list集合(student),然后再jsp页面用session俩获取域对象中的数据(即为学生对象组成的集合)

UpdateServlet

package com.servlet;

import com.dao.studentDao;
import com.domain.student;

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 javax.servlet.http.HttpSession;
import java.io.IOException;

/**
 * @author yjx
 * @version 1.0
 */

@WebServlet("/updateServlet")
public class UpdateServlet extends HttpServlet {
    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
//        request.setCharacterEncoding("utf-8");
//        response.setContentType("utf-8");
        request.setCharacterEncoding("UTF-8");
        response.setContentType("text/html;charset=UTF-8");
        //doPost(request,response);
//
        String idStr = request.getParameter("id");
        if (idStr != null && !idStr.equals("")) {
            int id = Integer.parseInt(idStr);
            studentDao sd = new studentDao();
            student user = sd.findUserById(id);
            HttpSession session = request.getSession();
            session.setAttribute("user", user);
            request.getRequestDispatcher("update.jsp").forward(request, response);
        }
    }

    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        int id = 0;
        try {
            id = Integer.parseInt(request.getParameter("id"));
        } catch (NumberFormatException e) {
            e.printStackTrace();
        }
        String name = request.getParameter("name");
        String sex = request.getParameter("sex");
        int age = 0;
        try {
            age = Integer.parseInt(request.getParameter("age"));
        } catch (NumberFormatException e) {
            e.printStackTrace();
        }
        String major = request.getParameter("major");
        String department = request.getParameter("department");
        String telephone = request.getParameter("telephone");
        String email = request.getParameter("email");
        //修改
        student stu = new student();
        stu.setId(id);
        stu.setName(name);
        stu.setSex(sex);
        stu.setAge(age);
        stu.setMajor(major);
        stu.setDepartment(department);
        stu.setTelephone(telephone);
        stu.setEmail(email);
        studentDao sd = new studentDao();
        sd.updateUser(stu,id);

        request.getRequestDispatcher("showServlet").forward(request, response);


    }

}

showServlet

package com.servlet;

import com.dao.studentDao;
import com.domain.student;
import com.sun.deploy.util.SessionState;

import javax.ejb.SessionContext;
import javax.jms.Session;
import javax.jws.soap.SOAPBinding.Use;
import javax.servlet.ServletContext;
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 javax.servlet.http.HttpSession;
import java.io.IOException;
import java.util.List;

/**
 * @author yjx
 * @version 1.0
 */
@WebServlet("/showServlet")
public class showServlet extends HttpServlet {
    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
       // request.setCharacterEncoding("utf-8");
//        response.setContentType("utf-8");
//        response.setCharacterEncoding("UTF-8");response.setContentType("text/html; charset=Utf-8");
        request.setCharacterEncoding("UTF-8");
        response.setContentType("text/html;charset=UTF-8");
        studentDao sd = new studentDao();
        List<student> list1 = sd.getAllUser();
        HttpSession session = request.getSession();
        session.setAttribute("list",list1);
//        ServletContext context   =   this.getServletContext();
//        context.setAttribute("list", list1);
//        if (!list1.isEmpty()) {
//            for (int i = 0; i < list1.size(); i++) {
//                student st = list1.get(i);
//                response.getWriter().print("<tr>");
//                response.getWriter().print("<td>" + st.getId() + "</td>");
//                response.getWriter().print("<td>" + st.getName() + "</td>");
//                response.getWriter().print("<td>" + st.getSex() + "</td>");
//                response.getWriter().print("<td>" + st.getSex() + "</td>");
//                response.getWriter().print("<td>" + st.getAge() + "</td>");
//                response.getWriter().print("<td>" + st.getMajor() + "</td>");
//                response.getWriter().print("<td>" + st.getTelephone() + "</td>");
//                response.getWriter().print("<td>" + st.getEmail() + "</td>");
//                response.getWriter().print("</tr>");
//            }
//        }

//            request.setAttribute("list", list1);
            request.getRequestDispatcher("/index.jsp").forward(request, response);
        }

        protected void doGet (HttpServletRequest request, HttpServletResponse response) throws
        ServletException, IOException {
            doPost(request, response);
        }
    }

关于乱码问题

package com.servlet;
import java.io.*;
import javax.servlet.*;
import javax.servlet.http.*;

public class manageFilter implements Filter {
    protected String encoding = "UTF-8";
    protected FilterConfig filterConfig = null;

    public void init(FilterConfig filterConfig) throws ServletException {
        this.filterConfig = filterConfig;
        this.encoding = filterConfig.getInitParameter("encoding");
    }

    public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException {
        HttpServletRequest res = (HttpServletRequest) request;
        res.setCharacterEncoding(encoding);
        chain.doFilter(request, response);
    }

    public void destroy() {
        this.filterConfig = null;
    }
}
 

6.前

端页面

index.jsp

<%@ page import="com.domain.student" %>
<%@ page import="java.util.List" pageEncoding="utf-8"%><%--<jsp:useBean id="deleted" scope="request" type=""/>--%>
<%--<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>--%>
<%--
  Created by IntelliJ IDEA.
  User: yjx
  Date: 2021/12/9
  Time: 20:06
  To change this template use File | Settings | File Templates.
--%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
<%-- 取出servlet中转发来的request域对象,并返回一个object对象,这个Object对象就是转发过来的域对象 --%>
<%
    Object deleted = request.getAttribute("deleted");
    request.setAttribute("deleted", "删除成功");
%>
<%-- 再存储到request域中 --%>


<html>
<head>
    <title>用户展示</title>
    <script type="text/javascript">
        function confirmDialog(){
            return window.confirm("您确定要删除此条信息?");
        }
    </script>
</head>
<body>
<h1>用户展示</h1>
<%--<h2>${deleted}</h2>--%>
<table border="2 solid">
    <tr>
        <td>学号</td>
        <td>姓名</td>
        <td>性别</td>
        <td>年龄</td>
        <td>院系</td>
        <td>专业</td>
        <td>电话</td>
        <td>邮箱</td>
        <td colspan="2">操作</td>
    </tr>

<%--    <jsp:useBean id="list" scope="request" type="java.util.List"/>--%>
    <%
        response.setCharacterEncoding("UTF-8");
        request.setCharacterEncoding("UTF-8");
        List<student> sl=(List<student>)session.getAttribute("list");
        if(sl==null||sl.size()==0){
            System.out.println("没有数据...");
        }else{
            for(int i=0;i<sl.size();i++){
                student st=sl.get(i);
                out.print("<tr>");
                out.print("<td>"+st.getId()+"</td>");
                out.print("<td>"+st.getName()+"</td>");
                out.print("<td>"+st.getSex()+"</td>");
                out.print("<td>"+st.getAge()+"</td>");
                out.print("<td>"+st.getMajor()+"</td>");
                out.print("<td>"+st.getDepartment()+"</td>");
                out.print("<td>"+st.getTelephone()+"</td>");
                out.print("<td>"+st.getEmail()+"</td>");

    %>
    <td><a href="${pageContext.request.contextPath}/deleteServlet?id=<%=st.getId() %>"
           onclick="return confirmDialog()">删除
    </a></td>

    <td><a href="${pageContext.request.contextPath}/updateServlet?id=<%=st.getId() %>">修改
    </a></td>
    <%
                out.print("</tr>");
            }
        }
    %>


</table>
<a href="${pageContext.request.contextPath}/showServlet"><input type="submit" value="列出"> </a></td>
<a href="add.jsp"><input type="submit" value="注册"> </a></td>
<a href="search.jsp"><input type="submit" value="查找"></a></td>
<a href="update1.jsp"><input type="submit" value="修改"></a></td>
<a href="delete.jsp"><input type="submit" value="删除"></a></td>

</body>
</html>
 

add.jsp

<%--
  Created by IntelliJ IDEA.
  User: yjx
  Date: 2021/12/9
  Time: 21:16
  To change this template use File | Settings | File Templates.
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<%@ page language="java" pageEncoding="utf-8"%>
<% request.setCharacterEncoding("UTF-8");%>.
<META http-equiv=Content-Type content="text/html; charset=utf-8">
<html>
<head>
    <title>用户添加</title>
</head>
<body>
<form action="${pageContext.request.contextPath}/addServlet" method="post">
    <table border="2px">

        <tr>
            <td> 学号:</td>
            <td>
                <input type="text" name="id" class="{required:true}" title="学号必须为数字"/>
            </td>
        </tr>

        <tr>
            <td> 姓名:</td>
            <td><input type="text" name="name" title="姓名不能为空"/></td>

        </tr>

        <tr>
            <td>年龄:</td>
            <td><input type="text" name="age" title="年龄必须为数字"/></td>

        </tr>

        <tr>
            <td>性别:</td>
            <td>
                <select name="sex">
                    <option value="男" selected>男</option>
                    <option value="女">女</option>
                </select>
            </td>

        </tr>

        <tr>
            <td> 院系:</td>
            <td>
                <input type="text" name="department"/>
            </td>

        </tr>

        <tr>
            <td>专业:</td>
            <td>
                <input type="text" name="major" title="专业不能为空">
            </td>

        </tr>

        <tr>
            <td>电话:</td>
            <td><input type="text" name="telephone"></td>

        </tr>

        <tr>
            <td>邮箱:</td>
            <td><input type="text" name="email"></td>


        </tr>
        <tr colspan="2">
            <td><input type="submit" value="提交"></td>
            <td><input type="reset" value="重置"></td>
        </tr>

    </table>
</form>
</body>
</html>

delete.jsp

<%--
  Created by IntelliJ IDEA.
  User: yjx
  Date: 2021/12/9
  Time: 21:47
  To change this template use File | Settings | File Templates.
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<%@ page language="java" pageEncoding="utf-8"%>
<% request.setCharacterEncoding("UTF-8");%>.
<META http-equiv=Content-Type content="text/html; charset=utf-8">
<html>
<head>
    <title>用户删除</title>
</head>
<body>
<jsp:include page="index.jsp" />
<form action="${pageContext.request.contextPath}/deleteServlet" method="post">

    <p>  请输入要删除的学号:
        <input type="text" name="id" />
        <input type="submit" />
        <input type="button" value="Back" onclick="history.go(-1)"/>
    </p>


</form>
<%--<jsp:include page="index.jsp" />--%>
</body>
</html>
 

search.jsp

<%--
  Created by IntelliJ IDEA.
  User: yjx
  Date: 2021/12/10
  Time: 19:07
  To change this template use File | Settings | File Templates.
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
    <title>查询页面</title>
</head>
<body>
<jsp:include page="index.jsp" />
<form action="${pageContext.request.contextPath}/searchServlet" method="post">

    <p>  请输入要查询的学号:
        <input type="text" name="id" />
        <input type="submit"  />
        <input type="button" value="Back" onclick="history.go(-1)"/>
    </p>


</form>

</body>
</html>
 

searchSuccess.jsp

<%@ page import="com.domain.student" %><%--
  Created by IntelliJ IDEA.
  User: yjx
  Date: 2021/12/10
  Time: 20:26
  To change this template use File | Settings | File Templates.
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
    <title>查找成功</title>
</head>
<body>
<table border="2 solid">
    <tr>
        <td>学号</td>
        <td>姓名</td>
        <td>性别</td>
        <td>年龄</td>
        <td>院系</td>
        <td>专业</td>
        <td>电话</td>
        <td>邮箱</td>
    </tr>

    <%--    <jsp:useBean id="list" scope="request" type="java.util.List"/>--%>
        <%
        response.setCharacterEncoding("UTF-8");
        request.setCharacterEncoding("UTF-8");
        student stu=(student)session.getAttribute("list");
        if(stu==null){
            System.out.println("没有数据...");
        }else{
                out.print("<tr>");
                out.print("<td>"+stu.getId()+"</td>");
                out.print("<td>"+stu.getName()+"</td>");
                out.print("<td>"+stu.getSex()+"</td>");
                out.print("<td>"+stu.getAge()+"</td>");
                out.print("<td>"+stu.getMajor()+"</td>");
                out.print("<td>"+stu.getDepartment()+"</td>");
                out.print("<td>"+stu.getTelephone()+"</td>");
                out.print("<td>"+stu.getEmail()+"</td>");
        %>
    <%
                out.print("</tr>");

        }
    %>
</table>
<a href="add.jsp"><input type="submit" value="注册"> </a></td>
<a href="search.jsp"><input type="submit" value="查找"></a></td>
<a href="update1.jsp"><input type="submit" value="修改"></a></td>
<a href="delete.jsp"><input type="submit" value="删除"></a></td>

</body>
</html>
 

failed.jsp

<%--
  Created by IntelliJ IDEA.
  User: yjx
  Date: 2021/12/10
  Time: 20:26
  To change this template use File | Settings | File Templates.
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
    <title>查找失败</title>
</head>
<body>
<table border="2 solid">
    <tr>
        <td>学号</td>
        <td>姓名</td>
        <td>院系</td>
        <td>专业</td>
        <td>电话</td>
        <td>邮箱</td>
    </tr>


</table>
<a href="add.jsp"><input type="submit" value="注册"> </a></td>
<a href="search.jsp"><input type="submit" value="查找"></a></td>
<a href="update1.jsp"><input type="submit" value="修改"></a></td>
<a href="delete.jsp"><input type="submit" value="删除"></a></td>

</body>
</html>
 

update.jsp


<%@ page import="com.domain.student" %>
<%@ page import="java.time.temporal.Temporal" %><%--<jsp:useBean id="user" scope="request" type="com.sun.corba.se.impl.ior.GenericIdentifiable"/>--%>
<%--
  Created by IntelliJ IDEA.
  User: yjx
  Date: 2021/12/9
  Time: 21:31
  To change this template use File | Settings | File Templates.
--%>

<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<%@ page language="java" pageEncoding="utf-8"%>
<% request.setCharacterEncoding("UTF-8");%>.
<META http-equiv=Content-Type content="text/html; charset=utf-8">
<html>
<head>
    <title>用户编辑</title>
</head>
<body>
<%
    student stu= null;

        stu = (student)session.getAttribute("user");
    if(stu==null){
        response.getWriter().print("你输入的id号不在其中..");
    }else{
        int id = stu.getId();
        String name = stu.getName();
        String sex = stu.getSex();
        int age = stu.getAge();
        String major = stu.getMajor();
        String department = stu.getDepartment();
        String telephone = stu.getTelephone();
        String email = stu.getEmail();


//        int id = stu.getId();
//        String name = stu.getName();
//        String sex = stu.getSex();
//        int age = stu.getAge();
//        String major = stu.getMajor();
//        String department = stu.getDepartment();
//        String telephone = stu.getTelephone();
//        String email = stu.getEmail();
//

%>
<form action="${pageContext.request.contextPath}/updateServlet" method="post" style="align-items: center">
    <table border="1" >
        <tr>
            <td colspan="2"><h1>用户修改</h1></td>
        </tr>
        <tr>
            <td>学号</td>
            <td><input type="text" name="id" value="<%=id%>" /></td>
        </tr>
        <tr>
            <td>姓名</td>
            <td><input type="text" name="name" value="<%=name%>" /></td>
        </tr>
        <tr>
            <td>性别</td>
            <td><input type="text" name="sex" value="<%=sex%>" /></td>
        </tr>
        <tr>
            <td>年龄</td>
            <td><input type="text" name="age" value="<%=age%>" /></td>
        </tr>
        <tr>
            <td>专业</td>
            <td><input type="text" name="department" value="<%=major%>" /></td>
        </tr>
        <tr>
            <td>院系</td>
            <td><input type="text" name="major" value="<%=department%>" /></td>
        </tr>
        <tr>
            <td>电话</td>
            <td><input type="text" name="telephone" value="<%=telephone%>" /></td>
        </tr>
        <tr>
            <td>邮箱</td>
            <td><input type="text" name="email" value="<%=email%>" /></td>
        </tr>

        <tr>
            <td colspan="2">
                <input type="submit" value="提交"/>
                <input type="button" value="Back" onclick="history.go(-1)"/>
            </td>

        </tr>
    </table>
    <%} %>

</form>
</body>

 

update1.jsp

<%--
  Created by IntelliJ IDEA.
  User: yjx
  Date: 2021/12/10
  Time: 20:42
  To change this template use File | Settings | File Templates.
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
    <title>Title</title>
</head>
<body>
<jsp:include page="index.jsp" />
<form action="${pageContext.request.contextPath}/updateServlet" method="get">

    <p>  请输入要修改的学号:
        <input type="text" name="id" />
        <input type="submit" />
        <input type="button" value="Back" onclick="history.go(-1)"/>
    </p>


</form>

</body>
</html>
 

7.关于总结和反思

  • 关于乱码并未解决

  • 其次在一些页面中会报一些异常,比如说session对象默认为空,所以我加了一个按钮

  • 关于某些情况下页面需要回到首页才能实现功能

8.运行

image-20211211000007278

image-20211211000032993

注册

image-20211211000110002

image-20211211000119306

查找

image-20211211000148104

image-20211211000156588

image-20211211000329539

代码需要的看情况吧,到时候我考虑给链接(开源)..

代码大致运型没错,新手可以学学,老手勿喷,现在都用框架做的,单纯的分享一下我的学习之旅!!

目录

1.技术使用

2.准备工具

3.框架搭建

3.1建立学生信息表

3.2建立Web工程

src目录

Web目录

4.前菜

4.1连接数据源

4.2实现数据库的表 的javaBean组件

4.3实现获取数据库连接对象的工具类

4.4对数据库中的学生对象处理(CRUD)

5.关于与前段jsp页面的交互(正餐)

AddServlet 关于在前端添加用户时,统过表单提交到这个servlet,来进行处理,再返回给前端页面

DeleteServlet

searchServlet

UpdateServlet

showServlet

关于乱码问题

6.前

端页面

index.jsp

add.jsp

delete.jsp

search.jsp

searchSuccess.jsp

failed.jsp

update.jsp

update1.jsp

7.关于总结和反思

8.运行

注册

查找


  • 8
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值