使用jsp,javabean,servlet来完成一个简单的人工智能聊天功能系统,设有一个输入键可以输入对话内容,点击发送就服务器会返回一些句子(字符串对比使用字符串对象的eq等方法,某个字符串是否是另外一个字符串的等contains方法)
需要源码的请加微信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。
首先,开发人工智能聊天系统需要考虑到后端和前端的开发。JSP和Servlet的作用分别对应前端和后端。前端主要负责网页的展示,JSP用于网页展示、UI设计和交互功能的实现,而后端主要负责数据的处理和业务逻辑的实现,Servlet用于处理业务逻辑和数据的处理。
实现人工智能聊天系统需要以下步骤:
<form action="ChatServlet" method="POST">
<input type="text" name="message"/>
<input type="submit" value="发送"/>
</form>
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 "我们正在聊天中。。。";
}
}
//自定义业务逻辑,实现聊天响应功能
private String chat(String message) {
String responseMessage;
if (message.equals("你好")) {
responseMessage = "你好!";
} else if (message.contains("天气")) {
responseMessage = getWeather(message);
} else {
responseMessage = "不好意思,我不明白你的意思。";
}
return responseMessage;
}
其中,getWeather方法是从网络上获取天气信息的业务逻辑方法。
<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>
至此,便完成了人工智能聊天系统的搭建。当用户在前端页面输入信息并发送后,服务器经过业务逻辑的处理后将响应信息返回到前端页面并展示。如果您希望对用户的输入信息做更多的处理或使用其他技术实现人工智能聊天功能,可以参考相关文档或相关技术文献。