读书人

一个servlet得到jsp控件值报空指针解决

发布时间: 2012-04-01 17:23:46 作者: rapoo

一个servlet得到jsp控件值报空指针
servlet页面:
public class LoginServlet extends HttpServlet {
private static final long serialVersionUID = 1L;

public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
doPost(request,response);
}

public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
response.setCharacterEncoding("utf-8");
request.setCharacterEncoding("utf-8");
response.setContentType("text/html");

String name=request.getParameter("user");
String password=request.getParameter("password");
if(name.equals("")||password.equals("")){
response.sendRedirect("index.jsp");
}
else{
if(name.equals("jheng") && password.equals("123456")){
response.sendRedirect("success.jsp");
HttpSession session =request.getSession();
session.setAttribute("user", name);
}
else{
response.sendRedirect("error.jsp");
}
}
}


}
jsp页面:
<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>登陆页面</title>
</head>
<body>
<form action="login" method="post">
<table>
<tr>
<td>用户名</td>
</tr>
<tr>
<td><input type="text" name="user" id="user"></td>
</tr>
<tr>
<td>密码</td>
</tr>
<tr>
<td><input type="password" name="password" id="password"></td>
</tr>
<tr>
<td><input type="submit" value="提交"></td>
</tr>
</table>
</form>
</body>
</html>



[解决办法]
<?xml version="1.0" encoding="UTF-8"?>
<web-app version="2.4"
xmlns="http://java.sun.com/xml/ns/j2ee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee
http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">
<servlet>
<servlet-name>LoginServlet</servlet-name>
<servlet-class>com.niit.servlet.LoginServlet</servlet-class>
</servlet>

<servlet-mapping>
<servlet-name>LoginServlet</servlet-name>
<url-pattern>/login</url-pattern>这个是servlet访问地址,jsp页面上form表单action="login"提交表单到这个servlet中 你原来写的"/*"struts1里才用吧
</servlet-mapping>
<welcome-file-list>
<welcome-file>index.jsp</welcome-file>
</welcome-file-list>
</web-app>

[解决办法]

探讨
大家貌似没懂我的意思,我把<servlet-name>LoginServlet</servlet-name>这个并不变啊,
只是把<url-pattern>变了一下,为什么也能运行呢?不是有高手说<servlet-name>的要与jsp里面的Action=“login”一样才能运行么?

[解决办法]
<servlet-mapping>
<servlet-name>LoginServlet</servlet-name>


<url-pattern>/login</url-pattern>这个是servlet访问地址,jsp页面上form表单action="login"提交表单到这个servlet中。
</servlet-mapping>
[解决办法]
<form action="login">这个login是与url-pattern有关,与servlet-name是没有关系的。

读书人网 >J2EE开发

热点推荐