JSP中特殊字符处理

来源:互联网 发布:性价比 实木家具 知乎 编辑:程序博客网 时间:2024/04/30 11:07

JSP中用form表单(Post请求)可以传送特殊字符到服务器,但当使用get请求或者通过链接地址(也是get请求)时,如遇到+、-等特殊字符就会截断其后的值。本文没有解决get请求中含这些字符的问题,但给出了一种转换方法。

如上所说,post请求可以传送特殊字符。所以,可以将get请求转换成post请求。又js中可以获取form元素并提交请求,所以可以将get请求需要传送的数据放在type类型为hidden的input中,然后通过js代码和form表单实现传送特殊字符。示例代码如下:

one.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8"    pageEncoding="UTF-8"%><!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"><%    request.setCharacterEncoding("utf-8");%><html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>one</title></head><body>    <form action="two.jsp" method="post" id="1">        <input type="hidden" name="value" value="one+-*/">    </form>    <form action="two.jsp" method="post" id="2">        <input type="hidden" name="value" value="two+-*/">    </form>    <a href="javascript:send('1')">one</a>    <a href="javascript:send('2')">tow</a></body><script type="text/javascript">    function send(formId){        document.getElementById(formId).submit();    }</script></html>

two.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8"    pageEncoding="UTF-8"%><!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"><%    request.setCharacterEncoding("utf-8");    String value = request.getParameter("value");%><html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>two</title></head><body>    传过来的值为<%=value %></body></html>
0 0