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、最终结果展示:登陆系统以后可以任意查看其它页面,而没有登陆时,查看其它页面将会被拦截返回登陆页,并给出提示信息。
相关文章推荐
- jersey利用filter和Dynamic binding来实现token拦截过滤请求
- Java解决在浏览器地址栏中输入url访问action的问题以及拦截方法过滤的简易实现
- Java解决在浏览器地址栏中输入url访问action的问题以及拦截方法过滤的简易实现
- java 解析ExtJS的GridPanel的Filter请求服务器的过滤条件
- 基于.net mvc的校友录(五、web.config对的配置以及filter实现的权限控制)
- Java 利用过滤器Filter 实现登录过滤
- javaWed项目中用过滤器实现转码功能,敏感词汇过滤更能,处理Get和Post接收数据中的中文乱码问题以及敏感词汇的处理
- 重新想象 Windows 8.1 Store Apps (90) - 通信的新特性: 通过 HttpBaseProtocolFilter 实现 http 请求的缓存控制,以及 cookie 读写; 自定义 HttpFilter; 其他
- 【OA】——用Struts2拦截器实现对每一个请求的权限判断
- 在yii中使用Filter实现RBAC权限自动判断
- android6.0M系统在代码中实现请求以及检查权限。
- 用java实现结婚、离婚小程序,其中有一些判断条件,正确掌握this关键字的用法
- 实现session超时后自动跳转到登陆页面(前台JS,JAVA,判断是否Ajax请求)
- filter实现过滤压缩指定的请求的操作
- java反射--注解的定义与运用以及权限拦截
- java的权限拦截和javascipt判断是否登陆时的跳转
- java反射--注解的定义与运用以及权限拦截
- javaweb之request实现请求转发以及request域带数据给转发资源
- java反射--注解的定义与运用以及权限拦截
- 在yii中使用Filter实现RBAC权限自动判断