< % @ page language= "java" contentType= "text/html; charset=UTF-8"
pageEncoding= "UTF-8" % >
< ! 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=UTF-8" >
< title> 登录页面< / title>
< / head>
< body>
< form action= "login" method= "post" >
用户名:< input type= "text" name= "nickName" value= "${username}" / > < br/ >
密码:< input type= "password" name= "password" / value= "${password}" > < br/ >
< input type= "checkbox" name= "remenber" / > 记录用户名和密码< br/ >
< input type= "submit" value= "登录" / >
< / form>
< / body>
< / html>
package com. zl. login;
import java. io. IOException;
import java. sql. Connection;
import java. sql. DriverManager;
import java. sql. PreparedStatement;
import java. sql. ResultSet;
import java. sql. SQLException;
import javax. servlet. ServletException;
import javax. servlet. annotation. WebServlet;
import javax. servlet. http. Cookie;
import javax. servlet. http. HttpServlet;
import javax. servlet. http. HttpServletRequest;
import javax. servlet. http. HttpServletResponse;
import javax. servlet. http. HttpSession;
@WebServlet ( "/login" )
public class Login extends HttpServlet {
private static final long serialVersionUID = 1 L;
@Override
protected void service ( HttpServletRequest req, HttpServletResponse resp)
throws ServletException, IOException {
String nickName = req. getParameter ( "nickName" ) ;
String password = req. getParameter ( "password" ) ;
String remenber = req. getParameter ( "remenber" ) ;
Connection con = null;
PreparedStatement stat = null;
ResultSet u = null;
try {
Class. forName ( "com.mysql.jdbc.Driver" ) ;
con = DriverManager. getConnection (
"jdbc:mysql://localhost:3306/test" , "root" , "123" ) ;
String sql = "select * from userinfo where nickName = ? and password = ? " ;
stat = con. prepareStatement ( sql) ;
stat. setString ( 1 , nickName) ;
stat. setString ( 2 , password) ;
u = stat. executeQuery ( ) ;
if ( u != null) {
HttpSession session = req. getSession ( ) ;
session. setAttribute ( "userInfo" , nickName) ;
String user = nickName + "#" + password;
if ( "on" . equals ( remenber) ) {
Cookie cookie = new Cookie ( "remenber" , user) ;
cookie. setMaxAge ( 60 * 60 * 24 * 7 ) ;
resp. addCookie ( cookie) ;
resp. sendRedirect ( "index.jsp" ) ;
} else {
resp. sendRedirect ( "index.jsp" ) ;
}
} else {
resp. sendRedirect ( "login.jsp" ) ;
}
} catch ( Exception e) {
e. printStackTrace ( ) ;
} finally {
try {
if ( u != null) {
u. close ( ) ;
}
if ( stat != null) {
stat. close ( ) ;
}
if ( con != null) {
con. close ( ) ;
}
} catch ( SQLException e) {
e. printStackTrace ( ) ;
}
}
}
}
package com. zl. filter;
import java. io. IOException;
import javax. servlet. Filter;
import javax. servlet. FilterChain;
import javax. servlet. FilterConfig;
import javax. servlet. ServletException;
import javax. servlet. ServletRequest;
import javax. servlet. ServletResponse;
import javax. servlet. annotation. WebFilter;
import javax. servlet. http. Cookie;
import javax. servlet. http. HttpServletRequest;
import javax. servlet. http. HttpServletResponse;
import javax. servlet. http. HttpSession;
@WebFilter ( "/login.jsp" )
public class LoginFilter implements Filter {
public LoginFilter ( ) {
}
public void destroy ( ) {
}
public void doFilter ( ServletRequest request, ServletResponse response,
FilterChain chain) throws IOException, ServletException {
HttpServletRequest req = ( HttpServletRequest) request;
HttpServletResponse resp = ( HttpServletResponse) response;
Cookie[ ] cookies = req. getCookies ( ) ;
if ( cookies != null) {
for ( Cookie cookie : cookies) {
if ( "remenber" . equals ( cookie. getName ( ) ) ) {
String userInfo = cookie. getValue ( ) ;
String nickName = userInfo. split ( "#" ) [ 0 ] ;
String password = userInfo. split ( "#" ) [ 1 ] ;
HttpSession session = req. getSession ( ) ;
session. setAttribute ( "userInfo" , nickName) ;
req. setAttribute ( "username" , nickName) ;
req. setAttribute ( "password" , password) ;
req. getRequestDispatcher ( "login.jsp" ) . forward ( req, resp) ;
}
}
} else {
chain. doFilter ( request, response) ;
}
}
public void init ( FilterConfig fConfig) throws ServletException {
}
}