java工作错误集

来源:互联网 发布:宏观经济数据网 编辑:程序博客网 时间:2024/05/18 13:29


    今天是上班第一天,我就被安排去改正页面和服务器的乱码问题,在这个过程中遇到了很多有趣的事。

    先来说一说Myeclipse,这个开发工具有很多优良的特性,本身在导入的jar包文件中不包含jsp-apiservlet-api包都能正常运行,但是我通过导出项目到本地的eclipse后发现有大大的红叉,javax.servlet.http.HttpServletRequest包含出错,同时页面标签也报错,只需要把jsp-apiservlet-api 放到项目中的 web-inf/lib目录下即可。

   同理org.apache.jasper.JasperException:This absolute uri (http://java.sun.com/jsp/jstl/core ) cannot be resolved ineither web.xml or the jar files deployed with this application错误,也是没有导入JSTL的包,jsp的标准标签库。查阅资料知道:JSTL1.0的声明是:<%@ taglib prefix="c"uri="http://java.sun.com/jstl/core " %>JSTL1.1以后

的声明是:< %@ taglibprefix="c" uri=http://java.sun.com/jsp/jstl/core %>页面中也全部是用<%@ taglib prefix="c"uri=http://java.sun.com/jsp/jstl/core %>这种方式,javaee5之后就只有 jstl.jar 这一个jar包了,没有standard.jar包,tld文件也打包到jar里面去了。另外就是有说在web.xml文件里配置jsp-config的解决方式也对我遇到的这个问题无法解决。

  回到页面乱码和数据库乱码的问题上来,对于乱码的方式我们可以采取分步骤排除问题:

第一步:设置开发环境的编码为UTF-8windows->preferences->Generl->ContentType.然后设置成UTF-8

第二步:页面。每个页面上加上<%@page pageEncoding="UTF-8" contentType="text/html;charset=UTF-8" %>或者<metahttp-equiv="Content-Type" content="text/html;charset=utf-8"/> 

第三步:数据库连接句设置characterencodingUTF-8jdbc.mysql.url=jdbc:mysql://localhost:3306/db?useUnicode==true&amp;characterEncoding=UTF8如果使用Hibernate,那就把所有的配置文件头部的编码格式改成UTF-8

第四步:Tomcat。为了保证get/post数据都采用相同的UTF8编码,我们在server.xml中进行了如下: <Connector port="8080"protocol="HTTP/1.1"   connectionTimeout="20000" redirectPort="8443" URIEncoding="UTF-8" />

第五步:struts2配置struts2在配置struts.properties文件中加上struts.i18n.encoding=UTF-8或者在struts.xml里加上<constant name="struts.i18n.encoding"value="UTF-8" />

web.xml文件里配置filter

<filter>

  <filter-name>encodingFilter</filter-name>

  <filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class>

  <init-param>

   <param-name>encoding</param-name>

   <param-value>UTF-8</param-value>

  </init-param>

 </filter>

 <filter-mapping>

  <filter-name>encodingFilter</filter-name>

  <url-pattern>/*</url-pattern>

 </filter-mapping> 

也有自己写拦截器的。

最后一步:数据库(MSQL)。可以先输入查询语句SHOW VARIABLES LIKE 'character_set_%';,查看所有的编码是否是UTF-8。因为MySQL默认的字符编码是Latin1,如果不是可以使用Server Instance Config 把默认的字符集设置为utf-8或者修改/MySQL/MySQL Server 5.0/my.ini中的default-character-set=utf8 character-set-server=utf8然后重新启动mysql的服务就行了。也可以通过一个项目一个项目设置。只有一个编码为二进制的,其它的都设置为utf-8。我这次遇到的问题就是数据库的问题如图所示:


0 0
原创粉丝点击