【已解决】URL里有#号,传参到Servlet时,url编辑器会自动删掉#号之后的所有字符串问题

来源:互联网 发布:java编写管理系统 编辑:程序博客网 时间:2024/06/10 02:58

以下为解决问题的步骤:

1.jsp页面如果是<a>标签,那么弃用href属性,改为onclick属性 (p.s 我的jsp页面的编码格式为UTF-8)

<a href="#" onclick="downloadAttach('<%=basePath%>/servlet/AttachmentDownServletUp.cgi?',
   'path=<s:property value="path"/>&filename=<s:property value="name"/>')">
   访问的URL
</a>

2.js方法里使用encodeURIComponent,这样url编译器不会把#后面的字符串去掉了
function downloadAttach(path,param) {
    window.location.href = path +
encodeURIComponent(param);
}

3.java代码中用一下方法获取参数
String params = URLDecoder.decode(request.getQueryString(), "UTF-8");
if(params!=null && !"".equals(params)) {
    relativePath = params.substring(params.indexOf("path="), params.indexOf("&")).replace("path=", "");
    name = params.substring(params.indexOf("filename=")).replace("filename=", "");

}

问题解决

0 0
原创粉丝点击