Web. xml
<! -- User session key sessionkey --> <context-param> <param-Name> usersessionkey </param-Name> <param-value> usersessionkey </param-value> </Context -param> <! -- Redirected page --> <context-param> <param-Name> rediretpage </param-Name> <param-value>/u_member/login. JSP </param-value> </context-param> <! -- Pages that do not need to be filtered --> <context-param> <param-Name> uncheckurls </param-Name> <param-value>/u_member/insert. JSP,/u_member/login. JSP </param-value> </context-param>
Filter filter code
Package go. onlineshop. filter; import Java. io. ioexception; import Java. util. arrays; import Java. util. list; 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. httpservletrequest; import javax. servlet. HTTP. httpservletresponse;/*** servlet Filter Implementation class isloginfilter * determine whether to log on to the filter */@ webfilter ("/u_member ") public class isloginfilter implements filter {// string uncheckurls = NULL from XML; string usersessionkey = NULL; string rediretpage = NULL;/*** default constructor. */Public isloginfilter () {// todo auto-generated constructor stub}/*** @ see filter # destroy () */Public void destroy () {// todo auto-generated method stub}/*** @ see filter # dofilter (servletrequest, servletresponse, filterchain) */Public void dofilter (servletrequest req, servletresponse res, filterchain chain) throws ioexception, servletexception {// todo auto-generated method stub // 1. obtain the access path httpservletrequest request = (httpservletrequest) req; httpservletresponse response = (httpservletresponse) RES; string requrl = request. getrequesturl (). tostring (); string requri = request. getrequesturi (); string servletpath = request. getservletpath (); // string [] uncheckurl = uncheckurls. split (","); List <string> URLs = arrays. aslist (uncheckurls. split (","); // 2. if it is an address that does not need to be filtered, the method is directly allowed to end if (URLs. contains (servletpath) {chain. dofilter (request, response); return;} // 3. obtains the value of sessionkey from the session. If the value does not exist, the system jumps to the logon Page Object User = request. getsession (). getattribute (usersessionkey); If (user = NULL) {request. getrequestdispatcher (rediretpage ). forward (request, response); return;} // 4 If yes; chain. dofilter (request, response);}/*** @ see filter # Init (filterconfig) */Public void Init (filterconfig fconfig) throws servletexception {rediretpage = fconfig. getservletcontext (). getinitparameter ("rediretpage"); uncheckurls = fconfig. getservletcontext (). getinitparameter ("uncheckurls"); usersessionkey = fconfig. getservletcontext (). getinitparameter ("usersessionkey ");}}
Use filter to determine whether a user logs in