已有51人关注
Java Web自学视频教程 第14章文件上传与下载 示例14.3
发表在JavaWeb答疑区 2017-09-17
是否精华
版块置顶:

例子14.3运行后点击下载之后,出现无法找到该网页,在控制台显示

九月 17, 2017 9:54:05 上午 org.apache.coyote.http11.AbstractHttp11Processor process

信息: Error parsing HTTP request header

 Note: further occurrences of HTTP header parsing errors will be logged at DEBUG level.

java.lang.IllegalArgumentException: Invalid character found in the request target. The valid characters are defined in RFC 7230 and RFC 3986

用的是tomcat 9, JDK1.8.0_144

后来换成tomcat 7, JDK1.8.0_144

都出现这个故障

2017-09-17 09:55:20编辑
分享到:
精彩评论 2
无语_mrkj
学分:3155 LV11
2017-09-18
沙发

这是由于Tomcat升级后,对URL的参数进行了限制,所以我们需要对传递的参数进行编码。需要进行以下两处修改:

第一处:在index.jsp文件中把原来的下载超链接修改为:

 <a href="DownServlet?path=<%=java.net.URLEncoder.encode(getServletContext().getRealPath("新歌.mp3"),"utf-8") %>">

 下载</a>

第二处:把DownServlet.java文件中,把下面两行代码修改为:

String path=java.net.URLDecoder.decode(request.getParameter("path"),"utf-8"); //获取上传文件的路径

//path=new String(path.getBytes("iso-8859-1"),"UTF-8");

也就是把path=这一行删除,然后另一行中加一个解码的函数。


winter
学分:13 LV2
2017-09-19
板凳

可以了,谢谢!

首页上一页 1 下一页尾页 2 条记录 1/1页
手机同步功能介绍
友情提示:以下图书配套资源能够实现手机同步功能
明日微信公众号
明日之星 明日之星编程特训营
客服热线(每日9:00-17:00)
400 675 1066
mingrisoft@mingrisoft.com
吉林省明日科技有限公司Copyright ©2007-2022,mingrisoft.com, All Rights Reserved长春市北湖科技开发区盛北大街3333号长春北湖科技园项目一期A10号楼四、五层
吉ICP备10002740号-2吉公网安备22010202000132经营性网站备案信息 营业执照