聊天程序的问题

时间:2015-12-07 01:12:48

标签: java jsp servlets

我正在做一个学校项目,不知道我哪里出错了。任何帮助表示赞赏。该项目是一个简单的聊天servlet,我们必须能够在我们学校的Tomcat服务器上运行。现在我有一个Servlet和一个JSP。

public class ChatServ extends HttpServlet {
    public List chatList;
    public boolean stillAlive;

    public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        stillAlive = true;
        chatList = new List();
        chatList.add("Hello World!");
        request.setAttribute("chatList", chatList);
        while(stillAlive){
            request.setAttribute("chatList", chatList);

            String message = request.getParameter("message");
            if (message != null) {
                message = message.trim();
                if (message.length() != 0) {
                    chatList.add(message);
                }
            }
        }
    }
}

我写的JSP是:

<%@ page import="finalProject.*,java.util.List" language="java" contentType="text/html; charset=ISO-8859-1"
pageEncoding="ISO-8859-1"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>My Chat Project</title>
</head>
<body>
<%= request.getParameter("username")%>

<p>

<textarea name="chat" rows="13" cols="60">
<%
try{
List chat = (List) request.getAttribute("chatList");

    int start = chat.size()-10;
    for (int i=start; i<chat.size(); i++) {
    out.println(i + ": " + chat.get(i));
    }
}catch(NullPointerException e){
    out.println("Try again next time!");
}
 %>
</textarea>
</br>
<form action="ChatServ">
Say: <input type="text" name="message" size="60"/>
<br/>
<input type="submit" name="submit" value="Talk/Refresh"/>
</form>
</p>
</body>
</html>

非常感谢任何帮助。现在我从JSP获取一个空指针试图获取List,我无法弄清楚原因。我仍然是网络方面的新手。谢谢!

SEVERE: Servlet.service() for servlet [jsp] in context with path [/FinalProject] threw exception [An exception occurred processing JSP page /chat.jsp at line 19

16: //try{
17:     List chat = (List) request.getAttribute("chatList");
18: 
19:     int start = chat.size()-10;
20:     for (int i=start; i<chat.size(); i++) {
21:         out.println(i + ": " + chat.get(i));
22:     }


Stacktrace:] with root cause
java.lang.NullPointerException
at org.apache.jsp.chat_jsp._jspService(chat_jsp.java:131)
at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:729)
at     org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:438)
at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:396)
at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:340)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:729)
at     org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:291)
at     org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)
at     org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:239)
at     org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:212)
at     org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:106)
at     org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:502)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:141)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:79)
at org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:616)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:88)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:518)
at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1096)
at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:674)
at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1500)
at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.run(NioEndpoint.java:1456)
at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
at java.lang.Thread.run(Unknown Source)

0 个答案:

没有答案
相关问题