msn讨论也行[email protected]
希望能详细的说明
希望能详细的说明
解决方案 »
- Internal Error: File /WEB-INF/web.xml not found
- iframe的兼容性问题研究
- JSP日期判断
- 如何提高 文本编辑器tiny_mce 的加载速度?求解
- 求远程JDBC-ODBC访问SQL的代码
- jasperreport生成的excel报表无法加载图片
- 新手啊~~帮帮忙个位大哥!!!~~在线等~
- 两个日期型变量如何比较大小?
- MYsql 最新版的下载地址
- 如何将客户端上传的ACCESS数据库用ODBC连接,即动态ODBC,急盼!
- SERVLET放在WEB-INF/CLASSES吗?怎样调用它呀?
- Tomcat4.1.18 运行JSP指令和编译Servlet的问题?
很好用啊!!!!
我copy楼主的代码一下就运行成功了啊。
以下是filter输出的信息:Target URL -- http://192.168.1.152:8988/mydemo-Project1-context-root/test.jsp
03/12/17 11:05:17 Oracle Application Server Containers for J2EE 10g (9.0.4.0.0) initialized
03/12/17 11:05:18 现在的编码设置为:GB231203/12/17 11:05:18 准备压缩ae=gzip, deflate03/12/17 11:05:18 GZIP supported, compressing.03/12/17 11:05:18 GZIPResponseWrapper的构造函数03/12/17 11:05:18 类GZIPResponseWrapper的ServletOutputStream getOutputStream()方法03/12/17 11:05:18 类GZIPResponseWrapper中ServletOutputStream createOutputStream()方法03/12/17 11:05:18 类 GZIPResponseStream的构造函数03/12/17 11:05:18 类 GZIPResponseStream的write(b,off,len)函数03/12/17 11:05:18 writing...03/12/17 11:05:18 doFilter做完了03/12/17 11:05:18 类GZIPResponseWrapper的finishResponse方法03/12/17 11:05:18 类 GZIPResponseStream的close()函数楼主恐怕是没有设置好web.xml吧???这是我的web.xml里的设置:
(http://www.onjava.com/pub/a/onjava/2003/11/19/filters.html?page=2
里面有讲解的):
<filter>
<filter-name>testfilter</filter-name>
<filter-class>com.mytest.testfilter</filter-class>
<init-param>
<param-name>encoding</param-name>
<param-value>GB2312</param-value>
</init-param>
</filter>
<filter>
<filter-name>Compress</filter-name>
<filter-class>com.jspbook.GZIPFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>testfilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
<filter-mapping>
<filter-name>Compress</filter-name>
<url-pattern>*.jsp</url-pattern>
</filter-mapping>
<filter-mapping>
<filter-name>Compress</filter-name>
<url-pattern>*.html</url-pattern>
</filter-mapping>
把你的testfilter贴出来看看啊.是解决编码问题的吧
你到我上面贴的那个网址看看吧,我也讲不明白啊.上面讲的挺多的.看懂了告诉我阿,呵呵!!
to xmnkl(丫头) :我的testfilter是抄tomcat,并由jdeveloper自动生成的:package com.mytest;
import javax.servlet.ServletResponse;
import javax.servlet.Filter;
import javax.servlet.ServletException;
import javax.servlet.FilterConfig;
import javax.servlet.ServletRequest;
import javax.servlet.FilterChain;
import java.io.IOException;
import javax.servlet.http.HttpServletRequest;public class testfilter implements Filter
{
private FilterConfig _filterConfig = null; public void init(FilterConfig filterConfig) throws ServletException
{
_filterConfig = filterConfig;
} public void destroy()
{
_filterConfig = null;
} public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException
{
request.setCharacterEncoding(_filterConfig.getInitParameter("encoding"));
System.out.println("现在的编码设置为:"+_filterConfig.getInitParameter("encoding"));
chain.doFilter(request, response); }
}
谢谢啊
就好好比多了一个物理层。
每个符合你要求的访问都会首先进过这一层。
<filter>
<filter-name>Compress</filter-name>
<filter-class>com.jspbook.GZIPFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>testfilter</filter-name>
<url-pattern>/*</url-pattern> <!--这里可以是*.jsp,甚至是*.jpg-->
</filter-mapping>
你的这个处理其实也没有什么只是把传输的流做了一次压缩而已。
减少网络传输这个瓶颈。
at com.jspbook.GZIPResponseWrapper.getWriter(GZIPResponseWrapper.java:70)
at org.apache.jasper.runtime.JspWriterImpl.initOut(JspWriterImpl.java:166)
at org.apache.jasper.runtime.JspWriterImpl.flushBuffer(JspWriterImpl.java:158)
at org.apache.jasper.runtime.JspWriterImpl.flush(JspWriterImpl.java:205)
at org.apache.jasper.runtime.PageContextImpl.release(PageContextImpl.java:177)
at org.apache.jasper.runtime.JspFactoryImpl.internalReleasePageContext(JspFactoryImpl.java:198)
at org.apache.jasper.runtime.JspFactoryImpl.releasePageContext(JspFactoryImpl.java:193)
at org.apache.jsp.download$jsp._jspService(download$jsp.java:114)
at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:107)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
at org.apache.jasper.servlet.JspServlet$JspServletWrapper.service(JspServlet.java:201)
at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:381)
at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:473)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:247)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:193)
at com.goldencity.oa.util.SetCharacterEncodingFilter.doFilter(SetCharacterEncodingFilter.java:25)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:213)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:193)
at com.jspbook.GZIPFilter.doFilter(GZIPFilter.java:28)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:213)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:193)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:243)
at org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:566)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:472)
at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:943)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:190)
at org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:566)
at org.apache.catalina.valves.CertificatesValve.invoke(CertificatesValve.java:246)
at org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:564)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:472)
at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:943)
at org.apache.catalina.core.StandardContext.invoke(StandardContext.java:2347)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:180)
at org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:566)
at org.apache.catalina.valves.ErrorDispatcherValve.invoke(ErrorDispatcherValve.java:170)
at org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:564)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:170)
at org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:564)
at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:468)
at org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:564)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:472)
at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:943)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:174)
at org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:566)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:472)
at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:943)
at org.apache.catalina.connector.http.HttpProcessor.process(HttpProcessor.java:1027)
at org.apache.catalina.connector.http.HttpProcessor.run(HttpProcessor.java:1125)
at java.lang.Thread.run(Thread.java:534)--------------------------------------------------------------------------------
getOutputStream() has already been called!
<a href="<%=request.getContextPath()%>/download.jsp?dir=askreport&file=<bean:write name="AskReport" property="attachment"/>"><img border="0" src="<%=request.getContextPath()%>/communication/maintenance/askreport/image/down.gif" ></a>
传了dir和file作为参数给download.jsp.在download.jsp文件中处理下载的的代码如下:<%try{String file=request.getParameter("file");
String dir=request.getParameter("dir");
mySmartUpload.initialize(pageContext);
mySmartUpload.setContentDisposition("attachment;"); String tempdir="/WEB-INF/upload/"+dir+"/"+file;
mySmartUpload.downloadFile(tempdir);
}catch(Exception e){
out.println("<font color=red >找不到该文件</font>");
}
%>