过滤器的一个问题

过滤器的仅仅用于过滤从客户端发出的请求信心?能过滤从服务器发出去的信息吗?
如果不能,servlet链能实现这个吗?

我想做个功能:给所有的服务器处理后发回去的jsp头部加一个下拉的导航栏,但是不想在jsp中加一个include标签或者Scriptlets。

刚做程序员不久,眼界有限,希望得到指点,谢谢!

1、过滤器可以过滤服务器端的返回值,可以参考tomcat的一个compression的例子;
2、推荐使用tiles2,我有篇文章介绍:http://wap.iteye.com/blog/181067,看看对你有没有帮助。这个工具可以很好满足你的。

用过滤器实现你的需求的方案过程较复杂,需要做wrapper等工作。

1。过滤器可以"过滤"服务器端的返回值
2。你现在要做的东西应该是用sitemesh来实现

Filter 当然可以

[code="java"]public void doFilter(ServletRequest arg0, ServletResponse arg1,FilterChain filterChain)[/code]

第二个参数就是你要的.

总是慢了一点

首先response是完全可以过滤的,FilterChain按顺序执行,在doFilter方法里面可以调用方法chain.doFilter(request, response);来按顺序执行其他Filter,当所有Filter执行完,就会跑servlet,之后会反序的执行chain.doFilter(request, response)后的代码,这里你就可以用来处理response了。

[code="java"]
public void doFilter(ServletRequest request, ServletResponse response,
FilterChain chain) throws IOException, ServletException {
//处理Requst
chain.doFilter(request, response);
//处理Response
}
[/code]

至于你的功能,加一个导航栏,完全可以用sitemesh这种装饰器来做,这东西就是给你的页面加一些通用的东西的。这样会很清晰。