解决Jsp页面URL中传递参数乱码的方法
Jsp页面在URL中传递参数会出现乱码
解决方法如下:
一、使用更改Tomcat的方法。这个方法简单,但是需要改动的地方是服务器软件级别的,如果稍微变动系统将无法正确转码,移植性不高。
1、来到tomcat目录,找到conf目录下的server.xml问价,打开,找到<Connector>标签,在最后添加URIEncoding=’GBK’,效果如下:
view plaincopy to clipboardprint?
<Connector
port="8080"maxThreads="150"minSpareThreads="25"maxSpareThreads="75"
enableLookups="false"redirectPort="8443"acceptCount="100"
debug="0"connectionTimeout="20000"
disableUploadTimeout="true" URIEncoding=″GBK″/>
<Connectorport="8080" maxThreads="150" minSpareThreads="25" maxSpareThreads="75"enableLookups="false" redirectPort="8443" acceptCount="100"debug="0" connectionTimeout="20000"disableUploadTimeout="true" URIEncoding=″GBK″/>
这种方法对get这个方法测试成功。
2、在每个Jsp页面添加如下代码
view plaincopy to clipboardprint?
<%@pagepageEncoding=”gb2312″%>
<%@pagecontentType=”text/html;charset=gb2312″%>
<%request.setCharacterEncoding(”gb2312″);%>
<%@ page pageEncoding=”gb2312″%><%@ page contentType=”text/html;charset=gb2312″%><%request.setCharacterEncoding(”gb2312″);%>
编码方式也可以改成GBK,支持繁体中文。重启Tomcat,这一步很重要,否则可能看不到效果。
这种方法对post测试成功。建议两种同步使用。
二、使用JSP的scriptLet
view plaincopy to clipboardprint?
<%=newString(elValue.getBytes("iso-8859-1"),"GBK")%>
<%=new String(elValue.getBytes("iso-8859-1"),"GBK")%>
三、使用自定义JSTL
这是我们的重点所在,这里要详细说明.
第一,编写自定义标签
第二编写tag文件
第三部署tag文件
第四使用吧;)很简单的.
相关文档:
在Jsp和jsp中的javabean里面,"/"指的是tomcat所在的根路径,如果是在Windows下就是tomcat所在盘的盘符;而“.”指的是tomcat的bin目录所在的路径。
我猜想这是因为jsp代码都会被tomcat转为Servlet,而Servlet是在tomcat中访问的,所以jvm在运行Servlet时就认为目录是tomcat所在的目录。
Html中的“/&r ......
<%@ page contentType="text/html; charset=gbk" language="java" import="java.io.*" buffer="64kb" %>
<%
String path_in = "";
String content = "";
path_in = request.getRealPath("/")+"admin"+File.separator+ ......
这个问题是从项目中设计数据库和操作数据库的人不同而造成的。所用的数据库
是sybase,设计时把数据类型设计为nvarchar了,如果是中文,读取出来就会得
到乱码。我试了好多方法还是不行,最后无奈,只好将数据类型改为varchar了。
所以在此总结一下中文乱码问题。
一、JSP与页面参数之间的乱码
&nb ......
1、用户登录界面log.jsp
<%@ page contentType="text/html; charset=gb2312" language="java" import="java.sql.*" errorPage="" %>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content ......