java URLEncoder 编码与解码

最近在开发中,遇到附件下载功能前端传递的url地址 浏览器自动将特殊字符 隐藏 替换成空格,导致 后台找不到 文件;现将解析方法 总结:

前端 使用   js  

 window.self.location="list.jsp?searchtext="+encodeURIComponent(seartext);

后台可以用

        解密

 searchtext=java.net.URLDecoder.decode(searchtext,"UTF-8");

经测试发现,前端使用 encodeURIComponent 加密时,后台不用 再次解密,因为 java 已经 将 前端 encodeURIComponent 加密的值  自动解密了;

没加密之前后台接收的参数:

 C:\workspace\oaAllNew\oaWatermark\uploadFile\water\2022\1008\20221008161512009\致远 A8 协同管理软件 V71SP1 用户操作手册(企业版) .pdf

加密后之后 后台接收参数:

 C:\workspace\oaAllNew\oaWatermark\uploadFile\water\2022\1008\20221008160721982\致远 A8+ 协同管理软件 V71SP1 用户操作手册(企业版) .pdf

        加密

                String fileName=URLEncoder.encode(name,"utf-8");

1、建议 做文件上传下载时,最好 上传时 把文件名进行加密,然后前端获取文件名进行解密;前端传递 参数时,最好 将 文件件 加密后传递,因为浏览器会自动过滤特殊符号。

2、如果不加密,可以 让后台 使用UUID生成一个新的文件名。

你可能感兴趣的:(JAVA,java,servlet,前端)