精华内容
下载资源
问答
  • 基于Spring解决jsp传值乱码问题 get post


    基于Spring的org.springframework.web.filter.CharacterEncodingFilter来解决乱码问题

    import java.io.IOException;
    import java.io.UnsupportedEncodingException;
    
    import javax.servlet.FilterChain;
    import javax.servlet.ServletException;
    import javax.servlet.http.HttpServletRequest;
    import javax.servlet.http.HttpServletRequestWrapper;
    import javax.servlet.http.HttpServletResponse;
    
    public class CharacterEncodingFilter extends org.springframework.web.filter.CharacterEncodingFilter {
    
    	private String encoding;
    
    	@Override
    	public void setEncoding(String encoding) {
    		this.encoding = encoding;
    		super.setEncoding(encoding);
    	}
    
    	@Override
    	protected void doFilterInternal(HttpServletRequest request, HttpServletResponse response, FilterChain filterChain)
    			throws ServletException, IOException {
    		if ("GET".equals(request.getMethod())) {
    			super.doFilterInternal(new EncodeRequest(request), response, filterChain);
    		} else {
    			super.doFilterInternal(request, response, filterChain);
    		}
    	}
    
    	class EncodeRequest extends HttpServletRequestWrapper {
    		private final String[] charsets = { "iso8859-1", "gbk", "gb2312", "utf-8", "ucs" };
    
    		@Override
    		public String getParameter(String param) {
    			String value = super.getParameter(param);
    			return convertCharset(value);
    		}
    
    		private String convertCharset(String value) {
    			String result = value;
    			try {
    				if (value != null) {
    					if (value != null) {
    						for (String charset : charsets) {
    							if (value.equals(new String(value.getBytes(charset), charset))) {
    								value = new String(value.getBytes(charset), encoding);
    							}
    						}
    					}
    				}
    			} catch (UnsupportedEncodingException e) {
    				e.printStackTrace();
    			}
    			return result;
    		}
    
    		public EncodeRequest(HttpServletRequest request) {
    			super(request);
    		}
    	}
    }


    展开全文
  • Java--GET、POSTJSP中文乱码.pdf
  • JSP中文乱码问题(get,post篇)

    千次阅读 2016-05-08 14:59:54
    简单的向新手介绍一下,JSP乱码问题,解决方案.该篇只讲get与post的提交时乱码问题,数据库等以后再说.
    在JSP中,有时在提交时会出现乱码,
    
    那么如何让解决呢?


    public class RequsetDemo2 extends HttpServlet {
    
    	public void doGet(HttpServletRequest request, HttpServletResponse response)
    			throws ServletException, IOException {
    		doPost(request, response);
    	}
    	public void doPost(HttpServletRequest request, HttpServletResponse response)
    			throws ServletException, IOException {
    
    
    		//post提交的乱码问题
    		request.setCharacterEncoding("utf-8");
    		
    		//获取超链接传递过来的数据
    		System.out.println("-----获取超链接传递过来的数据-----");
    		String name = request.getParameter("name");
    		String pwd = request.getParameter("password");
    		System.out.println(name);
    		System.out.println(pwd);
    		
    		
    		System.out.println("-----获取表单传递过来的数据-----");
    		String nickname = request.getParameter("nickname");
    		System.out.println(nickname);
    		
    		String[] hobbys = request.getParameterValues("hobby");
    		//System.out.println(Arrays.toString(hobbys));
    		for (int i = 0; i < hobbys.length; i++) {
    
    		
    			//如果是get提交,处理乱码问题
    			String hb = hobbys[i];
    			//把中文转换成字节
    			byte[] ch = hb.getBytes("iso-8859-1");
    			
    			System.out.println(Arrays.toString(ch));.
    			//再把字节以指定编码组合
    			String str = new String(ch,"utf-8");
    
    
    			//或者简写为
    	//String str=new String(request.getParameter("nickname").getBytes("ISO-8859-1"),"utf-8");
    			
    			System.out.println(str);
    
    
    	/*
    	*或者服务器的server.xml中的
    	*Connector标签中添加URIEncoding="utf-8(也就是设置端口的那一个标签).
    	*如下
    	*<Connector connectionTimeout="20000" port="8080" protocol="HTTP/1.1" redirectPort="8443" URIEncoding="utf-8"/>
    	*
    	*/	}
    		
    		
    		
    	}
    
    }



    在网上也有其他的解决方式,比如添加编码过滤器(如spring中的),又或是自定义编码过滤器等等:

    Spring中的编码过滤器  
      <!-- 编码过滤器 -->
    <filter>
       <filter-name>Spring character encoding filter</filter-name>
       <filter-class>
        org.springframework.web.filter.CharacterEncodingFilter
       </filter-class>
       <init-param>
        <param-name>encoding</param-name>
        <param-value>gb2312</param-value>
       </init-param>
    </filter>
    <filter-mapping>
       <filter-name>Spring character encoding filter</filter-name>
       <url-pattern>/*</url-pattern>
    </filter-mapping>

    展开全文
  • JSP中文乱码

    2019-11-05 08:42:09
    JSP中文乱码 URL中文乱码 解决方案:前端encode后端decode 示例: 前端代码 <a href='/demoServlet?k1=abcd&k2=<%=URLEncoder.encode("我爱编程","UTF-8")%>'>URL中文</a> 后端相关代码 ...

    JSP中文乱码

    所有乱码出现的原因都是:前后编码不一致。

    URL中文乱码:

    示例1:前端encode后端decode

    • 前端代码

      <%@ page import="java.net.URLEncoder" %>
      <%@ page contentType="text/html;charset=UTF-8" language="java" %>
      <html>
      <head>
          <title>login</title>
          <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
      </head>
      <body>
      	<a href='/demoServlet?k1=abcd&k2=<%=URLEncoder.encode("我爱编程","UTF-8")%>'>URL中文</a>
      </body>
      </html>
      
    • 后端相关代码

      @WebServlet(urlPatterns = "/demoServlet")
      public class DemoServlet extends HttpServlet {
          @Override
          protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
              request.setCharacterEncoding("UTF-8");
              String queryString = request.getQueryString();
              String res = URLDecoder.decode(queryString, "UTF-8");
              System.out.println(res);
      
              String k1 = request.getParameter("k1");
              System.out.println(k1);
              String k2 = request.getParameter("k2");
              res = URLDecoder.decode(k2, "UTF-8");
              System.out.println(res);
          }
      }
      

    备注:本示例在本地tomcat中测试结果正确
    在这里插入图片描述

    示例2:前端URL的参数没有使用编码

    • 前端代码

      <%@ page import="java.net.URLEncoder" %>
      <%@ page contentType="text/html;charset=UTF-8" language="java" %>
      <html>
      <head>
          <title>login</title>
          <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
      </head>
      <body>
      	<a href='/demoServlet?k1=abcd&k2=我爱编程'>URL中文</a><br>
      </body>
      </html>
      
    • 后端相关代码

      @WebServlet(urlPatterns = "/demoServlet")
      public class DemoServlet extends HttpServlet {
          @Override
          protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
              doGet(req,resp);
          }
          @Override
          protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
              request.setCharacterEncoding("UTF-8");
              String k1 = request.getParameter("k1");
              System.out.println(k1);
              String k2 = request.getParameter("k2");
              String res = new String(k2.getBytes("UTF-8"), "UTF-8");
              System.out.println(res);
          }
      }
      

    备注:本示例在本地tomcat中测试结果正确
    在这里插入图片描述

    Post乱码

    post乱码包含包括post请求乱码post输出乱码两种情况,解决方案。

    • n前端代码

      <%@ page contentType="text/html;charset=UTF-8" language="java" %>
      <html>
      <head>
          <title>login</title>
          <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
      </head>
      <body>
          <form action="/demoServlet" method="post">
              用户名:<input type="text" name="uname"><br>
              <input type="submit">
          </form>
      </body>
      </html>
      
    • 后端代码

      @WebServlet(urlPatterns = "/demoServlet")
      public class DemoServlet extends HttpServlet {
          @Override
          protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
              request.setCharacterEncoding("UTF-8");
              response.setCharacterEncoding("UTF-8");
              response.setContentType("text/html;charset=utf-8");
      
              String uname = request.getParameter("uname");
              System.out.println(uname);
              PrintWriter out = response.getWriter();
              out.write("欢迎您:" + uname);
              out.flush();
              out.close();
          }
      
      }
      
    • 运行

    • 在这里插入图片描述
      控制台输出结果:
      在这里插入图片描述
      页面结果:
      在这里插入图片描述

    展开全文
  • Java开发当中,经常遇到中文乱码问题,一般分为GET请求中文乱码POST请求中文乱码JSP页面中文乱码。 二、解决办法 2.1 POST请求中文乱码 这个情况,解决办法最简单,在WEB-INF/web.xml中配置utf-8编码过滤器 ...

    一、问题

    Java开发当中,经常遇到中文乱码问题,一般分为GET请求中文乱码、POST请求中文乱码、JSP页面中文乱码。

    二、解决办法

    2.1 POST请求中文乱码

    这个情况,解决办法最简单,在WEB-INF/web.xml中配置utf-8编码过滤器

    <!-- 配置post请求编码过滤器,统一设置为utf-8 -->
    <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>
    	<init-param>
    		<param-name>forceEncoding</param-name>
    		<param-value>true</param-value>
    	</init-param>
    </filter>
    <filter-mapping>
    	<filter-name>encodingFilter</filter-name>
    	<url-pattern>/*</url-pattern>
    </filter-mapping>

    2.2 GET请求中文乱码

    Tomcat/conf/server.xml中添加URIEncoding="UTF-8"

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

    如果上述2种方法都没有配置,也可以直接在java代码当中实现中文参数的编码格式转换,这里有一段给大家贴一段代码

    String name=request.getParameter("name");
    name=new String(name.getBytes("iso8859-1"),"utf-8");

    PS:Java代码说明

    1.默认所有的GET请求先去采用Tomat配置的编码格式;
    2.Tomcat没有配置编码格式,则默认是iso8859-1编码格式,这时候后台程序代码才需要通过以上Java代码转换参数编码格式为utf-8;
    3.Tomcat已经配置utf-8编码格式,就不需要再进行转码了。重复UTF-8转UTF-8,也会造成乱码。
    4.此段代码学习,可参考这位同志的博文了解了解  http://blog.csdn.net/xingshen100/article/details/13614009

     

    2.3 JSP界面中文乱码

    只需要在每一个jsp文件开头,添加以下代码

    <%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>

     

    展开全文
  • jsp中文乱码问题(get和post

    千次阅读 2016-12-28 16:56:31
    这次遇到是post/get参数递交方式在有些情况下也会导致乱码,具体解决方式参考一些网站,总结如下: 表单提交中,method=”GET” 为默认值,通过url提交过去,形式为:http://localhost:8081/test.jsp?use
  • 当提交的数据中含有中文(比如变量姓名的值为中文)时,mysql_insert.jsp页面上显示新增的那条记录中的相应中文(姓名的值)乱码
  • jsp关于post乱码的问题(url中有中文) 最近本人在开发jsp工程项目时发现一个问题,在Action中的url传递参数有中文时,且又是以post方式传递,会出现中文乱码现象,对此个人有一个疑问了,其它并不是get方式会出现...
  • JSP中文乱码问题综述,中文乱码解决大全,表单使用Post方式提交后接收到的乱码问题,表单get提交方式的乱码处理方式,上传文件时的乱码解决,Java代码关于url请求,接受参数的乱码,关于jsp在MyEclipse中打开的乱码问题,...
  • jsp开发中经常遇到中文乱码的问题,遇到中文乱码时只要保证以下几处设置好编码就能解决中文乱码 JSP网页开头处: . . . . ; charset=utf-8" /> . 这
  • 解决jsp提交乱码的问题 可以解决get post乱码问题
  • 本文首先从六个方面给出了在使用JSP过程中可能出现中文乱码的情况,具体包括JSP页面中文乱码JSP源文件中文乱码、GET 请求的请求参数为中文乱码POST 请求的请求参数为中文乱码四种情形,并针对每种情形给出了...
  • JSP中文乱码问题

    2014-02-10 10:12:38
    解决JSP中文乱码问题 大家在JSP的开发过程中,经常出现中文乱码的问题,可能一至困扰着大家,现把JSP开发中遇到的中文乱码的问题及解决办法写出来供大家参考。首先了解一下Java中文问题的由来: Java的内核和class...
  • JSP乱码解决办法

    2012-02-24 22:39:28
    JSP中解决POST方式和GET方式产生乱码的解决办法
  • jsp乱码

    2019-08-18 09:51:50
    java api Enumeration 乱码的原因是它不是utf-8 解决响应时乱码 ...charset=utf-8”); response.setcharacterencoding(“utf-8”); 解决请求时乱码 request.setcharacterencoding(“utf-8”);...get和post的区别: | ...
  • JSP告别乱码

    2012-02-26 16:18:19
    1网页浏览中文内容乱码 乱码了吗 ... 乱码了吗 ...2调用Servlet页面显示乱码 ...3POST表单传递中文参数乱码(更好的方法是使用过滤器) 用户名: 密码: 用户名: 密码:
  • IDEA Jsp乱码大全

    2020-07-06 20:31:52
    主要包括JSP页面乱码JSP源文件乱码、GET请求中的乱码POST请求中的乱码。 解决方案:JSP中文乱码问题终极解决方案(下) 二 控制台输出乱码 解决方案:彻底解决Intellij IDEA中文乱码问题 三 .java文件编译后乱码 ...
  • request.setCharacterEncoding(encoding);无法解决。 在页面也无法解决。
  • jsppost方式请求乱码

    2017-01-06 10:29:20
    jsppost方式请求一般不会乱码,如果乱码加上这句: 解决办法一 request.setCharacterEncoding("utf-8"); 而get方式请求,若url含非西欧编码必然会乱码,处理方式: request.setCharacter...
  • jsp中文乱码

    千次阅读 2012-03-15 21:43:06
    自从接触Java和JSP以来,就不断与Java的中文乱码问题打交道,现在终于得到了彻底的解决,现将我们的解决心得与大家共享。  一、Java中文问题的由来  Java的内核和class文件是基于unicode的,这使Java程序...
  • jsp servlet 乱码

    2013-07-20 17:11:41
    JSP和Servlet的中文乱码处理 前几天学习了JSP和Servlet中有关中文乱码的一些...在进行表单提交的时候,经常提交一些中文,自然就避免不了出现中文乱码的情况,对于表单来说有两种提交方式:get和post提交方式。所以
  • JSP中文乱码问题终极解决方案(下)

    万次阅读 多人点赞 2017-02-19 22:42:23
    本文首先从四个方面给出了在使用JSP过程中可能出现中文乱码的情形,具体包括JSP页面中文乱码JSP源文件中文乱码、GET 请求的请求参数为中文乱码POST 请求的请求参数为中文乱码四种情形,并针对每种情形给出了...
  • jsp各种乱码解决

    千次阅读 2012-08-13 22:29:04
    一、JSP页面显示乱码 二、表单提交中文时出现乱码 三、数据库连接 大家在JSP的开发过程中,经常出现中文乱码的问题,可能一至困扰着您,我现在把我在JSP开发中遇到 的中文乱码的问题及解决办法写出来供...
  • 解决JSP中文乱码

    千次阅读 2017-09-22 11:00:43
    JSP编码设置:将创建的JSP代码的(默认在第一行); charset=ISO-8859-1" pageEncoding="ISO-8859-1"%>替换成; charset=UTF-8" pageEncoding

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 35,130
精华内容 14,052
关键字:

jsppost乱码