eclipse配置tomcat后修改server.xml文件(如编码等)无效问题,解决get方式搜索乱码问题

先设置eclipse中为utf-8编码格式,

Window->Preferences->General->Workspace   面板Text file encoding 选择UTF-8
Window->Preferences->General ->Content Types->Text->JSP 最下面设置为UTF-8
Window->Preferences->Web->JSP Files 面板选择 ISO 10646/Unicode(UTF-8)

然后在代码中设置正常编码需要的三个步骤

1,Jsp页面在页面第一行的java代码中配置pageEncoding

<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
%>

2,Jsp页面在html代码中配置charset

<html>
<head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
</head>
<body ng-view="ng-view">
</body>
</html>

3,web.xml配置编码过滤器(java web 项目的一个重要的配置文件,Sun公司定义)

<filter>
    <filter-name>encodingFilter</filter-name>
    <filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class>
    <async-supported>true</async-supported>
    <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>

配置完成之后搜索依然乱码
从代码找问题,搜索是由一个form表单发送到控制层

设置form的编码格式

<form class="" 
      method="post"
      action="<%=basePath%>goods/search" 
      enctype="multipart/form-data" 
      accept-charset="UTF-8">
</form>

发现依然没有解决,只能去修改tomcat编码格式

利用request.setCharacterEncoding(“UTF-8”);来设置Tomcat接收请求的编码格式,只对POST方式提交的数据有效,对GET方式提交的数据无效!

要设置GET的编码,可以修改server.xml文件中,相应的端口的Connector的属性:URIEncoding=“UTF-8”,这样,GET方式提交的数据才会被正确解码。

  <Connector port="8080" protocol="HTTP/1.1"
               connectionTimeout="20000"
               redirectPort="8443" URIEncoding="UTF-8" />

特别要注意,使用eclipse修改server.xml文件

因为Tomcat服务器在Eclipse中启动时,会自动发布Eclipse中部署的项目
Eclipse只认得在它里面部署的项目,因此它会创建一个新的server.xml文件覆盖原来的文件,
里面只有Eclipse中部署的项目。

方法一(失败)
设置eclipse,取消自动发布。选择window==>Preferences==>server==>launching
去掉Automatically publish when starting servers的勾

方法二(成功,方法一的勾不能去掉)
eclipse中配置好tomcat后会有一个server项目,里面有一个Tomcat v7.0 Server at localhost-config。
Tomcat v7.0 Server at localhost-config下有个server.xml文件,直接修改它或替换成你修改好的文件。

在这里插入图片描述方法三(成功,需要修改代码,而且下次环境不同还需要再次修改)
Tomcat(默认ISO-8859-1编码)
那么我们可以在控制层接受到参数后修改编码格式

canshu= new String(canshu.getBytes("iso-8859-1"),"utf-8");
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值