java web项目里面的加了过滤器,在自己电脑上面测试项目的时候就打不开网页了,怎么回事???

java web项目里面的加了过滤器,在自己电脑上面测试项目的时候就打不开网页了,怎么回事???我给所有网页都加了这个过滤器,验证用户身份,如果没有登录就跳到登录页面,登录页面有一个注册按钮,点击也可以直接注册,但是加了过滤器直接连网页都打不开了,而且在过滤器里面加入System.语句会被重复的执行,怎么解决啊;下面是代码:

过滤器部分:
package org.util.Filter;

import java.io.IOException;

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.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;

import org.user.bean.Users;

public class MyFilter implements Filter {

public void init(FilterConfig filterConfig) throws ServletException {

}

public void doFilter(ServletRequest request,ServletResponse response,
FilterChain chain)throws IOException,ServletException{
System.out.println("1111");
System.out.println("1111");
HttpServletRequest req=(HttpServletRequest)request;
HttpServletResponse res=(HttpServletResponse)response;

HttpSession session =req.getSession();

Users user =(Users)session.getAttribute("user");
System.out.println("2222");
System.out.println("2222");
if(req.getRequestURI().equals(req.getContextPath()+"/login.jsp")){
System.out.println("4444");
System.out.println(req.getContextPath()+"/login.jsp");
res.sendRedirect(req.getContextPath()+"/login.jsp");
}else if(req.getRequestURI().equals(req.getContextPath()+"/register.jsp")){
System.out.println("5555");
res.sendRedirect(req.getContextPath()+"/register.jsp");
}else if(session!=null&&user!=null){
chain.doFilter(request,response);
System.out.println("3333");
}
System.out.println("121212");

}

public void destroy(){
}

}

web里面过滤器的配置:
<filter>
<filter-name>MyFilter</filter-name>
<filter-class>org.util.Filter.MyFilter</filter-class>
</filter>

<filter-mapping>
<filter-name>MyFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
项目首先进入的配置:
<welcome-file-list>
<welcome-file>/login.jsp</welcome-file>
</welcome-file-list>

到底是哪里出了问题???

这是我自己写过的一个登陆过滤器

public void doFilter(ServletRequest req, ServletResponse res,
FilterChain chain) throws IOException, ServletException {

System.out.println("=============LoginFilter============");

//将父类转成子类
HttpServletRequest request=(HttpServletRequest) req;

//javaweb_T7/LoginServlet
String uri=request.getRequestURI();

//控制登录的
HttpSession session=request.getSession();
String userName=(String) session.getAttribute("userName");
//如果没有登录就跳转

//要么你session中有东西(已经登录) ,要么你是登录的动作
if(userName!=null || uri.indexOf("LoginServlet")!=-1){
//如果登录过,就不阻拦
chain.doFilter(req, res);
}else{
request.setAttribute("msg", "请先登录后操作");
request.getRequestDispatcher("login.jsp")
.forward(request, res);
}
}来自:求助得到的回答
温馨提示:内容为网友见解,仅供参考
第1个回答  2012-12-22
印象中需要在res.sendRedirect()方法后面加上return; 不知道是否正确,尝试一下吧。

javaweb前端用什么写?
二、熟悉基于JSP和Servlet的JavaWeb开发,对Servlet和JSP的工作原理和生命周期有深入了解,熟练的使用JSTL和EL编写无脚本动态页面,有使用监听器、过滤器等Web组件以及MVC架构模式进行JavaWeb项目开发的经验。 三、对Spring的IoC容器和AOP原理有深入了解,熟练的运用Spring框架管理各种Web组件及其依赖关系,熟练的使用Spring进行...

做好的jsp网页怎么测试呢??
启动Tomcat后,打开浏览器,在地址栏中输入http:\/\/localhost:8080(Tomcat默认端口为8080),如果在浏览器中看到Tomcat的欢迎界面,表示Tomcat工作正常。6、测试项目 把刚才准备好的test.jsp放在f:\\Tomcat\\webapps\\examples\\jsp目录下, 在地址栏中输入http:\/\/localhost:8080\/examples\/jsp\/test.jsp,如果浏...

java学习路线
Java学习路线一般有以下几个阶段:第一阶段,JavaSE基础:Java环境搭建、Java流程控制语句-for循环、switch选择判断、循环嵌套、数组拷贝等。第二阶段,JavaWeb:MySQL安装、管理、创建数据库、MySQLUPDATE查询、Mysql高级操作等。第三阶段,Java高级框架-SSH:Struts2异常处理、Struts2+Log4j集成、Struts2和JSO...

课程开发的三个阶段
Hive Shell编程(建表、查询语句、分区与分桶、索引管理和视图)、Hive高级应用(DISTINCT实现、groupby、join、sql转化原理、java编程、配置和优化)、hbase入门、Hbase SHELL编程(DDL、DML、Java操作建表、查询、压缩、过滤器)、细说Hbase模块(REGION、HREGION SERVER、HMASTER、ZOOKEEPER简介、ZOOKEEPER配置、Hbase与Zook...

java软件开发需要学什么(java软件开发需要掌握的知识)
JavaWeb编程,包括JSP、Servlet,JavaBean;Java应用编程,包括Weblogic、Websphere、Tomcat;以及利用Jbuilder开发Java程序;\\x0d\\x0aMVC与Struts,学习业界通用的MVC设计模式和Struts架构;\\x0d\\x0aJavaB\/S商务项目开发,4~5人一个项目组,项目大小为(25人*工作日左右)\\x0d\\x0a高级部分\\x0d\\x0aJ2ME程序设计,包括...

有没有大佬整理了完整的java完整的知识体系?
15. **Servlet与Web框架**:深入理解Servlet与Tomcat的使用,掌握HTTP请求与响应、Cookie、Session管理,以及JSP、EL、JSTL、过滤器等技术。16. **Web异步开发**:学习jQuery、Ajax与JSON技术,实现高效、响应式的Web交互。17. **Redis**:了解Redis作为NoSQL数据库的特性、数据类型与常用命令,提升数据...

Java培训的主要内容是什么?
5. Web开发技术:学习JavaWeb开发的基本知识,包括Servlet、JSP、MVC框架(如Spring、SpringMVC)等。通过

自学java怎么系统的规划学习路线
三、开发框架当你学会以上内容以后,这个时候你还不足以参加工作,你还需要继续深造。公司里为了提高开发的效率,会使用一些Java Web框架,因此你还需要学习一些开发框架。目前比较主流的是SSM框架,即spring、springmvc、mybatis。你需要学会这三个框架的搭建,并用它们做出一个简单的增删改查的Web项目。你...

你怎么在电脑上编程,而不用任何软件?
第一:“计算机科学中没有一个问题是不能通过添加另一层抽象来解决的!”这句话完全正确吗?当然不。这在现象学上是正确的吗?实际上,的确是。这是否意味着抽象是解决任何问题的正确途径?不,不是。它是一个公案,可以启发思想。 还有我历来最喜欢的:“第一优化定律:不要这样做。第二优化定律(对专家而言):不要...

学java最重要的是学java的什么内容
2、掌握Java Web开发技术:Java开发中使用到的Web前端技术,HTML5+CSS3,JavaScript操作BOM和DOM,JQuery的选择器、事件处理、动画效果,MySQL数据库技术,JDBC技术、JSP、Servlet、EL和JSTL、过滤器和监听器、AJax异步请求等,Linux技术、SVN、Linux环境下项目发布部署等。 3、掌握使用流行框架SSM\\SSH技...

相似回答