您的位置:首页 > 编程语言 > Java开发

java之Filter用法(实现请求的拦截过滤,以及权限判断)

2014-08-04 17:04 651 查看

Filter实现登陆权限的过滤实例

Fileter简介:
Filter 主要是实现拦截客户端到达servlet到页面请求,并且能够修改请求(HttpServletRequest)的头和数据。
(实现登陆的登陆判断,以及相关权限的判断)
Filter还可以实现在HttpServletResponse到达客户端的拦截,可以检查修改(HttpServletResponse)的头和数据
1、Filter实现类
public class DoLogin implements Filter{

//获取配置参数信息

private FilterConfig config;

//初始化

public void init(FilterConfig config)

{

this.config=config;

}

//实现销毁

public void destroy()

{

this.config=null;

}

//实现doFilter方法

public void doFilter(ServletRequest request,ServletResponse response,FilterChain chain)

throws IOException,ServletException

{

//获取Filter的配置参数

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

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

String proPage=config.getInitParameter("ProPage");

//设置编码集

request.setCharacterEncoding(encoding);

//把强求转化为HttpServletRequest

HttpServletRequest hreq=(HttpServletRequest)request;

//获取登录信息

HttpSession session=hreq.getSession(true);

//获取请求页面

String hreqPath=hreq.getServletPath();

//判断页面信息,登录user有信息,登录页面时login.jsp或者是prologin.jsp

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

&&!hreqPath.endsWith(loginPage)

&&!hreqPath.endsWith(proPage))

{

//跳转到登录页面

request.setAttribute("tip", "你还没有登录");

request.getRequestDispatcher(loginPage).forward(request, response);

}

else

{

//放行

chain.doFilter(request, response);

}

}

}
2、配置web.xml
<filter>

<filter-name>dologin</filter-name>

<filter-class>lee.DoLogin</filter-class>

<init-param>

<param-name>encoding</param-name>

<param-value>GBK</param-value>

</init-param>

<init-param>

<param-name>LoginPage</param-name>

<param-value>/login.jsp</param-value>

</init-param>

<init-param>

<param-name>ProPage</param-name>

<param-value>/proLogin.jsp</param-value>

</init-param>

</filter>

<!-- 拦截URL-->

<filter-mapping>

<filter-name>dologin</filter-name>

<url-pattern>/*</url-pattern>

</filter-mapping>

</web-app>
3、在web容器中创建3个页面login.jsp ;prologin.jsp;other.jsp
4、最终结果展示:登陆系统以后可以任意查看其它页面,而没有登陆时,查看其它页面将会被拦截返回登陆页,并给出提示信息。


内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