Java Web项目中解决中文乱码方法总结(三种最新方法)

目录
  • 前言
  • 问题背景
  • 下面我说三种方法供大家参考
    • 方法一:
    • 方法二:
    • 第三种方法:
  • Tomcat结构与介绍
    • bin
    • conf
    • lib
    • logs
    • temp
    • webapps
    • work

前言

JavaEE(Java Enterprise Edition),Java企业版,是一个用于企业级web开发平台。最早由Sun公司定制并发布,后由Oracle负责维护。JavaEE平台规范了在开发企业级web应用中的技术标准.
在JavaEE平台共包含了13个技术规范(随着JavaEE版本的变化所包含的技术点的数量会有增多)。它们分别是:JDBC、JNDI、EJB、RMI、Servlet、JSP、XML、JMS、Java IDL、JPA、JTA、JavaMail和JAF。
JAVEE阶段需要学习的核心技能

ServletJSPJSTL/ELJavaBeanMVC模式、过滤器Filter、监听器listener、Ajax 分页

问题背景

package com.mrshun;
/**
 * get请求
 *        获取字符串之后使用new String(name.getBytes("iso-8859-1"),"UTF-8")
 *
 */
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
public class charsetServlet extends HttpServlet {
    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        String name = request.getParameter("name");
        System.out.println("this is doPost"+name);
    }
    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {

        String name = request.getParameter("name");
        //第一种方法
        System.out.println("this is doGet +charset"+new String(name.getBytes("iso-8859-1"),"utf-8"));
        System.out.println("this is doGet"+name);
    }
}
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_4_0.xsd"
         version="4.0">
    <servlet>
        <servlet-name>charsetServlet</servlet-name>
        <servlet-class>com.mrshun.charsetServlet</servlet-class>
    </servlet>
    <servlet-mapping>
        <servlet-name>charsetServlet</servlet-name>
        <url-pattern>/charset</url-pattern>
    </servlet-mapping>
</web-app>

tomact启动项目后在地址栏中输入charset?name=张三,这个时候便被doget方法获取,为啥不是doPost原因你知道吗?

这个时候idea控制台会输出:

运行结果无法识别中文,出现乱码;
出现乱码的原因很简单,就是编码不匹配,无法识别造成的。

下面我说三种方法供大家参考

方法一:

如上面代码:获取字符串之后使用new String(name.getBytes("iso-8859-1"),"UTF-8")
也就是:

System.out.println("this is doGet +charset"+new String(name.getBytes("iso-8859-1"),"utf-8"));

方法二:

protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
    request.setCharacterEncoding("utf-8");
    String name = request.getParameter("name");
    System.out.println("this is doGet"+name);
}

接着修改tomact ----conf----server.xml
建议用Notepad++打开,里面代码自动补全功能很好

正常情况是打出:use便出现后面的内容

useBodyEncodingForURI="true"

第三种方法:

只改conf中server.xml

文章到这就算结束了。

下面是关于Tomcat结构与介绍:

Tomcat结构与介绍

bin

bin目录主要是用来存放tomcat的命令文件,主要有两大类,一类是以.sh结尾的(linux命令),另一类是以.bat结尾的(windows命令)。

conf

conf目录主要是用来存放tomcat的一些配置文件。

lib

lib目录主要用来存放tomcat运行需要加载的jar包。

logs

logs目录用来存放tomcat在运行过程中产生的日志文件。

temp

temp目录用户存放tomcat在运行过程中产生的临时文件。(清空不会对tomcat运行带来影响)

webapps

webapps目录用来存放应用程序,当tomcat启动时会去加载webapps目录下的应用程序。可以以文件夹、war包的形式发布应用。

work

work目录用来存放tomcat在运行时的编译后文件,例如JSP编译后的文件。

到此这篇关于Java Web项目中解决中文乱码方法总结的文章就介绍到这了,更多相关Java Web中文乱码内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

(0)

