Linux与windows有许多不同,在不同环境下会有很多问题。下面记录这些坑。
1.IDE导入eclipse项目servlet的一些方法会报错。
原因是缺少一个jar包的引用。也就是Tomact lib文件夹下的servlet-api 这个jar包。复制后放到项目的lib文件夹下,就好了。至于为什么呢?应该是eclipse下创建web工程的时候就默认会引入Java EE 5/6 Libraries库,里面已经包含了servlet有关的jar包的。而idea并没有,所以会报错。
2.问题:eclipse启动时 jsp能正常打开 idea启动时jsp变成下载
解决:第一步:在“jsp”文件上右击,选择“open with”;
第二步:选择“jsp Editor”即可用“jsp”打开方式打开。
备注:如果“open with”下没有“jsp Editor”,可以选择“other”,之后也可以找到“jsp Editor”。
3.javaweb 乱码问题
1,Jsp页面
<% @page pageEncoding="UTF-8" contentType="text/html; charset=UTF-8" %>
2,JSP页面头部
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
3,浏览器调用servlet,页面显示乱码
servlet使用response对象输出前,先执行
1response.setContentType("text/html;charset=utf-8");3response.setCharacterEncoding("utf-8");
4,jsp或servlet中表单参数提交给对应的jsp或servlet,接收的jsp或servlet中接收到的参数中文显示乱码
在接收post提交的参数前,使用
request.setCharacterEncoding("utf-8");
设定接收参数的内容格式为utf-8编码。
5,数据库连接
设置characterencoding为UTF-8 如:
String url = "jdbc:mysql://localhost:3306/dbname?useUnicode=true&characterEncoding=UTF8";
6,使用Hibernate,所有的配置文件头部的编码格式改成UTF-8
7, URL方式传递参数(Tomcat)乱码
为了保证get/post数据都采用相同的UTF8编码,在tomecat中server.xml设置:
<Connector port="8080" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8443" URIEncoding="UTF-8"/>
8,数据库(mysql)
输入查询语句SHOW VARIABLES LIKE 'character_set_%';查看所有的编码是否是UTF-8。如不是,使用Server Instance Config 把默认的字符集设置为utf-8或者修改/MySQL/MySQL Server 5.0/my.ini中的default-character-set=gbk
character-set-server=gbk;
重新启动mysql的服务