javaweb各位看看

使用jsp,javabean,servlet来完成一个简单的人工智能聊天功能系统,设有一个输入键可以输入对话内容,点击发送就服务器会返回一些句子(字符串对比使用字符串对象的eq等方法,某个字符串是否是另外一个字符串的等contains方法)

img

  • 你可以参考下这个问题的回答, 看看是否对你有帮助, 链接: https://ask.csdn.net/questions/7628628
  • 我还给你找了一篇非常好的博客,你可以看看是否有帮助,链接:javaweb 原生servlet实现简单的网站登陆/注册功能
  • 除此之外, 这篇博客: 简单学生管理系统javaweb版,增删改查,基础servlet,无特效jsp页面,适合初学者~中的 简单学生管理系统javaweb版,增删改查,基础servlet,无特效jsp页面,附详细代码,适合初学者~ 部分也许能够解决你的问题, 你可以仔细阅读以下内容或跳转源博客中阅读:
  • 需要源码的请加微信249278427,申请请备注好需要的源码标题,顺便点赞、评论、转发,谢谢!
    

    一、运行效果:
    1、首页验证管理员账户密码,验证失败则无法跳转进入系统。
    在这里插入图片描述
    2、验证成功:
    进入首页则展示所有学生,可以对学生进添加、删除、修改
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    3、项目结构:
    在这里插入图片描述

    二、代码(从上至下):
    1、AdminDao

    package com.cn.dao;
    
    import com.cn.entity.Admin;
    import java.sql.Connection;
    import java.sql.PreparedStatement;
    import java.sql.ResultSet;
    import java.sql.SQLException;
    
    public class AdminDao extends BaseDao{
        Connection conn = null;
        PreparedStatement ps = null;
        ResultSet rs = null;
    
        public Admin getAdmin(String username){
            conn = super.getConnection();
            // 创建学生类对象
            Admin admin = null;
    
            try {
                //构造SQL语句
                String sql = "SELECT * FROM admin where username = ?";
    
                //创建执行对象
                ps = conn.prepareStatement(sql);
                ps.setString(1, username);
    
                //执行查询,得到结果集
                rs = ps.executeQuery();
    
                //对结果集进行遍历
                while (rs.next()) {
                    admin = new Admin();
                    //利用set方法对学生对象进行赋值
                    admin.setId(rs.getInt("id"));
                    admin.setUsername(rs.getString("username"));
                    admin.setPassword(rs.getString("password"));
    
                    break;
                }
            } catch (SQLException e) {
                //异常处理
                e.printStackTrace();
            } finally {
                //释放资源
                super.release(null, ps, conn);
            }
    
            //返回学生集合
            return admin;
        }
    }
    
    

    2、BaseDao

    package com.cn.dao;
    
    import java.io.IOException;
    import java.sql.*;
    import java.util.Properties;
    
    public class BaseDao {
        private static String driver = "";
        private static String url = "";
        private static String user = "";
        private static String password = "";
    
        static {
            Properties p = new Properties();
            try {
                p.load(BaseDao.class.getClassLoader().getResourceAsStream("db.properties"));
            } catch (IOException e) {
                e.printStackTrace();
            }
            driver = p.getProperty("driver");
            url = p.getProperty("url");
            user = p.getProperty("username");
            password = p.getProperty("password");
    
            try {
                Class.forName(driver);
            } catch (ClassNotFoundException e) {
                e.printStackTrace();
    
            }
        }
    
        public static Connection getConnection() {
            try {
                return DriverManager.getConnection(url, user, password);
            } catch (SQLException e) {
                System.out.println("数据库连接错误!请检查配置项目!");
                e.printStackTrace();
            }
            return null;
        }
        //释放的时候要从小到大释放
        //Connection -> Statement --> Resultset
    
        public static void release(ResultSet rs, Statement stmt, Connection conn) {
            if (rs != null) {
                try {
                    rs.close();
                } catch (SQLException e) {
                    e.printStackTrace();
                }
            }
            if (stmt != null) {
                try {
                    stmt.close();
                } catch (SQLException e) {
                    e.printStackTrace();
                }
            }
    
            if (conn != null) {
                try {
                    conn.close();
                } catch (SQLException e) {
                    e.printStackTrace();
                }
            }
        }
    }
    
    

    3、StudentDao

    package com.cn.dao;
    
    import com.cn.entity.Student;
    import com.cn.util.StringUtil;
    
    import java.sql.*;
    import java.text.SimpleDateFormat;
    import java.util.ArrayList;
    
    public class StudentDao extends BaseDao {
        Connection conn = null;
        PreparedStatement ps = null;
        ResultSet rs = null;
    
        // 增加学生信息的方法
        public int addStudent(Student stu) {
            // 获得驱动程序
            conn = super.getConnection();
    
            int num = 0;
            try {
                //创建SQL语句
                String sql = "INSERT INTO student (stuId, stuName, stuBirthday, stuPhone, stuAddress) VALUES (?, ?, ?, ?, ?)";
                //创建执行对象
                ps = conn.prepareStatement(sql);
                //根据情况完善SQL语句
                ps.setInt(1, stu.getStuId());
                ps.setString(2, stu.getStuName());
                ps.setDate(3, Date.valueOf(stu.getStuBirthday()));
                ps.setString(4, stu.getStuPhone());
                ps.setString(5, stu.getStuAddress());
    
                //执行更新操作
                num = ps.executeUpdate();
    
            } catch (SQLException e) {
                //异常处理
                e.printStackTrace();
            } finally {
                //释放资源
                super.release(null, ps, conn);
            }
            return num;
        }
    
        // 查看所有学生信息的方法
        public ArrayList<Student> getAllStudent() {
            conn = super.getConnection();
            //创建学生集合
            ArrayList<Student> list = new ArrayList<>();
            // 创建学生类对象
            Student stu;
    
            try {
                //构造SQL语句
                String sql = "SELECT * FROM student";
    
                //创建执行对象
                ps = conn.prepareStatement(sql);
    
                //执行查询,得到结果集
                rs = ps.executeQuery();
                SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd");
    
                //对结果集进行遍历
                while (rs.next()) {
                    //实例化学生对象
                    stu = new Student();
    
                    //利用set方法对学生对象进行赋值
                    stu.setStuId(rs.getInt("stuId"));
                    stu.setStuName(rs.getString("stuName"));
                    stu.setStuBirthday(formatter.format(rs.getDate("stuBirthday")));
                    stu.setStuPhone(rs.getString("stuPhone"));
                    stu.setStuAddress(rs.getString("stuAddress"));
    
                    //将学生对象添加到集合中
                    list.add(stu);
                }
            } catch (SQLException e) {
                //异常处理
                e.printStackTrace();
            } finally {
                //释放资源
                super.release(null, ps, conn);
            }
    
            //返回学生集合
            return list;
        }
    
        // 根据学号查找学生信息
        public Student searchByStuId(int stuId) {
            conn = super.getConnection();
            // 创建学生类对象
            Student stu = null;
    
            try {
                //构造SQL语句
                String sql = "SELECT * FROM student where stuId = ?";
    
                //创建执行对象
                ps = conn.prepareStatement(sql);
                ps.setInt(1, stuId);
    
                //执行查询,得到结果集
                rs = ps.executeQuery();
                SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd");
    
                //对结果集进行遍历
                while (rs.next()) {
                    stu = new Student();
                    //利用set方法对学生对象进行赋值
                    stu.setStuId(rs.getInt("stuId"));
                    stu.setStuName(rs.getString("stuName"));
                    stu.setStuBirthday(formatter.format(rs.getDate("stuBirthday")));
                    stu.setStuPhone(rs.getString("stuPhone"));
                    stu.setStuAddress(rs.getString("stuAddress"));
    
                    break;
                }
            } catch (SQLException e) {
                //异常处理
                e.printStackTrace();
            } finally {
                //释放资源
                super.release(null, ps, conn);
            }
    
            //返回学生集合
            return stu;
        }
    
        //查询方法
        public ArrayList<Student> getStudent(String name){
            conn = super.getConnection();
    
            ArrayList<Student> list = new ArrayList<>();
    
            Student student;
    
            try {
                //构造SQL语句
                StringBuffer sql = new StringBuffer("SELECT * FROM student");
    
                if (!StringUtil.isNull(name)){
                    sql.append(" where stuName like '%" + name + "%'");
                }
    
                //创建执行对象
                ps = conn.prepareStatement(new String(sql));
    
                //执行查询,得到结果集
                rs = ps.executeQuery();
                SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd");
    
                //对结果集进行遍历
                while (rs.next()) {
                    //实例化book对象
                    student = new Student();
    
                    //利用set方法对book对象进行赋值
                    student.setStuId(rs.getInt("stuId"));
                    student.setStuName(rs.getString("stuName"));
                    student.setStuBirthday(formatter.format(rs.getDate("stuBirthday")));
                    student.setStuPhone(rs.getString("stuPhone"));
                    student.setStuAddress(rs.getString("stuAddress"));
    
                    list.add(student);
                }
            } catch (SQLException e) {
                //异常处理
                e.printStackTrace();
            } finally {
                //释放资源
                super.release(null, ps, conn);
            }
            return list;
        }
    
        // 更新学生信息的方法
        public int updateStudent(Student stu, int stuId) {
            conn = super.getConnection();
            // 创建学生类对象
            int num = 0;
    
            try {
                //构造SQL语句
                String sql = "update student set stuName = ?, stuBirthday = ?, stuPhone = ?, stuAddress = ? where stuId = ?";
    
                //创建执行对象
                ps = conn.prepareStatement(sql);
                ps.setString(1, stu.getStuName());
                ps.setString(2, stu.getStuBirthday());
                ps.setString(3, stu.getStuPhone());
                ps.setString(4, stu.getStuAddress());
                ps.setInt(5, stuId);
    
                //执行查询,得到结果集
                num = ps.executeUpdate();
            } catch (SQLException e) {
                //异常处理
                System.out.println("更新失败!");
                e.printStackTrace();
            } finally {
                //释放资源
                super.release(null, ps, conn);
            }
    
            return num;
        }
    
        // 根据学号删除学生信息
        public int deleteByStuId(int stuId) {
            conn = super.getConnection();
            int num = 0;
    
            try {
                //构造SQL语句
                String sql = "delete from student where stuId = ?";
    
                //创建执行对象
                ps = conn.prepareStatement(sql);
                ps.setInt(1, stuId);
                //执行删除
                num = ps.executeUpdate();
            } catch (SQLException e) {
                //异常处理
                System.out.println("删除失败!");
                e.printStackTrace();
            } finally {
                //释放资源
                super.release(null, ps, conn);
            }
    
            return num;
        }
    
    }
    
    

    4、Admin

    package com.cn.entity;
    
    public class Admin {
        private int id;
        private String username;
        private String password;
    
        public int getId() {
            return id;
        }
    
        public void setId(int id) {
            this.id = id;
        }
    
        public String getUsername() {
            return username;
        }
    
        public void setUsername(String username) {
            this.username = username;
        }
    
        public String getPassword() {
            return password;
        }
    
        public void setPassword(String password) {
            this.password = password;
        }
    
        public Admin() {
        }
    
        public Admin(int id, String username, String password) {
            this.id = id;
            this.username = username;
            this.password = password;
        }
    }
    
    

    5、Student

    package com.cn.entity;
    
    public class Student {
        private int stuId;
        private String stuName;
        private String stuBirthday;
        private String stuPhone;
        private String stuAddress;
    
        public int getStuId() {
            return stuId;
        }
    
        public void setStuId(int stuId) {
            this.stuId = stuId;
        }
    
        public String getStuName() {
            return stuName;
        }
    
        public void setStuName(String stuName) {
            this.stuName = stuName;
        }
    
        public String getStuBirthday() {
            return stuBirthday;
        }
    
        public void setStuBirthday(String stuBirthday) {
            this.stuBirthday = stuBirthday;
        }
    
        public String getStuPhone() {
            return stuPhone;
        }
    
        public void setStuPhone(String stuPhone) {
            this.stuPhone = stuPhone;
        }
    
        public String getStuAddress() {
            return stuAddress;
        }
    
        public void setStuAddress(String stuAddress) {
            this.stuAddress = stuAddress;
        }
    
        public Student() {
        }
    
        public Student(int stuId, String stuName, String stuBirthday, String stuPhone, String stuAddress) {
            this.stuId = stuId;
            this.stuName = stuName;
            this.stuBirthday = stuBirthday;
            this.stuPhone = stuPhone;
            this.stuAddress = stuAddress;
        }
    
        @Override
        public String toString() {
            String stuStr = "学号:" + stuId + "\n" + "姓名:" + stuName + "\n" + "出生日期:" + stuBirthday +
                    "\n" + "电话:" + stuPhone + "\n" + "住址:" + stuAddress;
    
            return stuStr;
        }
    }
    
    

    6、EncodingFilter

    package com.cn.filter;
    
    import javax.servlet.*;
    import java.io.IOException;
    
    public class EncodingFilter implements Filter  {
    
        public void destroy() {
            // TODO Auto-generated method stub
    
        }
    
        public void doFilter(ServletRequest request, ServletResponse arg1,
                             FilterChain chain) throws IOException, ServletException {
            request.setCharacterEncoding("utf-8");
            chain.doFilter(request, arg1);
    
        }
    
        public void init(FilterConfig arg0) throws ServletException {
            // TODO Auto-generated method stub
    
        }
    
    }
    
    

    7、AddServlet

    package com.cn.servlet;
    
    import com.cn.dao.StudentDao;
    import com.cn.entity.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.util.ArrayList;
    
    
    @WebServlet("/AddStudent")
    public class AddServlet extends HttpServlet {
    
        @Override
        protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
    
            String stuId = req.getParameter("stuId");
            String stuName = req.getParameter("stuName");
            String stuBirthday = req.getParameter("stuBirthday");
            String stuPhone = req.getParameter("stuPhone");
            String stuAddress = req.getParameter("stuAddress");
    
            Student student = new Student(Integer.parseInt(stuId),stuName,stuBirthday,stuPhone,stuAddress);
            StudentDao studentDao = new StudentDao();
            studentDao.addStudent(student);
            ArrayList<Student> list = studentDao.getAllStudent();
            req.setAttribute("list", list);
            req.getRequestDispatcher("/login.jsp").forward(req, resp);
        }
    
        @Override
        protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
            doGet(req, resp);
        }
    }
    
    

    8、DelServlet

    package com.cn.servlet;
    
    import com.cn.dao.StudentDao;
    import com.cn.entity.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.util.ArrayList;
    
    
    @WebServlet("/DelStudent")
    public class DelServlet  extends HttpServlet {
        @Override
        protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
    
            String stuId = req.getParameter("stuId");
            StudentDao studentDao = new StudentDao();
            studentDao.deleteByStuId(Integer.parseInt(stuId));
            ArrayList<Student> list = studentDao.getAllStudent();
            req.setAttribute("list", list);
            req.getRequestDispatcher("/login.jsp").forward(req, resp);
        }
    
        @Override
        protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
            doGet(req, resp);
        }
    }
    
    

    9、Login

    package com.cn.servlet;
    
    import com.cn.dao.AdminDao;
    import com.cn.dao.StudentDao;
    import com.cn.entity.Admin;
    import com.cn.entity.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.swing.*;
    import java.io.IOException;
    import java.util.ArrayList;
    
    @WebServlet("/Login")
    public class Login extends HttpServlet {
    
        @Override
        protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
            String username = req.getParameter("account");
            String password = req.getParameter("password");
    
            AdminDao adminDao = new AdminDao();
            Admin admin = adminDao.getAdmin(username);
            if (admin == null || !password.equals(admin.getPassword())) {
                req.getRequestDispatcher("/index.jsp").forward(req, resp);
            }else {
                //在页面输出响应信息
                System.out.println("欢迎" + username + ",登录成功!");
                StudentDao studentDao = new StudentDao();
                ArrayList<Student> list = studentDao.getAllStudent();
                req.setAttribute("list", list);
                req.getRequestDispatcher("/login.jsp").forward(req, resp);
            }
        }
    
        @Override
        protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
            doGet(req, resp);
        }
    }
    
    

    10、ToUpdate

    package com.cn.servlet;
    
    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;
    
    @WebServlet("/ToUpdate")
    public class ToUpdate extends HttpServlet {
        @Override
        protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
    
            String stuId = req.getParameter("stuId");
            String stuName = req.getParameter("stuName");
            String stuBirthday = req.getParameter("stuBirthday");
            String stuPhone = req.getParameter("stuPhone");
            String stuAddress = req.getParameter("stuAddress");
    
            req.setAttribute("stuId", stuId);
            req.setAttribute("stuName", stuName);
            req.setAttribute("stuBirthday", stuBirthday);
            req.setAttribute("stuPhone", stuPhone);
            req.setAttribute("stuAddress", stuAddress);
    
            req.getRequestDispatcher("/update.jsp").forward(req, resp);
        }
    
        @Override
        protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
            doGet(req, resp);
        }
    }
    
    

    11、UpdateServlet

    package com.cn.servlet;
    
    import com.cn.dao.StudentDao;
    import com.cn.entity.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.util.ArrayList;
    
    @WebServlet("/UpdateStudent")
    public class UpdateServlet extends HttpServlet {
        @Override
        protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
    
            String stuId = req.getParameter("stuId");
            String stuName = req.getParameter("stuName");
            String stuBirthday = req.getParameter("stuBirthday");
            String stuPhone = req.getParameter("stuPhone");
            String stuAddress = req.getParameter("stuAddress");
    
            Student student = new Student(Integer.parseInt(stuId),stuName,stuBirthday,stuPhone,stuAddress);
            StudentDao studentDao = new StudentDao();
            studentDao.deleteByStuId(Integer.parseInt(stuId));
            studentDao.addStudent(student);
            ArrayList<Student> list = studentDao.getAllStudent();
            req.setAttribute("list", list);
            req.getRequestDispatcher("/login.jsp").forward(req, resp);
        }
    
        @Override
        protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
            doGet(req, resp);
        }
    }
    

    12、StringUtil

    package com.cn.util;
    
    import java.text.ParseException;
    import java.text.SimpleDateFormat;
    
    
    public class StringUtil {
    	//判空
    	public static Boolean isNull(String str) {
    		if (str == null || "".equals(str.trim())) {
    			return true;
    		}
    		return false;
    	}
    	
    	//判断日期格式
    	public static boolean isValidDate(String str) {
    		boolean convertSuccess = true;
    		// 指定日期格式为四位年/两位月份/两位日期
    		SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
    		try {
    			// 设置lenient为false.
    			// 否则SimpleDateFormat会比较宽松地验证日期,比如2007/02/29会被接受,并转换成2007/03/01
    			format.setLenient(false);
    			format.parse(str);
    		} catch (ParseException e) {
    			// e.printStackTrace();
    			// 如果throw java.text.ParseException或者NullPointerException,就说明格式不对
    			convertSuccess = false;
    		}
    		return convertSuccess;
    	}
    
    	//判断是否为数字
    	public static boolean isNumeric(String str) {
    		String reg = "^[0-9]+(.[0-9]+)?$";
    
            return str.matches(reg);
    	}
    
    }
    
    

    13、db.properties

    driver = com.mysql.jdbc.Driver
    url = jdbc:mysql://localhost:3306/student?useUnicode=true&characterEncoding=utf8
    username = root
    password = 123456
    
    

    14、web

    <?xml version="1.0" encoding="UTF-8"?>
    <web-app xmlns="http://java.sun.com/xml/ns/javaee"
               xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
               xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
    		  http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"
               version="3.0">
        <welcome-file-list>
            <welcome-file>/index.jsp</welcome-file>
        </welcome-file-list>
    
        <!--    字符编码过滤-->
        <filter>
            <filter-name>EncodingFilter</filter-name>
            <filter-class>com.cn.filter.EncodingFilter</filter-class>
        </filter>
    
        <filter-mapping>
            <filter-name>EncodingFilter</filter-name>
            <url-pattern>/*</url-pattern>
        </filter-mapping>
    </web-app>
    
    

    15、add.jsp

    <%--
      Created by IntelliJ IDEA.
      User: Administrator
      Date: 2020/7/20
      Time: 16:37
      To change this template use File | Settings | File Templates.
    --%>
    <%@ page contentType="text/html;charset=UTF-8" language="java" %>
    <html>
    <head>
        <title>添加学生</title>
    </head>
    <body>
    <form action="AddStudent" method="post" style="padding-top:-700px;">
        输入学 生 id:<input name="stuId" type="text"><br><br>
        输入用 户 名:<input name="stuName" type="text"><br><br>
        输 入 生 日:<input name="stuBirthday" type="text"><br><br>
        输 入 电 话:<input name="stuPhone" type="text"><br><br>
        输入家庭住址:<input name="stuAddress" type="text"><br><br>
    
        <input type="reset"value="重置"><input type="submit"value="注册">
    </form>
    </body>
    </html>
    
    

    16、index.jsp

    <%-- Created by IntelliJ IDEA. --%>
    <%@ page contentType="text/html;charset=UTF-8" language="java" %>
    <html>
    <head>
        <meta charset="utf-8">
        <title>首页</title>
    </head>
    <body>
    <h1>欢迎来到学生管理系统</h1>
    <form action="Login" method="post">
        账户:<input type="text" name="account">
        <br/>
        密码:<input type="password" name="password"/>
        <input type="submit" value="提交"/>
    </form>
    </body>
    </html>
    

    17、login.jsp

    <%--
      Created by IntelliJ IDEA.
      User: Administrator
      Date: 2020/7/3
      Time: 16:34
      To change this template use File | Settings | File Templates.
    --%>
    <%@ page contentType="text/html;charset=UTF-8" %>
    <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
    <%--<% ResultSet resultSet = (ResultSet) session.getAttribute("resultSet");%>--%>
    <html>
    <head>
        <title>登录</title>
    </head>
    <body>
    <h1>登录成功!</h1>
    <table border="1">
        <tr>
            <td>编号</td>
            <td>姓名</td>
            <td>生日</td>
            <td>电话</td>
            <td>地址</td>
            <td align="center" colspan="2">操作</td>
            <%--        <td><a href="selectServlet?id=<%=resultSet.getInt("id")%>">修改</a></td>--%>
            <%--        <td><a href="deleteServlet?id=<%=resultSet.getInt("id")%>" onclick="return confirm('确定删除?')">删除</a></td>--%>
    
        </tr>
    
        <c:forEach var="stu" items="${list}">
            <tr>
                <td><input type="text" value="${stu.stuId}" name="stuId"></td>
                <td><input type="text" value="${stu.stuName}" name="stuName"></td>
                <td><input type="text" value="${stu.stuBirthday}" name="stuBirthday"></td>
                <td><input type="text" value="${stu.stuPhone}" name="stuPhone"></td>
                <td><input type="text" value="${stu.stuAddress}" name="stuAddress"></td>
    
                <td><a href="ToUpdate?stuId=${stu.stuId}&stuName=${stu.stuName}&stuBirthday=${stu.stuBirthday}&stuPhone=${stu.stuPhone}&stuAddress=${stu.stuAddress}">修改</a></td>
                <td><a href="DelStudent?stuId=${stu.stuId}" onclick="return confirm('确定删除?')">删除</a></td>
            </tr>
        </c:forEach>
    
        <td align="center" colspan="7">
            <a href="add.jsp">添加学生</a>
        </td>
    </table>
    </body>
    </html>
    
    

    18、update.jsp

    <%--
      Created by IntelliJ IDEA.
      User: Administrator
      Date: 2020/7/21
      Time: 9:22
      To change this template use File | Settings | File Templates.
    --%>
    <%@ page contentType="text/html;charset=UTF-8" language="java" %>
    <html>
    <head>
        <title>修改学生</title>
    </head>
    <body>
    <form action="UpdateStudent" method="post" style="padding-top:-700px;">
        输入学 生 id:<input name="stuId" type="text" readonly value="${stuId}"><br><br>
        输入用 户 名:<input name="stuName" type="text" value="${stuName}"><br><br>
        输 入 生 日:<input name="stuBirthday" type="text" value="${stuBirthday}"><br><br>
        输 入 电 话:<input name="stuPhone" type="text" value="${stuPhone}"><br><br>
        输入家庭住址:<input name="stuAddress" type="text" value="${stuAddress}"><br><br>
    
        <input type="submit" value="修改">
    </form>
    </body>
    </html>
    
    

    三、注意事项

    自行下载需要的jar包:
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    导入jar包后按提示fix一下。

    tomcat设置:
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

    这两处去掉web_war_exploded。

  • 您还可以看一下 王磊老师的javaweb 入门到精通Servlet&JSP;课程中的 02.servlet生命周期-init方法小节, 巩固相关知识点
  • 以下回答由chatgpt基于相关博客总结生成:

    首先,开发人工智能聊天系统需要考虑到后端和前端的开发。JSP和Servlet的作用分别对应前端和后端。前端主要负责网页的展示,JSP用于网页展示、UI设计和交互功能的实现,而后端主要负责数据的处理和业务逻辑的实现,Servlet用于处理业务逻辑和数据的处理。

    实现人工智能聊天系统需要以下步骤:

    1. 首先,需要在页面中添加一个输入框和发送按钮,用户在输入框中输入需要发送的内容,点击发送按钮后,将内容发送到后端Servlet进行处理。
    <form action="ChatServlet" method="POST">
        <input type="text" name="message"/>
        <input type="submit" value="发送"/>
    </form>
    
    1. 写一个servlet来处理用户发来的请求,解析用户输入的内容,发送响应到前端。在servlet中实现业务逻辑处理,并返回响应信息。
    public class ChatServlet extends HttpServlet {
    
        protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
            String message = request.getParameter("message");  //获取用户输入的内容
            String responseMessage = chat(message);  //调用业务逻辑方法,返回聊天响应信息
            response.setContentType("text/html;charset=UTF-8");  //设置响应的内容类型
            PrintWriter out=response.getWriter();  //获取响应输出流
            out.println(responseMessage);  //将响应信息打印到浏览器
        }
    
        protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
            doPost(request, response);
        }
    
        //自定义业务逻辑,实现聊天响应功能
        private String chat(String message) {
            // TODO 实现聊天业务逻辑
            return "我们正在聊天中。。。";
        }
    }
    
    1. 在业务逻辑方法中实现人工智能聊天功能,使用字符串对象的eq和contains方法进行字符串比较,根据用户输入的内容返回相应的回复信息。实现自然语言处理、关键词提取和语义分析等相关技术,确保系统能够更好的理解用户的输入内容和意图。
    //自定义业务逻辑,实现聊天响应功能
    private String chat(String message) {
        String responseMessage;
        if (message.equals("你好")) {
            responseMessage = "你好!";
        } else if (message.contains("天气")) {
            responseMessage = getWeather(message);
        } else {
            responseMessage = "不好意思,我不明白你的意思。";
        }
        return responseMessage;
    }
    

    其中,getWeather方法是从网络上获取天气信息的业务逻辑方法。

    1. 完成人工智能聊天系统的前端UI设计,将聊天响应信息展示到前端页面上。使用ajax技术实现异步传输,在页面无需刷新的情况下获得后端数据并展示到页面上。
    <script>
        $(function () {
            $('form').submit(function (event) {
                event.preventDefault();  // 阻止默认提交事件
                $.ajax({
                    url: $(this).attr('action'),  //获取表单的action属性
                    type: $(this).attr('method'),  //获取表单的method属性
                    data: $(this).serialize(),  //获取表单所有输入数据序列化
                    success: function (data) {  //成功回调函数
                        $('#messageBox').append($('<p>').text(data));  //将响应信息添加到页面
                        $('input[name=message]').val("");  //清空输入框
                    }
                });
            });
        });
    </script>
    
    <!--页面展示区-->
    <div id="messageBox">
        <p>聊天窗口</p>
        <p>请开始你的表演</p>
    </div>
    

    至此,便完成了人工智能聊天系统的搭建。当用户在前端页面输入信息并发送后,服务器经过业务逻辑的处理后将响应信息返回到前端页面并展示。如果您希望对用户的输入信息做更多的处理或使用其他技术实现人工智能聊天功能,可以参考相关文档或相关技术文献。