如何使用过滤器? 做一个简单的用户登陆,如果用户输入用户名和密码正确,则提示登陆成功信息,否则返回登陆界面 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 登陆后在session中保存一个登陆成功的标记在过滤器的doFilter方法中访问该标记如果未登陆则将请求转发至登陆界面过滤器对除登陆界面外的所有页面过滤 过滤器可以过滤不要的或需要转化东西(废话是吧)。比如编码转换,用户的权限控制 。过滤器属于前端控制器。做个比喻吧: 比如一个家的门有什么用呢?不要门也可以啊,陌生人进来,屋里的人判断一下是否认识,不认识就赶他走。这样的话家里的人会很忙,而且很不安全。有一个门的话,我们可以通过对讲机询问这个人是否认识才让他进来。具体可以看看<设计模式>gof的书。 哎 就比如你有一个文件夹person 就只有登陆的人才有权限访问 你如果不用过滤器就要每个页面去判断是否登陆了 用过滤器就会在访问每个jsp之前去判断是否登陆 省了很多事情 import java.io.IOException; import javax.servlet.http.*; import javax.servlet.*; public class LoginCheck implements Filter { protected FilterConfig filterConfig = null; public void destroy() { this.filterConfig = null; } public void doFilter(ServletRequest req, ServletResponse res, FilterChain chain) throws IOException, ServletException { if(filterConfig==null) return; HttpServletRequest hreq=(HttpServletRequest)req; HttpSession session=hreq.getSession(); if((session.getAttribute("username")==null)||(session.getAttribute("username").equals(""))){ RequestDispatcher requestDis=req.getRequestDispatcher("login.jsp"); requestDis.forward(req,res); } else{ chain.doFilter(req,res); } } public void init(FilterConfig filterConfig) throws ServletException { this.filterConfig = filterConfig; } } 别忘啦, <filter> <filter-name>cacheFilter</filter-name> <filter-class>你的class路径</filter-class> </filter> <!--filter-mapping> <filter-name>cacheFilter</filter-name> <url-pattern>*/url-pattern> </filter-mapping--> javaCC 解析语法公式 求解 经常看到说状态模式可以改写if-else结构,就没有看到有人具体说怎么做。 求一个找出网页源代码中所有网址的正则表达式 如何通过ibatis从数据库中取出数据并生成一个个文件 请大家帮忙, 程序出现ClassCastException 这个程序为什么会出错~ 关于JTable,如何设置一行的颜色。 关于键盘输入的代码的几个问题: Jbuilder5.0的怪问题 找出1~1000所有质数,每8个换一行,最后输出所有质数总和。 这个正则表达式怎么写呢?? java新手问题请教
在过滤器的doFilter方法中访问该标记
如果未登陆则将请求转发至登陆界面
过滤器对除登陆界面外的所有页面过滤
比如编码转换,用户的权限控制 。过滤器属于前端控制器。做个比喻吧: 比如一个家的门有什么用呢?不要门也可以啊,陌生人进来,屋里的人判断一下是否认识,不认识就赶他走。这样的话家里的人会很忙,而且很不安全。
有一个门的话,我们可以通过对讲机询问这个人是否认识才让他进来。
具体可以看看<设计模式>gof的书。
import java.io.IOException;
import javax.servlet.http.*;
import javax.servlet.*; public class LoginCheck implements Filter { protected FilterConfig filterConfig = null; public void destroy() { this.filterConfig = null; } public void doFilter(ServletRequest req, ServletResponse res, FilterChain chain) throws IOException, ServletException {
if(filterConfig==null)
return;
HttpServletRequest hreq=(HttpServletRequest)req;
HttpSession session=hreq.getSession();
if((session.getAttribute("username")==null)||(session.getAttribute("username").equals(""))){
RequestDispatcher requestDis=req.getRequestDispatcher("login.jsp");
requestDis.forward(req,res);
}
else{
chain.doFilter(req,res);
}
} public void init(FilterConfig filterConfig) throws ServletException {
this.filterConfig = filterConfig;
}
}
<filter>
<filter-name>cacheFilter</filter-name>
<filter-class>你的class路径</filter-class>
</filter>
<!--filter-mapping>
<filter-name>cacheFilter</filter-name>
<url-pattern>*/url-pattern>
</filter-mapping-->