Java 接管JspWriter
提前感谢大家- 我还没有找到一种简单的方法来实现这一点,但是,有没有可能接管写入JspWriter的数据(头和所有内容)的处理?有点像动态管理缓冲区,然后控制JspWriter的输出?我遇到了重定向问题,因为我的一些include(我认为是include,但不管它是否会刷新缓冲区),状态头已经被刷新了 我知道设置缓冲区大小等 我没有使用框架,只是在tomcat上使用纯jsp 谢谢 Sam您可以尝试编写一个Java 接管JspWriter,java,jsp,tomcat,Java,Jsp,Tomcat,提前感谢大家- 我还没有找到一种简单的方法来实现这一点,但是,有没有可能接管写入JspWriter的数据(头和所有内容)的处理?有点像动态管理缓冲区,然后控制JspWriter的输出?我遇到了重定向问题,因为我的一些include(我认为是include,但不管它是否会刷新缓冲区),状态头已经被刷新了 我知道设置缓冲区大小等 我没有使用框架,只是在tomcat上使用纯jsp 谢谢 Sam您可以尝试编写一个 (excerpt from web.xml) <filter> <f
(excerpt from web.xml)
<filter>
<filter-name>jspFilter</filter-name>
<filter-class>com.mypackage.JspFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>jspFilter</filter-name>
<url-pattern>*.jsp</url-pattern>
</filter-mapping>
(摘自web.xml)
jspFilter
com.mypackage.JspFilter
jspFilter
*.jsp
在doFilter()
方法实现中,可以通过扩展和重写用于缓冲响应的getWriter()
/getOutputStream()
方法,将servlet响应包装到自己的响应中。调用doFilter()
方法并返回(或引发异常)后,您可以对缓冲响应执行任何操作-打印它,重定向到另一个页面,您可以做什么。您可以尝试编写一个
(excerpt from web.xml)
<filter>
<filter-name>jspFilter</filter-name>
<filter-class>com.mypackage.JspFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>jspFilter</filter-name>
<url-pattern>*.jsp</url-pattern>
</filter-mapping>
(摘自web.xml)
jspFilter
com.mypackage.JspFilter
jspFilter
*.jsp
在
doFilter()
方法实现中,可以通过扩展和重写用于缓冲响应的getWriter()
/getOutputStream()
方法,将servlet响应包装到自己的响应中。调用doFilter()
方法并返回(或引发异常)后,您可以对缓冲响应执行任何操作-打印它,重定向到另一页,您做了什么。再次感谢您的响应-我找到了此代码,我想这和你所说的差不多:我能在jsp(ie)的上下文中做这个重写吗?例如:jspFilter jspFilter.jsp jspFilter*.jsp还有,doFilter()实际上是什么时候被调用的,它实际被放在哪里?谢谢,SamYes,BufferedHttpResponseWrapper
在上面的链接中实现了我所说的。我不确定您所说的“在jsp上下文中重写”是什么意思,您想将过滤器实现为jsp吗?这是不可能的,它必须是一个java类。在您的链接中显示了一个示例(MyFilter
),您也可以在这里查看:编译的过滤器类必须作为web应用程序的一部分部署(您可以将其放入/web-INF/classes),servlet容器(Tomcat)将自动调用doFilter()方法。不客气,祝您的项目好运。出于纯粹的好奇-你发布的链接,是随机的谷歌搜索结果还是你来自乌克兰?再次感谢你的回复-我找到了这段代码,我想这段代码和你所说的差不多:我能在jsp(ie)的上下文中做这个覆盖吗?例如:jspFilter jspFilter.jsp jspFilter*.jsp还有,doFilter()实际上是什么时候被调用的,它实际被放在哪里?谢谢,SamYes,BufferedHttpResponseWrapper
在上面的链接中实现了我所说的。我不确定您所说的“在jsp上下文中重写”是什么意思,您想将过滤器实现为jsp吗?这是不可能的,它必须是一个java类。在您的链接中显示了一个示例(MyFilter
),您也可以在这里查看:编译的过滤器类必须作为web应用程序的一部分部署(您可以将其放入/web-INF/classes),servlet容器(Tomcat)将自动调用doFilter()方法。不客气,祝您的项目好运。纯粹出于好奇——你发布的链接,是谷歌随机搜索的结果,还是你来自乌克兰?