比如:url:http://loaclhost:8080/test/我的测试/t.jpg
在浏览器地址栏内出现的是上面的url.但TOMCAT却报出
test/%E6%88%91%E7%9A%84%E6%B5%8B%E8%AF%95/t.jpg 找不到文件的错误。我如何才能让图片显示?
在浏览器地址栏内出现的是上面的url.但TOMCAT却报出
test/%E6%88%91%E7%9A%84%E6%B5%8B%E8%AF%95/t.jpg 找不到文件的错误。我如何才能让图片显示?
解决方案 »
- 求教高手JSP中引用CSS样式问题!!!
- Aptana Studio汉化
- hibernate一对一更新异常
- 我的hibernate外键一对一,同时保存时,不是两个都是insert,而是一个insert,一个update,我想两个都insert,如何解决呀
- 用JAVA算的日期
- web服务怎么访问服务器本地磁盘路径?
- 小妹求问各位大哥大姐关于applet怎样访问数据库的问题?
- jdbc中一个奇怪问题 菜鸟级问题 在线等
- 急急急!!!mybatis问题
- JDBC不能正确连上MS SQL Server2000?能帮解快者比高分................
- 关于SSH,多条件查询问题,在线等答案
- 如何得到本地svn版本号
方法二:在tomcat目录下conf文件夹里面修改server.xml文件,加入URIEncoding="gbk",这个GBK是你需要统一的编码,如果你页面是GBK的就用GBK,如果是UTF-8的 就用 UTF-8.
比如
function displayJsp()
{
……
var url="<%=request.getContextPath()%>/scheduler/params.jsp?path="+path+"&name="+encodeURI(tempStr) +"&physicalName="+encodeURI(physicalName);
rtnValue=window.showModalDialog(url,'_blank','dialogWidth:550px; dialogHeight:350px; center:Yes; resizable: Yes; help: No;');
……
}
其中url里的"&name="+encodeURI(tempStr) +"&physicalName="+encodeURI(physicalName),因为physicalName和tempStr是中文,所以加了encodeURI,你可以试试看行不行
1
方法一:在Url中不使用中文
方法二:在tomcat目录下conf文件夹里面修改server.xml文件,加入URIEncoding="gbk",这个GBK是你需要统一的编 码,如果你页面是GBK的就用GBK,如果是UTF-8的 就用 UTF-8.
2 URIEncoding="GB2312"用的是post 提交3 如果是get提交用,转码,4 也可以自己写一个过滤器
如果用了中文,最好是有utf-8,再像3楼样设置下
var pars = encodeURI("这里是你需要的url");
<filter-name>UrlEncodingFilter</filter-name>
<filter-class>com.bao.filter.UrlEncodingFilter</filter-class>
<init-param>
<param-name>url.default.encoding</param-name>
<param-value>utf-8</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>UrlEncodingFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>过滤器的内容为:
package com.bao.filter;import java.io.IOException;
import java.net.URLDecoder;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;public class UrlEncodingFilter implements Filter { private String defaultEncoding = null;
public void init(FilterConfig config) throws ServletException {
defaultEncoding = config.getInitParameter("url.default.encoding");
if(defaultEncoding == null) {
defaultEncoding = "utf-8";
}
} public void doFilter(ServletRequest req, ServletResponse res,
FilterChain chain) throws IOException, ServletException {
HttpServletRequest request = (HttpServletRequest)req;
String path = request.getRequestURI();
path = URLDecoder.decode(path, defaultEncoding);
if(!hasChineseChar(path)) {
chain.doFilter(req, res);
return;
}
String context = request.getContextPath();
path = path.substring(context.length());
request.getRequestDispatcher(path).forward(req, res);
}
private boolean hasChineseChar(String uri) {
char[] chs = uri.toCharArray();
for(int i = 0; i < chs.length; i++) {
if(chs[i] >= '\u4e00' && chs[i] <= '\u9faf') {
return true;
}
}
return false;
} public void destroy() {
defaultEncoding = null;
}
}
<filter>
<filter-name>UrlEncodingFilter</filter-name>
<filter-class>com.bao.filter.UrlEncodingFilter</filter-class>
<init-param>
<param-name>url.default.encoding</param-name>
<param-value>utf-8</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>UrlEncodingFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>