jsp乱码

方法一

<% request.setCharacterEncoding("utf-8");%>
<!--设置request的编码方式-->
<jsp:useBean id="user" class="model.User"></jsp:useBean>
<jsp:setProperty name="user" property="*"></jsp:setProperty>

方法二

        对于以post方式提交的表单编码格式默认为ISO-8859-1的编码格式,而这种编码格式是不能编码中文的,所以就会出现乱码的现象了。对于这种情况,我们可以对表单中的数据进行处理,在取得表单参数的时候设置编码方式。

<jsp:useBean id="user" class="model.User"></jsp:useBean>
<jsp:setProperty name="user" property="*"></jsp:setProperty>
<%
    user.setUsername(new String(user.getUsername().getBytes("ISO-8859-1"),"utf-8"));
%>

方法三

        使用过滤器设置编码。

        新建EncodingFilter,代码如下:

@WebFilter(filterName = "EncodingFilter")
public class EncodingFilter implements Filter {
    public void destroy() {
    }

    public void doFilter(ServletRequest req, ServletResponse resp, FilterChain chain) throws ServletException, IOException {
        HttpServletRequest request = (HttpServletRequest)req;
        request.setCharacterEncoding("utf-8");
        chain.doFilter(request, resp);
    }

    public void init(FilterConfig config) throws ServletException {

    }

}

        在web.xml中配置过滤器

<!--编码过滤器-->
    <filter>
        <filter-name>encodingFilter</filter-name>
        <filter-class>filter.EncodingFilter</filter-class>
    </filter>
    <filter-mapping>
        <filter-name>encodingFilter</filter-name>
        <url-pattern>/*</url-pattern>
    </filter-mapping>

        如果表单是get方式提交的,还需要修改Tomcat安装目录下"conf/server.xml"配置文件,指定URLEncoding(默认为ISO-8859-1),否则依然会乱码。修改如下

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



                
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值