在做搜索功能时,需要输入关键字,如果搜索出来的结果很多,又需要分页。这里用URL重写技术(即href="?keyword=关键字&page=分页数"),就涉及到了传递中文关键字的问题。

我也是在网上找了很多,才找到了一个合适的办法。

在前台JSP页面中,这里就需要给超链接编码,其实也可以说只是给中文参数编码,不过我是对整个超链接编码。编码要进行两次,使用Javascript自带的encodeURI()方法。所以就是用javascript来操作,代码如下:

 <script>
$(function(){ //这里用的JQuery语法
$("a.class1").each(function(i){ // 对所有类名是class1的<a>标签依次进行下面的操作
var url = $(this).attr("href"); // 获取这个<a>标签的href值,就是url啦
url = encodeURI(url); // 进行第一次编码
url = encodeURI(url); // 进行第二次编码
$(this).attr("href", url); // 将编码后的url,设置为这个<a>标签的href值。这样,这个<a>标签的href,即url就是经过了两次编码的
});
});
</script>

前台的URL经过两次编码后,用户再点击这个<a>标签的时候,传递到浏览器的值就能正常显示中文了。

这个URL通常会再调用Servlet中的方法,所以在后台Servlet中还需要进行解码,代码很简单,如下所示:

 String keyword = request.getParameter("keyword"); // 获取关键字keyword,只有关键字是中文,分页数是数字,不受这个问题影响
try{
keyword = java.net.URLDecoder.decode(keyword, "utf-8"); // 进行解码
}catch(Exception e){
e.printStackTrace();
}
.... // 后面就是正常使用这个keyword关键字了,比如执行sql查询,正常使用即可。

URL重写中的中文参数问题的更多相关文章

  1. URL地址中使用中文作为的参数【转】

    原文:http://blog.csdn.net/blueheart20/article/details/43766713 引言: 在Restful类的服务设计中,经常会碰到需要在URL地址中使用中文作 ...

  2. js的url中传递中文参数乱码,如何获取url中参数问题

    一:Js的Url中传递中文参数乱码问题,重点:encodeURI编码,decodeURI解码: 1.传参页面Javascript代码: <script type=”text/javascript ...

  3. Js的Url中传递中文参数乱码的解决

    一:Js的Url中传递中文参数乱码问题,重点:encodeURI编码,decodeURI解码: 1.传参页面Javascript代码: 2. 接收参数页面:test02.html 二:如何获取Url& ...

  4. js获取url中的中文参数出现乱码

    解决方法 function getQueryString(key){ var reg = new RegExp("(^|&)"+key+"=([^&]*) ...

  5. get请求url中带有中文参数出现乱码情况

    在项目中经常会遇到中文传参数,在后台接收到乱码问题.那么在遇到这种情况下我们应该怎么进行处理让我们传到后台接收到的参数不是乱码是我们想要接收的到的,下面就是我的一些认识和理解. get请求url中带有 ...

  6. java中的中文参数存到数据库乱码问题

    关于java中的中文参数乱码问题,遇见过很多,若开发工具的字符集环境和数据库的字符集环境都一样,存到数据库中还是乱码的话,可以通过以下方法解决: 用数据库客户端检查每个字段的字符集和字符集校对和这个表 ...

  7. 解决URL地址中的中文乱码问题的办法

    解决URL地址中的中文乱码问题的办法 引言: 在Restful类的服务设计中,经常会碰到需要在URL地址中使用中文作为的参数的情况,这种情况下,一般都需要正确的设置和编码中文字符信息.乱码问题就此产生 ...

  8. SpringMVC重定向路径中带中文参数

    SpringMVC重定向路径中带中文参数 springboot重定向到后端接口测试 package com.mozq.http.http_01.demo; import org.springframe ...

  9. struts2中form提交到action中的中文参数乱码问题解决办法(包括取中文路径)

    我的前台页是这样的: <body>      <form action="test.action" method="post">     ...

随机推荐

  1. 依据Axis2官网的高速入门英文文档总结

    版权声明:本文为博主原创文章,未经博主同意不得转载. https://blog.csdn.net/ksdb0468473/article/details/29918027 首先在Eclipse中创建一 ...

  2. xgboost实例代码

    # -*- coding: utf-8 -*- import xgboost as xgb import csv import jieba jieba.load_userdict('wordDict. ...

  3. 打印 laravel 模型查询产品的 SQL

    1.在路由閉包打印sql 打印一段代码生产的 sql 语句,使用路由闭包做个实验 Route::get('/get-sql', function() { DB::enableQueryLog(); $ ...

  4. Linux cp命令详解

    Linux cp命令 Linux cp命令主要用于复制文件或目录,将源文件复制至目标文件,或将多个源文件复制至目标目录 用法: cp [选项]... [-T] 源文件 目标文件 cp [选项]... ...

  5. 在flask框架中,对wtforms的SelectMultipleField的一个报错处理

    先粘贴代码: form.py文件: users = SelectMultipleField( label="请选择用户", validators=[ DataRequired(&q ...

  6. 深度森林DeepForest

    级联森林(Cascade Forest) 级联森林结构的图示.级联的每个级别包括两个随机森林(蓝色字体标出)和两个完全随机树木森林(黑色). 假设有三个类要预测,因此,每个森林将输出三维类向量,然后将 ...

  7. Codeforces Round #551 (Div. 2) A-E

    A. Serval and Bus 算出每辆车会在什么时候上车, 取min即可 #include<cstdio> #include<algorithm> #include< ...

  8. 小程序开发------mpvue开发时间轴

    亲们支持我的新博客哦==>地址(以后更新会尽量在新博客更新,欢迎大家访问加入我的后宫w) ) 效果展示: 技术栈:mpvue demo==> 代码:

  9. python3笔记<二> List

    python数组申明用方括号:例: Arr = ['python','java','javascript'] 截取其中一段元素:例: Arr = [5,6,7,8,9,10,11,12,13,14,1 ...

  10. mysql数据库存中文字段

    mysql数据默认编码是拉丁,而我们更多的使用utf8, 在创建库的时候执行参数即可: CREATE DATABASE IF NOT EXISTS yourdbname DEFAULT CHARSET ...