java web 学习笔记 编码问题总结

时间:2022-09-18 22:05:46


  java web 学习笔记 编码问题总结

1.非form表单中提交的中文参数---------------------------传递给Servlet服务器时,默认以iso-8859-1解码。所以要用iso-8859-1编码,在以utf-8编码

代码示例;

String username = request.getParameter("username");

//将jsp页面用UTF-8中文文本,在服务器端默认用ISO-8859-1解码接收,然后在服务器编码用iso-8859-1编码,然后用utf-8编码解码返回。

username = new String(username.getBytes("ISO-8859-1"),"UTF-8");

From表单中传递给Servlet服务器时,如果有中文。

Post提交时,

request.setCharacterEncoding(“utf-8”);

response.setContentType("text/html;charset=utf-8");

如上语句有两个功能,一是:告诉服务器用utf-8编码中文。二是告诉浏览器默认用utf-8接收中文。

Form 表单中以Get提交(以上代码已经不起作用)浏览器默认在地址框中用iso-8859-1解码

具体处理方式如下:

解决方式:

String name = request.getParameter(“name”);

Name = new String(“iso-8859-1”,”utf-8”);解决

过滤器  -----全站中文乱码的解决

package com.itheima.filter;

import java.io.IOException;

import java.io.UnsupportedEncodingException;

import javax.servlet.Filter;

import javax.servlet.FilterChain;

import javax.servlet.FilterConfig;

import javax.servlet.ServletException;

import javax.servlet.ServletRequest;

import javax.servlet.ServletResponse;

import javax.servlet.http.HttpServletRequest;

import javax.servlet.http.HttpServletRequestWrapper;

import javax.servlet.http.HttpServletResponse;

public class SetAllCharacterEncodingFilter implements Filter {

FilterConfig filterconfig;

public void init(FilterConfig filterconfig) throws ServletException {

this.filterconfig = filterconfig;

}

public void doFilter(ServletRequest req, ServletResponse resp, FilterChain chain) throws IOException, ServletException {

HttpServletRequest request;

HttpServletResponse response;

try {

request = (HttpServletRequest) req;

response = (HttpServletResponse) resp;

} catch (ClassCastException e) {

throw new ServletException("non-HTTP request or response");

}

String value = filterconfig.getInitParameter("encoding");

if(value==null)

{

value = "UTF-8";

}

request.setCharacterEncoding(value);//POST请求参数中文

response.setContentType("text/html;charset="+value);

MyHttpServletRequest myrequest = new MyHttpServletRequest(request);

chain.doFilter(myrequest, response);

}

public void destroy() {

}

}

class MyHttpServletRequest extends HttpServletRequestWrapper

{

public MyHttpServletRequest(HttpServletRequest request)

{

super(request);

}

public String getParameter(String name)

{

String method  = super.getMethod();

String value = super.getParameter(name);

if("get".equalsIgnoreCase(method))

{

try {

value = new String(value.getBytes("ISO-8859-1"),"UTF-8");

} catch (UnsupportedEncodingException e) {

e.printStackTrace();

}

}

return value;

}

}

package com.itheima.servlet;

import java.io.IOException;

import javax.servlet.ServletException;

import javax.servlet.http.HttpServlet;

import javax.servlet.http.HttpServletRequest;

import javax.servlet.http.HttpServletResponse;

public class ServletDemo extends HttpServlet {

public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {

String name = request.getParameter("name");

response.getWriter().write("get方式提交表单:"+name);

}

public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {

String name = request.getParameter("name");

response.getWriter().write("post方式提交表单"+name);

}

}

