JS encodeURI与Java URLDecoder.decode配合实现URL参数加密

作者:巡夜人时间:2026-10-28 10:16:05浏览:160

本文介绍如何通过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)


作者最新文章