页面是 a.jsp 传递一个表单到b.jsp,a.jsp里面有一个下拉选框选者类型name="op",b.jsp根据传回的op不同的变量值来判断不同的方法处理表单数据
b.jsp:
String op = request.getParameter("op");
response.setContentType("xhtml/xml;charset=utf-8");
request.setCharacterEncoding("utf-8");
response.setCharacterEncoding("utf-8");//我不知道这里设置编码有没有用
if ("p".equals(op)) {
request.getRequestDispatcher("c.jsp").forward(request, response);//当op=p的时候request的参数传到c.jsp处理
}else if ("m".equals(op)) {
request.getRequestDispatcher("d.jsp").forward(request, response);//当op=m的时候request的参数传到d.jsp处理
}
.
.
.
例如但op=m 表单数据"图片"传到d.jsp处理,但我用get方式来显示的话:地址是b.jsp?keywords=%E5%9B%BE%E7%89%87&op=m而不是想要的d.jsp?keywords=%E5%9B%BE%E7%89%87&op=m ,但传递方式是对的,用英文提交可以得出结果中问的话就是乱码,比如表单数据是“abc”地址b.jsp?keywords=%E5%9B%BE%E7%89%87&op=m能过得出正确的值,而上面的"图片"对应的b.jsp?keywords=%E5%9B%BE%E7%89%87&op=m 而是乱码,而我手动改成d.jsp?keywords=%E5%9B%BE%E7%89%87&op=m则能得出结果,请问这个request是不是有问题,是不是要编码,这个编码过程怎么写,或者方法不对,请高手指点
b.jsp:
String op = request.getParameter("op");
response.setContentType("xhtml/xml;charset=utf-8");
request.setCharacterEncoding("utf-8");
response.setCharacterEncoding("utf-8");//我不知道这里设置编码有没有用
if ("p".equals(op)) {
request.getRequestDispatcher("c.jsp").forward(request, response);//当op=p的时候request的参数传到c.jsp处理
}else if ("m".equals(op)) {
request.getRequestDispatcher("d.jsp").forward(request, response);//当op=m的时候request的参数传到d.jsp处理
}
.
.
.
例如但op=m 表单数据"图片"传到d.jsp处理,但我用get方式来显示的话:地址是b.jsp?keywords=%E5%9B%BE%E7%89%87&op=m而不是想要的d.jsp?keywords=%E5%9B%BE%E7%89%87&op=m ,但传递方式是对的,用英文提交可以得出结果中问的话就是乱码,比如表单数据是“abc”地址b.jsp?keywords=%E5%9B%BE%E7%89%87&op=m能过得出正确的值,而上面的"图片"对应的b.jsp?keywords=%E5%9B%BE%E7%89%87&op=m 而是乱码,而我手动改成d.jsp?keywords=%E5%9B%BE%E7%89%87&op=m则能得出结果,请问这个request是不是有问题,是不是要编码,这个编码过程怎么写,或者方法不对,请高手指点
在tomcat的conf文件夹下,找到server.xml文件
修改其中的内容为
<Connector port="8080"
maxThreads="150" minSpareThreads="25" maxSpareThreads="75"
enableLookups="false" redirectPort="8443" acceptCount="100"
debug="0" connectionTimeout="20000"
disableUploadTimeout="true"
useBodyEncodingForURI="true" URIEncoding="UTF-8"/>
主要是红字那,
你该下试试
URLDECODING的编解码.你找找这两个类.
要不就用POST提交.
如果你可以用 <input type="hidden" name="" value="" /> 来传参。
URLDECODING这两个类.你看了么?这就是专门对中文编解码用的.request.setCharacterEncoding("utf-8"); 这个只能是对POST才管用的
http://blog.csdn.net/rascalboy520/archive/2008/06/06/2516038.aspx