JSP 페이지 차단, 로그인 상세 및 구현 코드 확인

3743 단어 JSP검사하다
JSP 페이지 차단, 로그인 여부 확인
최근에 struts2를 사용하여 프로젝트를 진행하려면 JSP를 차단하여 등록되었는지 확인해야 하지만, struts2의 필터 체인은 action만 필터할 수 있습니다.나중에 웹에서 발견했어요.xml에서javax를 직접 추가할 수 있습니다.servlet.Filter 구현 클래스의 필터로 JSP를 필터링할 수 있습니다.코드 보기
Filter 구현 클래스

<span style="font-size:18px;">package com.common; 
 
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.http.HttpServlet; 
import javax.servlet.http.HttpServletRequest; 
import javax.servlet.http.HttpServletResponse; 
 
public class LoginFilter extends HttpServlet implements Filter {  
    
  private static final long serialVersionUID = 1L;  
  
  @Override  
  public void doFilter(ServletRequest request, ServletResponse response,  
      FilterChain chain) throws IOException, ServletException {  
    HttpServletRequest req = (HttpServletRequest)request;  
    HttpServletResponse res = (HttpServletResponse)response;  
    String path = req.getContextPath(); 
    String indexPath = req.getScheme()+"://"+req.getServerName()+":"+req.getServerPort()+path+ "/pages/login.jsp"; 
    if(req.getRequestURI().endsWith("login.jsp")) 
    { 
      chain.doFilter(request, response);  
      return; 
    } 
     
    Object loginuser = req.getSession().getAttribute("<strong><span style="color:#ff0000;">loginSession</span></strong>");  
    if(loginuser == null){ 
      res.sendRedirect(indexPath);  
      return;  
    } 
    chain.doFilter(request, response);  
  }  
  
  @Override  
  public void init(FilterConfig arg0) throws ServletException {  
    // TODO Auto-generated method stub   
  }  
  
}  
</span> 
로그인 방법:



<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>", login); 
    return "success"; 
  }</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>/pages/channel/*</url-pattern> 
   <url-pattern>/pages/content/*</url-pattern> 
   <url-pattern>/pages/product/*</url-pattern> 
   <url-pattern>/pages/vodtask/*</url-pattern> 
</filter-mapping> 



페이지에 프레임워크가 사용되면session이 시간을 초과하여 로그인 페이지로 종료될 수 있습니다. 로그인 페이지는 프레임워크의 하위 페이지에 표시됩니다. 해결 방법은 로그인 페이지에 다음과 같은 코드를 추가하면 됩니다.

<span style="font-size: 18px;">  <script language="javascript">   
    if (top != window)   
      top.location.href = window.location.href;   
  </script></span> 

읽어주셔서 감사합니다. 여러분에게 도움이 되었으면 좋겠습니다. 본 사이트에 대한 지지에 감사드립니다!

좋은 웹페이지 즐겨찾기