JSP 페이지를 가로 채서 로그인한지 확인하십시오.
최근에 Struts2를 사용하여 프로젝트를 수행했으며 JSP가 기록되었는지 확인하기 위해 JSP를 가로 채어야했지만 Struts2의 필터 체인은 동작 만 필터 만 필터 할 수 있습니다. 나중에 web.xml에서 javax.servlet.filter 구현 클래스의 필터를 필터 JSP에 직접 추가 할 수 있음을 발견했습니다. 코드를 참조하십시오
필터 구현 클래스
<span style = "font-size : 18px;"> 패키지 com.common; import java.io.ioexception; 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.http.httpservlet; import javax.servlet.httpservlet; import javax.servlet.httpservlet; javax.servlet을 가져옵니다. javax.servlet.http.httpservletrequest; import javax.servlet.http.httpservletresponse; 공개 클래스 LoginFilter 확장 httpservlet implements 필터 {private static final long serialversionuid = 1l; @override public void dofilter (servletrequest 요청, servletreponse 응답, 필터 체인 체인)는 ioexception, servletexception {httpservletrequest req = (httpservletrequest) 요청; httpservletresponse res = (httpservletresponse) 응답; 문자열 path = req.getContextPath (); String Indexpath = req.getScheme ()+": //"+req.getServerName ()+":"+req.getServerport ()+path+"/pages/login.jsp"; if (req.getRequesturi (). endSwith ( "login.jsp")) {chain.dofilter (요청, 응답); 반품; } Object loginUser = req.getSession (). getAttribute ( "<strong> <span style ="color :#ff0000; "> loginsession </span> </strong>"); if (loginuser == null) {res.sendRedirect (indexpath); 반품; } chain.dofilter (요청, 응답); . 로그인 방법 :
<span style = "font-size : 18px;"> public string login () {login login = new login (); //..... 확인 로그인 정보 actionContext CTX = ActionContext.getContext (); map <string, object> session = ctx.getSession (); session.put ( "<strong> <span style ="color :#ff0000; "> loginsession </span> </strong>", 로그인); "성공"을 반환합니다. } </span> web.xml 구성
<filter> <filter-name> setLog </filter-name> <filter-class> com.common.loginFilter </filter-class> </filter> <filter-mapping> <filter-name> setLog </filter-name> <Url-pattern> /pages/home.jsp </url-pattern> <url-pattern>/pattern>/pattern> <Url-pattern>/pages/content/*</url-pattern> <Url-pattern>/pages/product/*</url-pattern> <url-pattern>/pages/vodtask/*</url-pattern> </필터-매핑>
페이지에서 프레임이 사용되면 세션이 시간을 초과하고 로그인 페이지에 로그 아웃 할 수 있습니다. 현재 로그인 페이지가 프레임의 하위 페이지에 표시됩니다. 해결책 : 로그인 페이지에 다음 코드를 추가하십시오.
<span style = "font-size : 18px;"> <script language = "javaScript"> if (top! = window) top.location.href = window.location.href; </script> </span>
읽어 주셔서 감사합니다. 도움이되기를 바랍니다. 이 사이트를 지원 해주셔서 감사합니다!