java web 学习笔记 编码问题总结的更多相关文章

  1. Java Web学习笔记之---EL和JSTL

    Java Web学习笔记之---EL和JSTL (一)EL (1)EL作用 Expression  Language(表达式语言),目的是代替JSP页面中复杂的代码 (2)EL表达式 ${变量名} ( ...

  2. [原创]java WEB学习笔记95:Hibernate 目录

    本博客的目的:①总结自己的学习过程,相当于学习笔记 ②将自己的经验分享给大家,相互学习,互相交流,不可商用 内容难免出现问题,欢迎指正,交流,探讨,可以留言,也可以通过以下方式联系. 本人互联网技术爱 ...

  3. [原创]java WEB学习笔记75:Struts2 学习之路-- 总结 和 目录

    本博客的目的:①总结自己的学习过程,相当于学习笔记 ②将自己的经验分享给大家,相互学习,互相交流,不可商用 内容难免出现问题,欢迎指正,交流,探讨,可以留言,也可以通过以下方式联系. 本人互联网技术爱 ...

  4. [原创]java WEB学习笔记66:Struts2 学习之路--Struts的CRUD操作( 查看 / 删除/ 添加) 使用 paramsPrepareParamsStack 重构代码 ,PrepareInterceptor拦截器,paramsPrepareParamsStack 拦截器栈

    本博客的目的:①总结自己的学习过程,相当于学习笔记 ②将自己的经验分享给大家,相互学习,互相交流,不可商用 内容难免出现问题,欢迎指正,交流,探讨,可以留言,也可以通过以下方式联系. 本人互联网技术爱 ...

  5. Java Web 学习笔记 1

    Java Web 学习笔记 1 一.Web开发基础 1-1 Java Web 应用开发概述 1.1.1 C/S C/S(Client/Server)服务器通常采用高性能的PC机或工作站,并采用大型数据 ...

  6. [原创]java WEB学习笔记11:HttpServlet(HttpServletRequest HttpServletRsponse) 以及关于 Servlet 小结

    本博客为原创:综合 尚硅谷(http://www.atguigu.com)的系统教程(深表感谢)和 网络上的现有资源(博客,文档,图书等),资源的出处我会标明 本博客的目的:①总结自己的学习过程,相当 ...

  7. Java Web学习笔记之---JSP

    Java Web学习笔记之---JSP (一)JSP常用语法 (1)HTML注释 <!--所要注释的内容 --> 在客户端显示一个注释. (2)隐藏注释 <%--所要注释的内容--% ...

  8. JAVA Web学习笔记

    JAVA Web学习笔记 1.JSP (java服务器页面) 锁定 本词条由“科普中国”百科科学词条编写与应用工作项目 审核 . JSP全名为Java Server Pages,中文名叫java服务器 ...

  9. &lbrack;原创&rsqb;java WEB学习笔记45:自定义HttpFilter类,理解多个Filter 代码的执行顺序,Filterdemo:禁用浏览器缓存的Filter,字符编码的Filter,检查用户是否登陆过的Filter

    本博客为原创:综合 尚硅谷(http://www.atguigu.com)的系统教程(深表感谢)和 网络上的现有资源(博客,文档,图书等),资源的出处我会标明 本博客的目的:①总结自己的学习过程,相当 ...

随机推荐

  1. php特殊用法

    1.将字符串转换成可执行的php代码(简单的代码)--eval() <?php $str="echo phpinfo();"; echo eval( $str);

  2. Android线程中设置控件

    在Android中经常出现多线程中设置控件的值报错的情况,今天教大家封装一个简单的类避免这样的问题,同样也调用实现也非常的方便. 自定义类: /** * Created by wade on 2016 ...

  3. Exception in thread &OpenCurlyDoubleQuote;main” com&period;google&period;gson&period;JsonSyntaxException&colon; java&period;lang&period;NumberFormatException&colon; empty String

    String json="A valid json"; Job job = new Gson().fromJson(json, Job.class); Exception in t ...

  4. 第七篇 Integration Services:中级工作流管理

    本篇文章是Integration Services系列的第七篇,详细内容请参考原文. 简介在上一篇文章,我们创建了一个新的SSIS包,学习了SSIS中的脚本任务和优先约束,并检查包的MaxConcur ...

  5. javascript笔记4-函数表达式

    一般形式的创建函数,在执行代码之前会先读取函数声明,所以可以把函数声明写在函数调用的下面: sayHi(); function sayHi(){ alert("Hi!"); } 使 ...

  6. oracle 学习笔记 复制表结构

    1.复制表结构以及数据 create table d_table_name as select * from s_table_name;  ---注意并不会创建索引 2.只复制表结构 create t ...

  7. WPFの获取屏幕分辨率并自适应

    double x = SystemParameters.WorkArea.Width;//得到屏幕工作区域宽度 double y = SystemParameters.WorkArea.Height; ...

  8. MyBatis教程目录

    MyBatis教程目录 2017-10-18  摘自 YSOcean MyBatis教程目录: 1 mybatis 详解(一)------JDBC 2 mybatis 详解(二)------入门实例( ...

  9. Pma模块详解,对用户登录linux等进行限制,密码修改限制等

    PAM详细介绍 2014-04-02 09:26:41 标签:PAM 原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 .作者信息和本声明.否则将追究法律责任.http://lidefu ...

  10. 第一章 面向对象软件工程与UML

    这个OOAD讲的都是很抽象的东西!老师说这个在现在的学习中用到的不是很多,但是以后出去工作的时候就会常用到的. 首先来了解OOAD是讲什么的. OOAD:Object Oriented Analysi ...