zoukankan      html  css  js  c++  java
  • jsp页面中文乱码的解决情况

    首先注意在页面标签中声明好编码格式

    <%@ pagecontentType="text/html;charset=utf-8"pageEncoding="UTF-8"%>

    一般来说,客户端向服务器端传递数据都是通过request(要注意这个request的生命周期,下一次请求意味着另一个request,需要再次设置),可以为这个request设置一下编码格式request.setCharacterEncoding("UTF-8");

    注意:P1->P2->P3需要在p2和p3中都设置一遍

    request.setCharacterEncoding("UTF-8");

     

    <jsp:forwardpage="p2.jsp">

               <jsp:paramname="userName"value="瑞莎"/> </jsp:forward>

    (Loop after forward

           则有些不同 ,需要在p1中的request设置utf-8,这点不是很理解,难道是和forward的特性有关,

    上面三页面传值出现了三次请求,而如果使用forward的话,只会出现一次请求,同时代码的执行顺序是从forward进去,(Loop afterforward)这些代码都不会执行了。同时请求仍然是一个。

    String username2 =newString(username.getBytes("ISO8859_1"),"UTF-8");

    setCharacterEncoding不起作用?

    setCharacterEncoding只针对post 而get还是使用的tomcat配置的默认编码方式

    解决的方法有三个: 
    1.  将GET请求改成POST请求,然后就可以使用request.setCharacterEncoding方法设置编码,并使用request.getParameter方法直接获得中文请求参数了。 
    2.  不用改GET请求,在Servlet中使用如下的代码来得到中文请求参数。 
    String name = newString(request.getParameter("name").getBytes("ISO-8859-1"),"GBK"); (ISO-8859-1是tomcat的默认编码,如果做过修改,这里也要相应的修改
    3.为了保证get数据采用UTF8编码,在server.xml中进行了如下设置 
    <connector port="8080"maxthreads="150" minsparethreads="25"<br="">maxSpareThreads="75"enableLookups="false" redirectPort="8443" 
    acceptCount="100"debug="99" connectionTimeout="20000" 
    disableUploadTimeout="true" URIEncoding="UTF-8"/> 

    Ps: 如果是使用myeclipse的自带的tomcat,则它的配置路径是X:\Workspace\.metadata\.me_tcat\conf

  • 相关阅读:
    webpack中optimization 的 runtimeChunk 是干嘛的
    快速排序
    域名解析的设置
    MingW和cygwin的区别(转)
    设计模式总结
    OPTIONS请求 简单请求与 非简单请求
    axios的坑
    idea+maven+springboot+mybatis+springmvc+shiro
    Shiro 自定义角色 认证
    spring+shiro+springmvc+maven权限卡控示例
  • 原文地址:https://www.cnblogs.com/suijing/p/3379403.html
Copyright © 2011-2022 走看看