`
mengbinhao
  • 浏览: 8072 次
  • 性别: Icon_minigender_1
  • 来自: 北京
最近访客 更多访客>>
社区版块
存档分类
最新评论

JSP开发Web程序中的中文问题

    博客分类:
  • JSP
阅读更多

   这段时间经常看到有人问到web开发中怎么中文总是?号。原因其实很简单,因为大家大多用的是tomcat服务器,而tomcat服务器的默认编码为 iso-8859-1(西欧字符)。就是因为iso-8859-1(西欧字符)编码造成了我们经常看到?号。

  方法一:最简单也是用的最多的方法。

  <%@ page language="java" pageEncoding="GBK" %>

  或者<%@ page contenttype="text/html;charset=gbk";>这里可以用gb2312或者gbk,只是gbk比gb2312支持跟多的字符。

  这个方法用于jsp页面中的中文显示。

  方法二:使用过滤器。

  过滤器使用主要针对表单提交,插入数据库的数据都是?号。这也是应为tomcat不按request所指定的编码进行编码,还是自作主张的采用默认编码方式iso-8859-1编码。

  编写一个SetCharacterEncodingFilter类。

import java.io.IOException;

import javax.servlet.Filter;
import javax.servlet.FilterChain;
import javax.servlet.FilterConfig;
import javax.servlet.ServletException;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;

public class SetCharacterEncodingFilter implements Filter {
 protected String encoding = null;
 protected FilterConfig filterConfig = null;
 protected boolean ignore = true;

 public void init(FilterConfig filterConfig) throws ServletException {
  this.filterConfig=filterConfig;
  this.encoding=filterConfig.getInitParameter("encoding");
  String value=filterConfig.getInitParameter("ignore");
  if(value==null)
   this.ignore=true;
  else if(value.equalsIgnoreCase("true"))
   this.ignore=true;
  else
   this.ignore=false;
 }

 public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException {
 // TODO 自动生成方法存根
 if (ignore || (request.getCharacterEncoding() == null)) {
  String encoding = selectEncoding(request);
  if (encoding != null)
   request.setCharacterEncoding(encoding);
 }
 chain.doFilter(request, response);
}

public void destroy() {
 // TODO 自动生成方法存根
 this.encoding = null;
 this.filterConfig = null;
}

protected String selectEncoding(ServletRequest request) {
 return (this.encoding);
}
}


  然后再web.xml加上

<!-- Set Character Encoding-->
<filter>
 <filter-name>Set Character Encoding</filter-name>
 <filter-class>com.struts.common.SetCharacterEncodingFilter</filter-class>
 <init-param>
  <param-name>encoding</param-name>
  <param-value>UTF-8</param-value>
 </init-param>
</filter>

<filter-mapping>
 <filter-name>Set Character Encoding</filter-name>
  <url-pattern>/*</url-pattern>
 </filter-mapping>
<!-- Set Character Encoding-->


  使用过滤器的好处很多,特别是项目之中。

  而且在使用国际化时就更有用了,只要在页面指定 <%@ page language="java" pageEncoding="UTF-8" %>,服务器就会根据本地Locale来显示正确的字符集。

  所以我特别推荐使用过滤器。

  方法三:修改tomcat的server.xml文件中URIEncoding。

<Connector debug="0" acceptCount="100" connectionTimeout="20000" disableUploadTimeout="true"
port="80" redirectPort="8443" enableLookups="false" minSpareThreads="25" maxSpareThreads="75"
maxThreads="150" maxPostSize="0" URIEncoding="GBK" >
</Connector>


  这个方法主要针对从url中获取字符串的问题。 
 

分享到:
评论

相关推荐

    WEB程序设计-JSP(第2章 JSP开发基础).pdf

    WEB程序设计-JSP(第2章 JSP开发基础).pdf WEB程序设计-JSP(第4章 JSP内置对象).pdf WEB程序设计-JSP(第6章 Servlet技术).pdf WEB程序设计-JSP(第7章 JSP实用组件).pdf WEB程序设计-JSP(第9章 JSP高级程序设计)....

    JSP Web应用程序开发.doc

    jsp动态网页制作,JSP Web应用程序开发.doc

    用JSP开发的Web应用是跨平台的

    JSP(JavaServer Pages)是由Sun Microsystems公司倡导、许多公司参与一起建立的一种动态网页技术标准。JSP技术有点类似ASP技术,它是... 用JSP开发的Web应用是跨平台的,即能在Linux下运行,也能在其他操作系统上运行。

    web开发技术小程序

    ASP/asp.net/jsp 程序设计 Web开发技术--图片与代码

    jsp程序设计开发web应用

    课程实例代码,方便自己练习和运用。资源分了章节。---清华大学出版社

    WEB程序设计-JSP(第3章 JSP语法).pdf

    WEB程序设计-JSP(第2章 JSP开发基础).pdf WEB程序设计-JSP(第4章 JSP内置对象).pdf WEB程序设计-JSP(第6章 Servlet技术).pdf WEB程序设计-JSP(第7章 JSP实用组件).pdf WEB程序设计-JSP(第9章 JSP高级程序设计)....

    使用JSP开发Web应用程序__总结.doc

    使用JSP开发Web应用程序__总结.doc

    Web程序设计课件—JSP

    Web程序设计之JSP课件,包含各章节实例!

    WEB程序设计-JSP(第4章 JSP内置对象).pdf

    WEB程序设计-JSP(第2章 JSP开发基础).pdf WEB程序设计-JSP(第4章 JSP内置对象).pdf WEB程序设计-JSP(第6章 Servlet技术).pdf WEB程序设计-JSP(第7章 JSP实用组件).pdf WEB程序设计-JSP(第9章 JSP高级程序设计)....

    基于JSP的WEB网站构建与程序设计实训

    基于JSP的WEB网站构建与程序设计实训,结合jsp,web实战开发网站

    纯JSP-JDBC开发Web程序

    1.架构技术简单,只包含JSP和JDBC+MySQL,不需要学习即可快速开发Web应用,稍加改造也可以用于其他数据库应用程序; 2.用特殊的回调机制进行JDBC封装,以致不用每次的JDBC访问都要进行数据库连接和关闭,支持...

    JSP开发技术大全 源码

    mail组件、程序日志组件、JavaScript脚本语言、CSS样式、XML入门技术、在JSP中应用Ajax技术、在JSP中应用DOM解析XML、在JSP中应用JDOM解析XML、在JSP中应用SAX解析XML、EL表达式、JSTL标签库、自定义标签、Hibernate...

    jsp 开发技术大全

    mail组件、程序日志组件、JavaScript脚本语言、CSS样式、XML入门技术、在JSP中应用Ajax技术、在JSP中应用DOM解析XML、在JSP中应用JDOM解析XML、在JSP中应用SAX解析XML、EL表达式、JSTL标签库、自定义标签、Hibernate...

    JSP数据库开发实例精粹 源码

    本书首先介绍了JSP开发Web应用程序的重点技术技巧,对初学者有很好的指导意义。然后以多个实用的系统为例,详细地讲述了用JSP创建Web应用程序的详细过程。内容包括在线书店、企业内部管理信息系统、新闻发布系统、...

    JAVA WEB 开发详解:XML+XSLT+SERVLET+JSP 深入剖析与实例应用.part2

    第14章 jsp开发的两种模型 441 14.1 模型1 441 14.2 模型2 445 14.3 小结 449 第15章 标签库(tag library) 450 15.1 标签库api 450 15.1.1 标签的形式 451 15.1.2 tag接口 451 15.1.3 iterationtag接口 ...

    java web实验报告;开发环境及web基础, JSP、Servlet及JDBC、扩展JavaScript

    实验1:Java Web开发环境及Web编程基础;实验2 JSP、Servlet及JDBC应用开发;实验3 扩展JavaScript框架应用;实验4 Web应用综合设计; 天津理工大学

    Web应用开发技术:jsp1-2

    Web基础知识,主流动态Web技术介绍,JSP开发运行环境的搭建,MyEclipse智能助手的使用,HTML语言, JSP脚本语言——Java,JSP内置对象,JSP标签,JDBC访问数据库技术,JavaBean组件技术,服务器端Servlet程序开发...

    JAVA WEB 开发详解:XML+XSLT+SERVLET+JSP 深入剖析与实例应用.part3

    第14章 jsp开发的两种模型 441 14.1 模型1 441 14.2 模型2 445 14.3 小结 449 第15章 标签库(tag library) 450 15.1 标签库api 450 15.1.1 标签的形式 451 15.1.2 tag接口 451 15.1.3 iterationtag接口 ...

    JSP开发技术大全 JSP

    mail组件、程序日志组件、JavaScript脚本语言、CSS样式、XML入门技术、在JSP中应用Ajax技术、在JSP中应用DOM解析XML、在JSP中应用JDOM解析XML、在JSP中应用SAX解析XML、EL表达式、JSTL标签库、自定义标签、Hibernate...

    JSP Web 编程指南

    JSP Web编程指南 JavaServer Pages(JSP)是一种基于Java程序语言创建交互式的、动态Web站点的技术。本书从基础开始,先讲述JSP的概念、如何存储数据和执行简单的计算;接着介绍JSP的新功能——标签库和Java最有用...

Global site tag (gtag.js) - Google Analytics