仓酷云

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 423|回复: 8
打印 上一主题 下一主题

[学习教程] JAVA编程:tomcat下的jsp和servlet的字符编码成绩...

[复制链接]
乐观 该用户已被删除
跳转到指定楼层
楼主
发表于 2015-1-18 11:19:56 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
前些天,在CSDN上看到了一个消息,说是ASP.NETAJAX成功在Linux上运行,这一点对我触动很大,而且引发了我许多感叹,所以想写出来分享一下。js|servlet|编码|成绩利用filter来改动request的编码在后面的文章内里,我们会商了在tomcat下的jsp和servlet的字符编码成绩!

晓得当没有指定request的编码的时分,从客户端失掉的数据是iso-8859-1编码的(request.getParameter()失掉传送的参数值);

可是我们怎样来改动request的编码呢?

办法有良多种!

好比:在getRequestDispatcher("/jsp/jsptoserv/hello.jsp").forward(request,response);之前修正

request的编码,那末在jsp/jsptoserv/hello.jsp中失掉的参数值就是制订的编码的字符。

本文我们利用Filter来修正request的编码!



1)起首编写filter类:

packagemyFilter;
importjava.io.IOException;
importjavax.servlet.*;
publicclassChangeCharsetFilterimplementsFilter{
protectedStringencoding=null;/////要制订的编码,在web.xml中设置
protectedFilterConfigfilterConfig=null;

publicvoiddestroy(){

this.encoding=null;
this.filterConfig=null;

}

publicvoiddoFilter(ServletRequestrequest,ServletResponseresponse,FilterChainchain)
throwsIOException,ServletException{

if(request.getCharacterEncoding()==null){
Stringencoding=getEncoding();////失掉指定的编码名字
if(encoding!=null)
request.setCharacterEncoding(encoding);////设置request的编码
}

chain.doFilter(request,response);///无机会实行下一个filter

}

publicvoidinit(FilterConfigfilterConfig)throwsServletException{

this.filterConfig=filterConfig;
this.encoding=filterConfig.getInitParameter("encoding");///失掉在web.xml中设置的编码
}
protectedStringgetEncoding(){

return(this.encoding);///失掉指定的编码

}
}
2。编纂web.xml文件

<?xmlversion="1.0"encoding="ISO-8859-1"?>

<!DOCTYPEweb-app
PUBLIC"-//SunMicrosystems,Inc.//DTDWebApplication2.3//EN"
"http://java.sun.com/dtd/web-app_2_3.dtd">

<web-app>

<filter>
<filter-name>SetCharacterEncoding</filter-name>
<filter-class>myFilter.ChangeCharsetFilter</filter-class>
<init-param>
<param-name>encoding</param-name>
<param-value>GB2312</param-value>//////指定编码为GB2312
</init-param>
</filter>
<filter-mapping>
<filter-name>SetCharacterEncoding</filter-name>
<url-pattern>/*</url-pattern>////////关于一切的request改动其编码
</filter-mapping>

</web-app>
///

3。

写一个a.jsp

<%@pagecontentType="text/html;charset=GB2312"%>
<html>
<head></head>
<body>
<%
Stringname=request.getParameter("name");///原本这里失掉字符是iso-8859-1编码的,不克不及间接

在Console中输入的,可是如今改动了request的编码体例,此时的name的编码是GB2312,以是能准确在Console中显现的。
System.out.println(name);

%>
<formaction="a.jsp"method="post">
<inputtype="text"name="name">
<inputtype="submit">
</form>
<%=name%>
</body>
</html>

完!

关于中文处置的成绩就写这些了!

在1995年5月23日以“Java”的名称正式发布了。
只想知道 该用户已被删除
沙发
发表于 2015-1-20 20:36:15 | 只看该作者
你就该学一学Servlet了。Servlet就是服务器端小程序,他负责生成发送给客户端的HTML文件。JSP在执行时,也是先转换成Servlet再运行的。虽说JSP理论上可以完全取代Servlet,这也是SUN推出JSP的本意,可是Servlet用来控制流程跳转还是挺方便的,也令程序更清晰。接下来你应该学习一下Javabean了,可能你早就看不管JSP在HTML中嵌Java代码的混乱方式了,这种方式跟ASP又有什么区别呢?
小女巫 该用户已被删除
板凳
发表于 2015-1-29 16:31:04 | 只看该作者
Java自面世后就非常流行,发展迅速,对C++语言形成了有力冲击。Java 技术具有卓越的通用性、高效性、平台移植性和安全性,广泛应用于个人PC、数据中心、游戏控制台
蒙在股里 该用户已被删除
地板
发表于 2015-2-6 02:44:28 | 只看该作者
让你能够真正掌握接口或抽象类的应用,从而在原来的Java语言基础上跃进一步,更重要的是,设计模式反复向你强调一个宗旨:要让你的程序尽可能的可重用。
透明 该用户已被删除
5#
发表于 2015-2-15 04:49:27 | 只看该作者
Java是一种计算机编程语言,拥有跨平台、面向对java
深爱那片海 该用户已被删除
6#
发表于 2015-3-4 11:13:56 | 只看该作者
你现在最缺的是实际的工作经验,而不是书本上那些凭空想出来的程序。
若相依 该用户已被删除
7#
发表于 2015-3-11 16:03:49 | 只看该作者
其实说这种话的人就如当年小日本号称“三个月拿下中国”一样大言不惭。不是Tomjava泼你冷水,你现在只是学到了Java的骨架,却还没有学到Java的精髓。接下来你得研究设计模式了。
因胸联盟 该用户已被删除
8#
发表于 2015-3-19 00:32:27 | 只看该作者
Pet Store.(宠物店)是SUN公司为了演示其J2EE编程规范而推出的开放源码的程序,应该很具有权威性,想学J2EE和EJB的朋友不要 错过了。
冷月葬花魂 该用户已被删除
9#
发表于 2015-3-26 20:02:28 | 只看该作者
是一种突破用户端机器环境和CPU
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|仓酷云 鄂ICP备14007578号-2

GMT+8, 2024-12-23 14:02

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表