过滤器问题!!!!! 我在做物流管理系统时,要做一个登录过滤器,只有登录后才可以查看内容,其他的页面不能直接打开,需跳到登录页面。现在有一个问题,在web.xml里 我以前用/*来设定过滤范围可以,但是现在/*不可以了,会使整个项目页面出问题,而一个一个的过滤却好使,不知道有没有哪位朋友遇见过类似的问题,望请教.... 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 登录后才可以查看内容,其他的页面不能直接打开解决方法=》在JSP页面中加入一个 【用户。名字】的输出项。session中放入 用户。(不需要做权限验证了)在web.xml里 我以前用/*来设定过滤范围可以,但是现在/*不可以了,解决方法=》利用后缀来分开各个FILTER。 要看下你的过滤器mapping是怎么设的另外,还是推荐用多个过滤器,好管理 把登陆页面和内容页面不要发在一起。也就是说内容页面都放在一个文件夹里。登陆页面就发在文件夹得外面。你过滤时就过滤文件夹就可以了。如果它访问的路径是文件夹里的页面话就直接跳到登陆页面。这样的话就用过滤器。代码如下:package com.company.servlet;import java.io.IOException;import java.io.PrintWriter;import javax.servlet.Filter;import javax.servlet.FilterChain;import javax.servlet.FilterConfig;import javax.servlet.ServletException;import javax.servlet.ServletRequest;import javax.servlet.ServletResponse;import javax.servlet.http.HttpServlet;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;public class AdminFilter extends HttpServlet implements Filter { public void doFilter(ServletRequest arg0, ServletResponse arg1, FilterChain arg2) throws IOException, ServletException { // 未登陆用户禁止访问后台的任何页面 HttpServletRequest request = (HttpServletRequest) arg0; Object user = request.getSession().getAttribute("usermodel"); if (null == user || "".equals(user)) { // 直接到登陆截面 request.getRequestDispatcher("/admin/backlogin.jsp").forward(arg0, arg1); } else { arg2.doFilter(arg0, arg1); } } public void init(FilterConfig arg0) throws ServletException { // TODO Auto-generated method stub } /** * Constructor of the object. */ public AdminFilter() { super(); } /** * Destruction of the servlet. <br> */ public void destroy() { super.destroy(); // Just puts "destroy" string in log // Put your code here } /** * Initialization of the servlet. <br> * * @throws ServletException if an error occurs */ public void init() throws ServletException { // Put your code here }}web.xml配置<filter> <filter-name>AdminFilter</filter-name> <filter-class>com.company.servlet.AdminFilter</filter-class> </filter> <filter-mapping> <filter-name>AdminFilter</filter-name> <url-pattern>/admin/pages/*</url-pattern> </filter-mapping> 关于web,xml的 <filiter>路径设置 我是不是写错了 如何使用JSP上传图片 关于标签的循环问题! strtus中的资源文件突然识别不到了 大家帮个忙啊,急,hibernate报错,在线等 关于JDBC连接SQL Server的2个问题 jsp程序最后打包的几个问题 Tomcat下的jsp工作目录名跟servlet名字能不能一样??? 大家看看这个网站,部分用了struts做的电子商务网站(预期)http://www.orienthome.com/ 谁能告诉我jrun studio开发jsp的配置过程? 初学JSTL,遇到问题 Hibernate正向生成数据库,外键重复定义
解决方法=》在JSP页面中加入一个 【用户。名字】的输出项。session中放入 用户。(不需要做权限验证了)在web.xml里 我以前用/*来设定过滤范围可以,但是现在/*不可以了,
解决方法=》利用后缀来分开各个FILTER。
也就是说内容页面都放在一个文件夹里。登陆页面就发在文件夹得外面。
你过滤时就过滤文件夹就可以了。如果它访问的路径是文件夹里的页面话就直接跳到登陆页面。这样的话就用过滤器。
代码如下:package com.company.servlet;import java.io.IOException;
import java.io.PrintWriter;import javax.servlet.Filter;
import javax.servlet.FilterChain;
import javax.servlet.FilterConfig;
import javax.servlet.ServletException;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;public class AdminFilter extends HttpServlet implements Filter { public void doFilter(ServletRequest arg0, ServletResponse arg1,
FilterChain arg2) throws IOException, ServletException {
// 未登陆用户禁止访问后台的任何页面
HttpServletRequest request = (HttpServletRequest) arg0;
Object user = request.getSession().getAttribute("usermodel");
if (null == user || "".equals(user)) {
// 直接到登陆截面
request.getRequestDispatcher("/admin/backlogin.jsp").forward(arg0, arg1);
} else {
arg2.doFilter(arg0, arg1);
} } public void init(FilterConfig arg0) throws ServletException {
// TODO Auto-generated method stub } /**
* Constructor of the object.
*/
public AdminFilter() {
super();
} /**
* Destruction of the servlet. <br>
*/
public void destroy() {
super.destroy(); // Just puts "destroy" string in log
// Put your code here
}
/**
* Initialization of the servlet. <br>
*
* @throws ServletException if an error occurs
*/
public void init() throws ServletException {
// Put your code here
}}
web.xml配置
<filter>
<filter-name>AdminFilter</filter-name>
<filter-class>com.company.servlet.AdminFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>AdminFilter</filter-name>
<url-pattern>/admin/pages/*</url-pattern>
</filter-mapping>