window.location.herf=url参数有中文,到后台乱码问题解决

简介: js中的代码:   /*将中文的参数进行两次编码 */   function queryByName(){                    //获取查询条件的用户名                    var queryName=$("#queryName").

js中的代码:

  /*将中文的参数进行两次编码 */

  function queryByName(){
                    //获取查询条件的用户名
                    var queryName=$("#queryName").val();//尚晓飞当当
                    alert(queryName);
                    //进行后台跳转
                    window.location.href="<%=request.getContextPath() %>/master/sysUser_queryByName.action?queryName="+encodeURI(encodeURI(queryName));
                    
                }

 

java后台的代码:

 

  public String queryByName() throws UnsupportedEncodingException{
        
        System.out.println("SysUserAction.queryByName()"+queryName);
        //这里用struts2中设定queryName属性接收前台传来的参数,然后将该接收参数,进行解码
        String name = java.net.URLDecoder.decode(queryName,"UTF-8");//需要抛异常
        System.out.println("SysUserAction.queryByName()"+name);
        this.list=sysUserService.querySysUserByName(name);
        
        return "userList";
    }

 

 

控制台打印结果:

SysUserAction.queryByName()%E5%B0%9A%E6%99%93%E9%A3%9E%E5%BD%93%E5%BD%93
SysUserAction.queryByName()尚晓飞当当

 

 

原因:后来网搜资料,发现原来在对后台java程序里的queryName赋值的时候,本身已经使用了一次解码,不过解码的结果依然不对。所以我们可以在页面 上进行两次编码操作,这样后台自动的那次就可以抵消掉一次,然后在使用 searchtext=java.net.URLDecoder.decode(queryName,"UTF-8");/*需要处理异常*/进行一次 解码就好了

 

 

 

相关文章
uView queryParams 对象转URL参数
uView queryParams 对象转URL参数
324 0
|
JavaScript
vue截取URL中的参数
vue截取URL中的参数
300 0
|
前端开发
[牛客网-前端大挑战QD2] 获取url参数
[牛客网-前端大挑战QD2] 获取url参数
185 0
|
前端开发 JavaScript
使用 JavaScript 获取 URL 参数的详细指南
【2月更文挑战第26天】
16514 2
使用 JavaScript 获取 URL 参数的详细指南
|
前端开发 JavaScript
前端JS截取url上的参数
文章介绍了两种前端JS获取URL参数的方法:手动截取封装和使用URLSearchParams。
711 0
|
开发框架 前端开发 .NET
Asp.net Webapi 的 Post 方法不能把参数加到 URL 中?试试这样写
Asp.net Webapi 的 Post 方法不能把参数加到 URL 中?试试这样写
414 0
|
Java
JAVA 获取 URL 指定参数的值
JAVA 获取 URL 指定参数的值
324 0
|
存储 JavaScript 前端开发
js原生方法,获取url上面所有参数,并返回一个对象
JavaScript函数`getUrlParameters`用于从URL中提取所有参数并返回一个键值对对象。它接收URL,分割查询字符串,解码参数对,并存储在对象中。重复参数键会被存储为数组。
|
JavaScript
js如何实现修改URL参数并不刷新页面
js如何实现修改URL参数并不刷新页面
|
安全 Java 应用服务中间件
当遇到非法 URL 参数时,如何保障网页正常打开
访问如`http://example.com?a@b=1`的链接出现400 Bad Request错误,这是因为Tomcat不允许请求目标中含有非法字符。Spring Boot 2可通过配置`server.tomcat.relaxed-query-chars`来允许特殊字符,但这样做可能引入安全风险。因此,建议在Nginx层使用`rewrite_by_lua_block`和`ngx.redirect`进行重定向,将非法字符替换为合法形式,如`http://example.com?ab=1`,同时记录日志以监控。此方案能避免直接修改后端代码,提高安全性。
1124 0

热门文章

最新文章