相关推荐

  • 解决javaWEB中前后台中文乱码问题的3种方法

    中文乱码问题真的是一个很棘手的问题,特别是从前台传到后台之后,都不知道问题出在哪里了.现在分享解决javaWEB中前后台中文乱码问题的3种方法. 方法一: tomcat的自带编码是ISO-8859-1的格式,是不兼容中文的编码的.所以我们从后台接收的时候要注意. 采用相同的格式去接收(ISO-8859-1),然后用能解析的编码(utf-8)去转换.这样我们就能得到能兼容中文的格式了.这样处理之后发往前台.注意:发往前台的时候也需要设置一下 resp.setContentType("text/ht

  • Java Web开发项目中中文乱码解决方法汇总

    Java Web项目中,解决中文乱码方法总结如下 第一种情况:调用jsp页面中文显示乱码 问题描述:通过浏览器调用jsp页面,在浏览器中显示的中文内容出现乱码. 解决方法:首先确认本jsp在编辑器中保存文件内容时,使用的是utf-8的编码格式,然后在jsp页面的开始处添加<%@ pageEncoding="utf-8"%>就可以解决这种中文乱码问题 第二种情况:调用servlet页面显示乱码 问题描述:通过浏览器调用servlet,servlet在浏览器中显示的内容出现乱码

  • Javaweb接收表单数据并处理中文乱码

    前端表单数据 常见的表单项的传值,如: 普通input 单选radio 多选checkbox select下拉选择 textarea文本域 普通 input : name属性值为后台接收时的参数值. 用户名:<input type="text" name="username"><br> 密码:<input type="password" name="password"><br>

  • java web请求和响应中出现中文乱码问题的解析

    说明:在计算机中保存的一切文本信息是以一定的编码表(0,1,0,1)来保存我们所认识的字符(汉字或英文字符),由字符到计算机存储的二进制过程是编码,由读取二进制到文本的过程称为解码.而字符编码有多种不同的编码表,所以,如果编码格式和解码格式不是同一个码表就会出现乱码.想要避免出现乱码,需要使保存和读取时使用相同的码表. 在java web编程中经常会出现乱码,现在详细讲解一下如何进行设置,避免乱码 1 网页编码 在编写网页的时候,需要指定网页的编码格式,使用<meta http-equiv=&quo

  • Java Web项目中解决中文乱码方法总结(三种最新方法)

    目录 前言 问题背景 下面我说三种方法供大家参考 方法一: 方法二: 第三种方法: Tomcat结构与介绍 bin conf lib logs temp webapps work 前言 JavaEE(Java Enterprise Edition),Java企业版,是一个用于企业级web开发平台.最早由Sun公司定制并发布,后由Oracle负责维护.JavaEE平台规范了在开发企业级web应用中的技术标准.在JavaEE平台共包含了13个技术规范(随着JavaEE版本的变化所包含的技术点的数量会

  • Java Web项目中使用Socket通信多线程、长连接的方法

    很多时候在javaweb项目中我们需要用到Socket通信来实现功能,在web中使用Socket我们需要建立一个监听程序,在程序启动时,启动socket监听.我们的应用场景是在java项目中,需要外接如一个硬件设备,通过tcp通信,获取设备传上来的数据,并对数据做回应. 先看一下web的监听代码: import javax.servlet.ServletContextEvent; import javax.servlet.ServletContextListener; public class

  • Java Web项目中连接Access数据库的配置方法

    老师决定期末考试采用access数据库实现增删改查,我认为现在的我已经没有问题了,但是以前都是在JSP页面中连接access数据库,无论是以下的那种方式都进行了连接的练习,但是现在我想让我的项目中的访问access数据库的java代码,封装到DAO中,在DAO中连接数据库,没有和Servlet API有任何的关系.对于大多数人都会优先选择使用ODBC数据源的方式或者是使用绝对路径的方式连接access数据库,但是我个人认为,这样做不太好,如果采用这样的方式,项目做好后,放到他人的服务器上是无法运

  • linux下用renameTo方法修改java web项目中文件夹名称的实例

    经测试,在Linux环境中安装tomcat,然后启动其中的项目,在项目中使用java.io.File.renameTo(File dest)方法可行. 之前在本地运行代码可以修改,然后传到Linux服务器上一直无法实现功能,自己一直在捣鼓,以为是window环境和Linux环境不同的原因导致,后面发现在项目中使用renameTo方法修改文件夹名称不行是因为之前改了java web项目中的js,在js中传入值到后台,后台根据值来修改文件夹名称.由于没清除缓存导致js中的代码没有刷新,所以一直出现错

  • 在Java Web项目中添加定时任务的方法

    在Java Web程序中加入定时任务,这里介绍两种方式:1.使用监听器注入:2.使用Spring注解@Scheduled注入. 推荐使用第二种形式. 一.使用监听器注入 ①:创建监听器类: import javax.servlet.ServletContextEvent; import javax.servlet.ServletContextListener; public class TimerDataTaskListener implements ServletContextListener

  • Java web项目中的强制登录功能实现代码

    为了避免直接进入项目中存在的页面,使用filter过滤器 新建一个类loginFilter: package com.tjcu.filter; import com.tjcu.entity.User; import javax.servlet.*; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import javax.servlet.http.HttpSe

  • jquery获取URL中参数解决中文乱码问题的两种方法

    从A页面通过url传参到B页面时,解析url参数可以用下面两种方法: 方法一:正则分析法 复制代码 代码如下: function getQueryString(name) { var reg = new RegExp("(^|&)" + name + "=([^&]*)(&|$)", "i"); var r = window.location.search.substr(1).match(reg); if (r != nu

  • Java Web项目中验证码功能的制作攻略

    一.前言 在表单页面中使用验证码的好处在于有效防止用户恶意提交表单,或者使用外挂非法攻击系统. 二.准备条件 1.一个普通的web项目 webProject: 2.一个web服务器 Tomcat. 三.实现思路: 1.自定义一个servlet  VerifyCodeServlet 画一个包含验证字符的验证码图片,这里的图片需要使用Graphics2D手动去画: 2.在具体页面使用img标签的src引用这个servlet即可显示servlet: 3.因为画图的时候把验证码信息放入了session,

  • Java读写.properties文件解决中文乱码问题

    一般使用到properties配置文件,一般都是在spring项目里面,直接由框架帮你读,当然,你也得考虑到编码的问题. 但是现在要是要求使用Java直接读写properties文件,就发现很多的问题,比如,我的properties文件的编码竟然不是utf-8的.或者说我压根就没考虑到这个问题. 再比如,当properties文件里面有汉子的时候,发现读写的汉字乱码了,在我这是因为我的电脑默认编码是gbk,但是读的时候,又没有设置编码,搞出的问题. 下面直接上代码,看问题. package co

  • Java Web项目中实现文件下载功能的实例教程

    需求:实现一个具有文件下载功能的网页,主要下载压缩包和图片 两种实现方法: 一:通过超链接实现下载 在HTML网页中,通过超链接链接到要下载的文件的地址 <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>Insert title here</title> </head> <body> <h1>通过链接下载文件&

随机推荐