Java 如何像jsp和oracle中的聊天机器人一样在文本区域显示输出
我正在做一个关于chatbot的项目,但是这个项目使用的是eclipse而不是AIML。我现在不知道如何显示已保存在oracle数据库中的数据` 聊天服务器Java 如何像jsp和oracle中的聊天机器人一样在文本区域显示输出,java,oracle,jsp,servlets,Java,Oracle,Jsp,Servlets,我正在做一个关于chatbot的项目,但是这个项目使用的是eclipse而不是AIML。我现在不知道如何显示已保存在oracle数据库中的数据` 聊天服务器 public class ChatServlet extends HttpServlet { private static final long serialVersionUID = 1L; private static String ChatBot = "/ChatBot.jsp"; private static
public class ChatServlet extends HttpServlet {
private static final long serialVersionUID = 1L;
private static String ChatBot = "/ChatBot.jsp";
private static String HOME = "/Home.jsp";
private ChatDAO dao;
/**
* @see HttpServlet#HttpServlet()
*/
public ChatServlet() {
super();
dao = new ChatDAO();
// TODO Auto-generated constructor stub
}
/**
* @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
*/
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
// TODO Auto-generated method stub
try {
String forward="";
String action = request.getParameter("action");
ChatInfo chat = new ChatInfo();
if(action.equalsIgnoreCase("delete"))
{
int USER_ID = Integer.parseInt(request.getParameter("USER_ID"));
System.out.println(USER_ID);
dao.deleteChat(USER_ID);
forward = HOME;
request.setAttribute("chats", dao.getAllChatDAO());
}
catch (Throwable theException) {
System.out.println(theException);
}
}
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
// TODO Auto-generated method stub
ChatInfo chat = new ChatInfo();
int USER_ID = 1;
int ANSWER_ID = 1;
chat.setANSWER(request.getParameter("answer"));
chat.setUSER_ID(USER_ID);
chat.setANSWER_ID(ANSWER_ID);
chat = dao.add(chat);
USER_ID++;
ANSWER_ID++;
response.sendRedirect("ChatBot.jsp");
}
}
ChatBot.jsp
<div id = "container" align="left">
<%
String ques = null;
String[] OpenA = {"Apa yang membawa anda ke mari?","Apa yang boleh saya bantu?", "Bagaimana saya boleh bantu anda hari ini?"};
List<String> listO = Arrays.asList(OpenA);
Collections.shuffle(listO);
for (String name : listO) {
ques = name;
}
out.println("Dr.Anna : "+ ques);
%>
</div>
<form action='ChatServlet' method="post">
<div id = "controls">
<textarea name = "answer" placeholder = "Enter your message here..."></textarea>
<button type = "submit" value="submit">Send</button>
</div>
</form>
发送
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_2_5.xsd" id="WebApp_ID" version="2.5">
<display-name>chat</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>
<description></description>
<display-name>ChatServlet</display-name>
<servlet-name>ChatServlet</servlet-name>
<servlet-class>ChatServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>ChatServlet</servlet-name>
<url-pattern>/ChatServlet</url-pattern>
</servlet-mapping>
</web-app>
聊天
index.html
index.htm
index.jsp
default.html
default.htm
default.jsp
聊天服务器
聊天服务器
聊天服务器
聊天服务器
/聊天服务器
我想显示的数据在ChatBot.jsp上。您可以使用请求调度器在请求时保存变量,也可以在jsp上访问相同的请求对象
int USER_ID = 1;
int ANSWER_ID = 1;
chat.setANSWER(request.getParameter("answer"));
chat.setUSER_ID(USER_ID);
chat.setANSWER_ID(ANSWER_ID);
chat = dao.add(chat);
USER_ID++;
ANSWER_ID++;
String answer= request.getParameter("answer");
request.setAttribute("answer", answer);
RequestDispatcher rd=req.getRequestDispatcher("/ChatBot.jsp");
rd.forward(req, resp);
在jsp中,在程序中执行以下步骤
<div id = "container" align="left">
<%
String ques = null;
String[] OpenA = {"Apa yang membawa anda ke mari?","Apa yang boleh saya bantu?", "Bagaimana saya boleh bantu anda hari ini?"};
List<String> listO = Arrays.asList(OpenA);
Collections.shuffle(listO);
for (String name : listO) {
ques = name;
}
out.println("Dr.Anna : "+ ques);
String answer=(String)request.getAttribute("answer");
if(answer !=null)
out.print(answer);
%>
</div>
<form action='ChatServlet' method="post">
<div id = "controls">
<textarea name = "answer" placeholder = "Enter your messagehere...">
</textarea>
<button type = "submit" value="submit">Send</button>
</div>
</form>
发送
此外,如果您希望增加用户Id和答案Id,并打印所有问题,我想您应该考虑以下几点来实现
您可以使用请求调度器在请求时保存变量,也可以在jsp中访问相同的请求对象
int USER_ID = 1;
int ANSWER_ID = 1;
chat.setANSWER(request.getParameter("answer"));
chat.setUSER_ID(USER_ID);
chat.setANSWER_ID(ANSWER_ID);
chat = dao.add(chat);
USER_ID++;
ANSWER_ID++;
String answer= request.getParameter("answer");
request.setAttribute("answer", answer);
RequestDispatcher rd=req.getRequestDispatcher("/ChatBot.jsp");
rd.forward(req, resp);
在jsp中,在程序中执行以下步骤
<div id = "container" align="left">
<%
String ques = null;
String[] OpenA = {"Apa yang membawa anda ke mari?","Apa yang boleh saya bantu?", "Bagaimana saya boleh bantu anda hari ini?"};
List<String> listO = Arrays.asList(OpenA);
Collections.shuffle(listO);
for (String name : listO) {
ques = name;
}
out.println("Dr.Anna : "+ ques);
String answer=(String)request.getAttribute("answer");
if(answer !=null)
out.print(answer);
%>
</div>
<form action='ChatServlet' method="post">
<div id = "controls">
<textarea name = "answer" placeholder = "Enter your messagehere...">
</textarea>
<button type = "submit" value="submit">Send</button>
</div>
</form>
发送
此外,如果您希望增加用户Id和答案Id,并打印所有问题,我想您应该考虑以下几点来实现
你能更具体地说明你打算收到什么吗?是否希望已保存的消息显示在文本区域中?是。我想让留言出现@Sathya您是指您在“在此处输入您的消息…”或使用divID=控件在同一位置输入的消息?如果是这样,下次您将在W聊天框中得到相同的答案我希望在“在此处输入您的消息”中输入消息到文本区域id='container'。。这意味着,在我在“在此处输入您的消息”处输入消息后,该消息将保存在oracle中。然后,来自oracle的数据,我希望它出现在文本区域id='container'您能更具体地说明您打算接收什么吗?是否希望已保存的消息显示在文本区域中?是。我想让留言出现@Sathya您是指您在“在此处输入您的消息…”或使用divID=控件在同一位置输入的消息?如果是这样,下次您将在W聊天框中得到相同的答案我希望在“在此处输入您的消息”中输入消息到文本区域id='container'。。这意味着,在我在“在此处输入您的消息”处输入消息后,该消息将保存在oracle中。然后,来自oracle的数据,我希望它出现在文本区域id='container'它正在工作。。谢谢,但是我怎样才能使userID和AnswerId增加呢?我试图声明int USER_ID;但这不可能是宣告它起作用了。。谢谢,但是我怎样才能使userID和AnswerId增加呢?我试图声明int USER_ID;但它不能申报