超链接中文传值问题解决

 

问题:

  1. <a href="IPAssetAdmin.do? materialDn=<%= material.getDn() %>"  >
  2.                   <%= material.getName() %>
  3. </a>

 

如果material.getDn()是中文,在servlet中通过request.getParameter(name); 得到的值是乱码。

 

解决方案:

js代码:

  1. <script language="JavaScript" type="text/JavaScript">
  2. <!-- add the js function by suqiang to solve the Chinese illegible Characters (only for get method,for example:link)  -->
  3. function linkClick(linkObject) {   
  4.                
  5.     var formObject = document.createElement('form');   
  6.     document.body.appendChild(formObject);   
  7.      formObject.setAttribute('method''post');   
  8.      var url = linkObject.href;   
  9.      var uri = '';   
  10.      var i = url.indexOf('?');   
  11.                
  12.      if(i == -1) {   
  13.         formObject.action = url;   
  14.      } else {   
  15.         formObject.action = url.substring(0, i);   
  16.      }   
  17.                
  18.      if( i >= 0 && url.length >= i + 1) {   
  19.         uri = url.substring(i + 1, url.length);   
  20.      }   
  21.   
  22.      var sa = uri.split('&');   
  23.                
  24.      for(var i = 0; i < sa.length; i++) {   
  25.        var isa = sa[i].split('=');         
  26.        var inputObject = document.createElement('input');   
  27.        inputObject.setAttribute('type''hidden');   
  28.        inputObject.setAttribute('name', isa[0]);   
  29.        inputObject.setAttribute('value', isa[1]);   
  30.        formObject.appendChild(inputObject);   
  31.      }   
  32.                
  33.      formObject.submit();   
  34.                
  35.      return false;   
  36. }  
  37. </script>

 

 

超链接调用js代码:

  1. <a href="IPAssetAdmin.do?type=<%= op %>&materialDn=<%= material.getDn() %>"  οnclick="return linkClick(this)">
  2.                   <%= material.getName() %>
  3. </a>

 

 

reference:

http://xuxiaolei.javaeye.com/blog/187024

 

 

另外:

response.getWriter().write(strHtml);

如果strHtml中含有中文,在jsp/js中接收到的strHtml中含有乱码,解决方案:在write前response设置编码;

response.setContentType("text/html;charset=GB2312");   //add by suqiang to reslove the Chinese Character problem

response.getWriter().write(strHtml);

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
好的,这个问题我可以解答。首先,需要在 Eclipse 创建一个 Dynamic Web Project,并在其创建一个名为 `SquareServlet` 的 Servlet。然后,我们需要在页面创建一个超链接,当用户单击该链接时,将数字 5 作为参数传递给 `SquareServlet`。最后,`SquareServlet` 将计算 5 的平方并在页面上显示结果。 下面是实现该功能的详细步骤: 1. 创建 Dynamic Web Project 在 Eclipse ,选择 `File -> New -> Dynamic Web Project`,输入项目名称和目标运行时(Tomcat 或其他 Web 服务器),然后按下 `Finish` 按钮创建项目。 2. 创建 SquareServlet 在项目的 `src` 目录下,创建一个新的 Servlet 类 `SquareServlet`,并重写其 `doGet` 方法。该方法将获取传递给 Servlet 的参数值,并计算其平方。 ```java @WebServlet("/square") public class SquareServlet extends HttpServlet { private static final long serialVersionUID = 1L; protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { int num = Integer.parseInt(request.getParameter("num")); int result = num * num; response.setContentType("text/html"); PrintWriter out = response.getWriter(); out.println("<html><body>"); out.println("<h2>The square of " + num + " is " + result + "</h2>"); out.println("</body></html>"); } } ``` 3. 创建超链接 在 JSP 页面,创建一个超链接,并将数字 5 作为参数传递给 `SquareServlet`。 ```html <a href="square?num=5">Calculate the square of 5</a> ``` 4. 运行应用程序 将应用程序部署到 Web 服务器上并启动它。然后,打开浏览器并访问 JSP 页面。单击超链接,页面将跳转到 `SquareServlet` 并显示数字 5 的平方的值。 希望这个解答能够帮助你解决问题

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值