国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > Java > 正文

攔截JSP頁面,校驗是否已登錄詳解及實現代碼

2019-11-26 13:35:21
字體:
來源:轉載
供稿:網友

攔截JSP頁面,校驗是否已登錄

   最近使用struts2做項目,需要攔截JSP以校驗是否已經登,但struts2的過濾器鏈只能過濾action。后來發現在web.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> 

感謝閱讀,希望能幫助到大家,謝謝大家對本站的支持!

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 澄城县| 新邵县| 阳春市| 常宁市| 曲水县| 秦皇岛市| 景德镇市| 汉源县| 灵台县| 桦南县| 萨迦县| 个旧市| 岐山县| 华安县| 化德县| 武宁县| 松溪县| 万山特区| 天水市| 灵丘县| 普兰县| 密山市| 建水县| 大关县| 酉阳| 海宁市| 达孜县| 陕西省| 策勒县| 霍林郭勒市| 钟祥市| 江门市| 都兰县| 海盐县| 二连浩特市| 平和县| 开远市| 大理市| 拉萨市| 武汉市| 威信县|