Filter实现web未登录跳转到登录页面

import javax.servlet.*;

import javax.servlet.http.*;

import javax.servlet.annotation.*;


import java.io.*;


@WebFilter(filterName="authority"

, urlPatterns={"/*"}

, initParams={

@WebInitParam(name="encoding", value="GBK"),

@WebInitParam(name="loginPage", value="/login.jsp"),

@WebInitParam(name="proLogin", value="/proLogin.jsp")})

public class AuthorityFilter implements Filter 

{

//FilterConfig可用于访问Filter的配置信息

private FilterConfig config;

//实现初始化方法

public void init(FilterConfig config)

{

this.config = config; 

}

//实现销毁方法

public void destroy()

{

this.config = null; 

}

//执行过滤的核心方法

public void doFilter(ServletRequest request,

ServletResponse response, FilterChain chain)

throws IOException,ServletException

{

//获取该Filter的配置参数

String encoding = config.getInitParameter("encoding");

String loginPage = config.getInitParameter("loginPage");

String proLogin = config.getInitParameter("proLogin");

//设置request编码用的字符集

request.setCharacterEncoding(encoding); //①

HttpServletRequest requ = (HttpServletRequest)request;

HttpSession session = requ.getSession(true);

//获取客户请求的页面

String requestPath = requ.getServletPath();

//如果session范围的user为null,即表明没有登录

//且用户请求的既不是登录页面,也不是处理登录的页面

if( session.getAttribute("user") == null

&& !requestPath.endsWith(loginPage)

&& !requestPath.endsWith(proLogin))

{

//forward到登录页面

request.setAttribute("tip" , "对不起,您还没有登录!");

request.getRequestDispatcher(loginPage)

.forward(request, response);

}

//"放行"请求

else

{

chain.doFilter(request, response);

}

}



转载于:https://my.oschina.net/u/2418824/blog/599307

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值