java session 登录验证_JavaWeb开发中session会话登录身份验证的实现方式(java过滤器)...

在java Web系统的开发中我们常常要使用登录身份的验证工作,比如登录一个会员模块后保存session会话到服务端,以后每次请求时都对该会话进行验证,以保证此次访问时有效登录后发生的请求,从而给与响应和反馈。一般情况下我们可以使用这种方式进行身份验证。这里我们谈另一种实现方式:

过滤器实现方式:

@WebFilter(description="过滤会员登录jsp,act请求并检验登录session",

urlPatterns="/members/*",

initParams = {

@WebInitParam(name="rule0",value="jsp"),

@WebInitParam(name="rule1", value="act")

})

public class LoginCheckWebFilter implements Filter {

protected String rule0=null;

protected String rule1=null;

@Override

public void init(FilterConfig arg0) throws ServletException {//读取规则初始化

rule0="."+arg0.getInitParameter("rule0").toLowerCase();

rule1="."+arg0.getInitParameter("rule1").toLowerCase();

}

public void doFilter(ServletRequest arg0, ServletResponse arg1, FilterChain filterChain) throws IOException, ServletException {

HttpServletRequest request = (HttpServletRequest) arg0;

HttpServletResponse response = (HttpServletResponse) arg1;

HttpSession session = request.getSession();

request.setCharacterEncoding("utf-8");

response.setCharacterEncoding("utf-8");

String urlFileString=request.getRequestURI();

String extName=urlFileString.toLowerCase();

if(checkIfFilt(extName))//符合拦截规则

{

Log.i("符合拦截规则="+extName);

if (session.getAttribute("LOGIN_SESSION") == null && !extName.endsWith("login.jsp")) {

response.sendRedirect("/members/");

return;

}

else {

Log.d("处理请求转到对应servlet="+request.getQueryString());

filterChain.doFilter(arg0, arg1);

}

}

else //不符合拦截规则,则放行

{

//Log.d("不符合拦截规则="+extName);

filterChain.doFilter(arg0, arg1);

}

}

/**判断是否符合拦截规则 */

private boolean checkIfFilt(String extName) {

if(!extName.equals("")&&(extName.endsWith(rule0)||extName.endsWith(rule1)))

return true;

return false;

}

@Override

public void destroy() {

}

}

注:这里使用Servlet3.0的注入式解释配置方式配置,servlet3.0以前版本请在web.xml文件中配置。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值