servlet进行权限控制及排除指定方法

[size=medium][b]在java web开发过程中,我们需要对其进行权限的控制,下面介绍一下sevrvlet进行权限的控制。[/b]

[size=medium][color=blue]配置一个servlet拦截器Filter :arrow:

1.写一个Filter类需要实现servlet Filter方法如代码[/color][/size]

public class LoginFilter implements Filter{

@Override
public void init(FilterConfig filterConfig) throws ServletException {
// TODO Auto-generated method stub

}

@Override
public void doFilter(ServletRequest request, ServletResponse response,
FilterChain chain) throws IOException, ServletException {

HttpServletResponse resp = (HttpServletResponse)response;
HttpServletRequest req = (HttpServletRequest)request;

System.out.println(req.getRequestURL());
String requestURL = req.getRequestURL().toString();
String requestName = requestURL.substring(requestURL.lastIndexOf("/")+1);
System.out.println(requestName);

//拦截地址中login.html及以.js和.css结尾的请求地址
if(requestName.equals("login.html")||requestName.matches(".*\\.js$")||requestName.matches(".*\\.css$")){
System.out.println(requestName);
//跳到下一步请求
chain.doFilter(request, response);
return;
}

HttpSession session = req.getSession(true);

String username = (String) session.getAttribute("username");
if(username == null||"".equals(username)){
resp.sendRedirect("/cookies/login.html");
}else {
chain.doFilter(request,response);
}
}

@Override
public void destroy() {
// TODO Auto-generated method stub

}

}



[size=medium][color=blue]注意:在这个类中,可以看到:[/color][/size]
//拦截地址中login.html及以.js和.css结尾的请求地址
if(requestName.equals("login.html")||requestName.matches(".*\\.js$")||requestName.matches(".*\\.css$")){
System.out.println(requestName);
//跳到下一步请求
chain.doFilter(request, response);
return;
}

[size=medium][color=blue]我们可以拦截一些你想另外处理的请求,这里我拦截了login.html及以.js和.css(正则表达式)结尾的请求地址,不对其进行处理(chain.doFilter(request, response);)直接跳到下一个链。[/color][/size]

[color=indigo]chain.doFilter(request, response),可以参考[url]http://blog.csdn.net/huangcongjie/article/details/7377422[/url][/color]

[size=medium]2.filter写好之后,在web.xml中进行配置:[/size]

<filter>
<filter-name>/filter</filter-name>
<filter-class>org.guess.filter.LoginFilter</filter-class>
</filter>

<filter-mapping>
<filter-name>/filter</filter-name>
<url-pattern>*</url-pattern>
</filter-mapping>

[color=indigo]<url-pattern>*</url-pattern>配置可参考[url]http://ghsea.iteye.com/blog/181485[/url][/color]

[size=medium][color=blue]这里我通过<url-pattern>*</url-pattern>把所有的请求(包括webservice的服务)都拦截到了这个拦截器里面,当然你也可以更灵活的配置。

以上就完成了,servlet的一个简单的拦截器的配置[/color][/size]

[color=red]语言组织能力有待加强!!![/color]
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值