web filter过滤器不起作用,帮忙看看

等待逆袭 2013-10-10 05:45:08
我做了一个简单的web demo,写了个过滤器,但就是不生效,tomcat6,启动的时候都不进断点,不知道是不是自己配置错了,大家帮分析一下。启动也不报错

---------web.xml配置
<?xml version="1.0" encoding="UTF-8"?>
<web-app version="2.5"
xmlns="http://java.sun.com/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">

<filter>
<filter-name>aa</filter-name>
<filter-class>cn.util.AutoSetUserAdapterFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>aa</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>


<welcome-file-list>
<welcome-file>index.jsp</welcome-file>
</welcome-file-list>

</web-app>


-----AutoSetUserAdapterFilter
package cn.util;

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 org.jasig.cas.client.validation.Assertion;


/**
* CAS单点登陆的过滤器功能类,该类用来自动生成子应用的登陆Session
*
*/
public class AutoSetUserAdapterFilter implements Filter {

/**
* Default constructor.
*/
public AutoSetUserAdapterFilter() {
}

/**
* @see Filter#destroy()
*/
public void destroy() {
}

public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException,
ServletException {
HttpServletRequest httpRequest = (HttpServletRequest) request;

// _const_cas_assertion_是CAS中存放登录用户名的session标志
Object object = httpRequest.getSession().getAttribute("_const_cas_assertion_");
System.out.println("-------------"+object);
if (object != null) {
Assertion assertion = (Assertion) object;
String loginName = assertion.getPrincipal().getName();
System.out.println("-------------"+object);

// 第一次登录系统


}
chain.doFilter(request, response);
}

/**
* @see Filter#init(FilterConfig)
*/
public void init(FilterConfig fConfig) throws ServletException {
System.out.println("--------初始化AutoSetUserAdapterFilter-----");
}

}

...全文
1510 8 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
等待逆袭 2013-10-11
  • 打赏
  • 举报
回复
问题解决了,可能是鼠标拖动的原因,web.xml的位置不对,拖到了web-info的外面。谢谢各位
等待逆袭 2013-10-11
  • 打赏
  • 举报
回复
引用 6 楼 bill0605030109 的回复:
<url-pattern>/*</url-pattern> 改为<url-pattern>*</url-pattern> 试试。。
这个我自己也试过了,效果是一样的
  • 打赏
  • 举报
回复
<url-pattern>/*</url-pattern> 改为<url-pattern>*</url-pattern> 试试。。
  • 打赏
  • 举报
回复
去掉你的构造器
等待逆袭 2013-10-10
  • 打赏
  • 举报
回复
引用 2 楼 bill0605030109 的回复:
确实。。启动的时候貌似不进,不过访问一下项目的任何页面应该会进。。 启动的时候想进的话,貌似只能用ServletContextListener或HttpSessionListener,然后在web.xml的<listener>里配置。
我直接访问jsp页面他也没走,我doFilter中我有打印【System.out.println("-------------"+object);】 也没有打印,断点也没走,不知道tomcat配置有问题,还是代码哪里有问题。项目也可以正常访问,悲剧中....
等待逆袭 2013-10-10
  • 打赏
  • 举报
回复
引用 1 楼 ghsau 的回复:
过滤器服务器启动的时候不会走吧
但是我访问jsp的时候他也不走啊,就比较奇怪了
  • 打赏
  • 举报
回复
确实。。启动的时候貌似不进,不过访问一下项目的任何页面应该会进。。 启动的时候想进的话,貌似只能用ServletContextListener或HttpSessionListener,然后在web.xml的<listener>里配置。
  • 打赏
  • 举报
回复
过滤器服务器启动的时候不会走吧

81,122

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