关于过滤jsp内容的问题 我现在想做一个过滤jsp特定内容的过滤器,不知道怎么做这个过滤器,请有做过的说明一下如何去做,我现在特别想知道,如何得到jsp的响应内容,如何将修改后的响应内容发送出去,还望高手指点 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 是啊,我也是想用过滤器的;但是有两个基本问题尚待解决:1、如何得到jsp的响应内容,就是原始的内容;2、如何将修改后的响应内容发送出去,送到响应端。 import javax.servlet.*;import javax.servlet.http.HttpServletRequest;import java.io.IOException;import java.io.PrintWriter;public class CN_Filter implements Filter{ public void destroy() { } public void doFilter(ServletRequest req, ServletResponse resp, FilterChain chain) throws ServletException, IOException { //用过滤器设置编码后再传给相应的servlet req.setCharacterEncoding("GBK"); try { chain.doFilter(new RequestWrapper((HttpServletRequest) req), resp); }catch (Exception e) { PrintWriter out=resp.getWriter(); out.println("<script>history.back();</script>"); return; } } public void init(FilterConfig config) throws ServletException { }}2、这二个类,,在这个类里过滤import java.util.*;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletRequestWrapper;public class RequestWrapper extends HttpServletRequestWrapper { //Map realParameters = new HashMap(); public RequestWrapper(HttpServletRequest request) { super(request); } public String getParameter(String string){ String value= super.getParameter(string); if(value!=null&&value.indexOf("script")!=-1){ value=value.replaceAll("script","scri pt"); } return value; }}3、web.xml加上 <filter> <filter-name>CN_Filter</filter-name> <filter-class>CN_Filter</filter-class> </filter> <filter-mapping> <filter-name>CN_Filter</filter-name> <url-pattern>/*</url-pattern> </filter-mapping> 多谢,我这儿也找到一个,从more servlets and jsp中摘录的,public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws ServletException, IOException { CharArrayWrapper responseWrapper = new CharArrayWrapper((HttpServletResponse)response); // Invoke resource, accumulating output in the wrapper. chain.doFilter(request,responseWrapper); // Turn entire output into one big String. String responseString = responseWrapper.toString(); // In output, replace all occurrences of target string // with replacement string. responseString = FilterUtils.replace(responseString, getTargetString(), getReplacementString()); // Update the Content-Length header. updateHeaders(response, responseString); PrintWriter out = response.getWriter(); out.write(responseString);} action找不到呀,在线急等,求各位大神帮帮忙~~~ js中这样写对吗? session基本问题 spring下url传参中文乱码,怎么解决啊? 谁能给讲一下jsf控件中binding属性的用法 Math.round(3.180000005*100)/100出来的结果怎么是3.0?我想取小数点后面2位,怎么取? 一句JSP代码,我看不明白,请大家指教,在线等,急呀,马上给100分 怎样安装jdk rs执行sql??? 一个JavaBeans的设置问题? XML 的删除有问题~~~ 关于jsp数据库没有显示
1、如何得到jsp的响应内容,就是原始的内容;
2、如何将修改后的响应内容发送出去,送到响应端。
import javax.servlet.http.HttpServletRequest;
import java.io.IOException;
import java.io.PrintWriter;public class CN_Filter implements Filter
{
public void destroy()
{
} public void doFilter(ServletRequest req, ServletResponse resp, FilterChain chain) throws ServletException, IOException
{
//用过滤器设置编码后再传给相应的servlet
req.setCharacterEncoding("GBK");
try
{
chain.doFilter(new RequestWrapper((HttpServletRequest) req), resp);
}catch (Exception e)
{
PrintWriter out=resp.getWriter();
out.println("<script>history.back();</script>");
return;
}
} public void init(FilterConfig config) throws ServletException
{ }}2、这二个类,,在这个类里过滤import java.util.*;import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletRequestWrapper;public class RequestWrapper extends HttpServletRequestWrapper { //Map realParameters = new HashMap(); public RequestWrapper(HttpServletRequest request) {
super(request);
} public String getParameter(String string){
String value= super.getParameter(string);
if(value!=null&&value.indexOf("script")!=-1){
value=value.replaceAll("script","scri pt");
} return value;
}}3、web.xml加上 <filter>
<filter-name>CN_Filter</filter-name>
<filter-class>CN_Filter</filter-class>
</filter>
<filter-mapping>
<filter-name>CN_Filter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
ServletResponse response,
FilterChain chain)
throws ServletException, IOException {
CharArrayWrapper responseWrapper =
new CharArrayWrapper((HttpServletResponse)response);
// Invoke resource, accumulating output in the wrapper.
chain.doFilter(request,responseWrapper);
// Turn entire output into one big String.
String responseString = responseWrapper.toString();
// In output, replace all occurrences of target string
// with replacement string.
responseString =
FilterUtils.replace(responseString,
getTargetString(),
getReplacementString());
// Update the Content-Length header.
updateHeaders(response, responseString);
PrintWriter out = response.getWriter();
out.write(responseString);
}