日期:2014-05-17  浏览次数:20718 次

Filter:使用Filter、Session判断登录,请前辈看下有没有什么可以改进的地方,100分奉上
登录页面:

<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<html>
  <head>
  </head>
  <body>
    <form action="servlet/LoginServlet" method="post">
    <input type="text" name="username"/><br/>
    <input type="password" name="password"/><br/>
    <input type="submit" value="登录"/>
    </form>
  </body>
</html>

登录成功页面:
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<html>
<head>
</head>
<body>登录成功!
</body>
</html>

web.xml

<filter>
<filter-name>LoginFilter</filter-name>
<filter-class>filter.LoginFilter</filter-class>
</filter>

<filter-mapping>
<filter-name>LoginFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>

<servlet>
<servlet-name>LoginServlet</servlet-name>
<servlet-class>servlet.LoginServlet</servlet-class>
</servlet>

<servlet-mapping>
<servlet-name>LoginServlet</servlet-name>
<url-pattern>/servlet/LoginServlet</url-pattern>
</servlet-mapping>

LoginServlet

public class LoginServlet extends HttpServlet {

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

public String notNull(String param) {
return param == null ? "" : param;
}

public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
HttpSession session = request.getSession();
String username = request.getParameter("username");
String password = request.getParameter("password");

System.out.println("username:"+username);
System.out.println("password:"+password);

if (username.equals("douya0808") && password.equals("123456")) {// 直接给xxxxLoginTest/servlet/LoginServlet会由于没传值而报出NullPointer
System.out.println("信息正确,跳转页面中...");
session.setAttribute("login", "LoginSuccess!");
response.sendRedirect(request.getContextPath() + "/success.jsp");
} else {
response.sendRedirect(request.getContextPath() + "/login.jsp");
}

}
}

LoginFilter

public class LoginFilter implements Filter {

public void init(FilterConfig filterConfig) throws ServletException {
System.out.println("过滤器初始化中...");
}

public void destroy() {

}

public void doFilter(ServletRequest request,&n