Java Servlet nullPointerException登录注销会话
嗨,我是新来的Servlets可能是个简单的问题。在我将数据传递到表单并单击submit按钮后,我得到了Java Servlet nullPointerException登录注销会话,java,servlets,Java,Servlets,嗨,我是新来的Servlets可能是个简单的问题。在我将数据传递到表单并单击submit按钮后,我得到了java.lang.NullPointerExceptionLogOut.doPost(LogOut.java:45)如何通过此异常 代码doGet: protected void doGet(HttpServletRequest request, HttpServletResponse response) { PrintWriter out = response.getWriter
java.lang.NullPointerException
LogOut.doPost(LogOut.java:45)
如何通过此异常
代码doGet:
protected void doGet(HttpServletRequest request, HttpServletResponse response) {
PrintWriter out = response.getWriter();
response.setContentType("text/html");
HttpSession session = request.getSession(false);
out.println("<form method='post' action='LogOut'>"
+ "usr <input type='text' id='username'/>"
+ "pass <input type='password'id='password'/>"
+ "<input type='submit' value='Login'></form>");
//If the username and password is correct
if (session != null) {
String username = (String) session.getAttribute("username");
out.println("Hi " + username + "sessioon is started with id " + session.getId());
out.println("<a id='logout' value='Logout' />");
}
}
我建议您使用
try catch
捕获异常,并在捕获异常时编写can来处理问题。比如给用户一条错误消息。如果错误消息总是出现,则代码中可能存在逻辑错误。但让我困惑的是,第45行没有代码。似乎您留下了一个空格。哪一行是doPost方法中的第45行?在这里//第45行检查是否request.getParameter(“用户名”)
或请求.getParameter(“密码”)
不返回null您的输入应该具有name
属性,而不是id
。像这样的话,它会工作得很好。
protected void doPost(HttpServletRequest request, HttpServletResponse response) {
PrintWriter out = response.getWriter();
String username = request.getParameter("username");
String password = request.getParameter("password");
response.setContentType("text/html");
if (username.equals("usr") && password.equals("pass")) { //line 45
HttpSession sess = request.getSession();
sess.setAttribute("username", username);
} else {
out.println("Wrong input data");
}
}