JS encodeURI与Java URLDecoder.decode配合实现URL参数加密
本文介绍如何通过JavaScript的encodeURI函数与Java的URLDecoder.decode方法配合,实现URL中明文数据的加密传输。重点讲解前端需调用两次encodeURI进行双重编码,后端使用UTF-8字符集进行解码,并强调前后端编码格式必须保持一致以避免乱码问题。
URL参数加密传输方案
当需要隐藏URL中的敏感明文信息时,例如访问地址为http://localhost:8080/template_1/login.action?user=张三的情况
可以结合使用JavaScript的encodeURI函数与Java的URLDecoder.decode方法,对URL参数进行加密处理
前端双重编码实现
首先在前端页面中获取待传输的数据,通过调用两次encodeURI函数进行双重编码,例如:var val = encodeURI(encodeURI("要传到服务器端的是值"));
将编码后的变量val拼接至链接中,如:href="<%=basePath%>recordManager/test_js_decodeURI.action?params="+val
后端解码处理代码
接下来在服务器端接收并处理该参数
具体实现代码如下
HttpServletRequest request = ServletActionContext.getRequest();
String vString = request.getParameter("params");
System.out.println("转换前:"+vString);
String deString = URLDecoder.decode(vString, "UTF-8");
System.out.println("转换后:"+deString); 编码一致性注意事项
解码时指定的字符集编码必须与前端页面保持一致,例如若JSP页面设置pageEncoding="UTF-8",则此处解码也需使用UTF-8
可通过浏览器右键查看编码设置来确认,若JSP页面pageEncoding="UTF-8",浏览器编码通常显示为Unicode(UTF-8);若JSP页面pageEncoding="GBK",浏览器编码则显示为简体中文(gb2312)
怎么使用 JavaScript import() 实现模块的条件加载
2026-11-05 14:44:45
前端防御XSS攻击:怎么防止恶意JS注入与CSP策略配置
2026-11-04 08:51:38
怎么解决 Turf.js 处理大规模 GeoJSON 数据的性能瓶颈
2026-11-03 23:22:19
为什么不建议在JS中手动拼接JSON字符串?
2026-11-03 22:48:27
代码混淆对JS执行性能的影响测试与分析
2026-11-03 22:25:37
