Java Web解决解析乱码和响应乱码
package cn.edu.aynu.rjxy.servlet; import java.io.IOException;
import java.io.PrintWriter; import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse; public class AServlet extends HttpServlet {
/*get方式请求时调用的方法
* 什么是get请求?
* 在地址栏输入用户名和密码、超链接、直接在method里面写上get
* get没有请求体 无法设置请求体
* 首先需要获取到username和psw
* 然后把字符串回退为字节数组
* 使用ISO-8859-1编码方式解码
* 把字节数组重新组装成字符串,使用UTF-8编码方式
*
*/
public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
request.setCharacterEncoding("UTF-8");
//根据参数名获取参数值
String username = request.getParameter("username");
String psw = request.getParameter("psw"); //使用ISO-8859-1把username的值回退成字节数组
byte[] b = username.getBytes("ISO-8859-1");
//使用UTF-8把字节数组重新解码
username = new String(b,"UTF-8");
//响应输出流的编码方式是UTF-8 客户端、浏览器解码方式也为UTF-8
response.setContentType("text/html;charset=utf-8");
//输入到界面上
response.getWriter().print("username="+username);
response.getWriter().print("psw="+psw);
//输入到控制台上
System.out.println("username="+username);
System.out.println("psw="+psw);
} //post方式请求调用的方法
public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
/*post请求的解码处理 乱码出现的根源是:编码方式和解码方式不一致。
* tomcat服务器默认的解码方式是ISO-8859-1不支持中文。由于post请求
* 有请求体,请求参数是放在请求体中的,设置请求体的解码方式,需要调用
* 方法request.setCharacterEncoding("UTF-8");支持中文
*/
request.setCharacterEncoding("UTF-8");
//根据参数名获取参数值
String username = request.getParameter("username");
String psw = request.getParameter("psw");
//根据参数名获取多个参数值
String[] hobby = request.getParameterValues("hobby");
//数组的遍历
for (int i = 0; i < hobby.length; i++) {
System.out.println(hobby[i]);
}
//响应输出流的编码方式是UTF-8 客户端、浏览器解码方式也为UTF-8
response.setContentType("text/html;charset=utf-8");
//输入到界面上
response.getWriter().print("username="+username);
response.getWriter().print("psw="+psw);
//输入到控制台上
System.out.println("username="+username);
System.out.println("psw="+psw);
} }
AServlet.java
a.jsp
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<base href="<%=basePath%>"> <title>My JSP 'a.jsp' starting page</title> <meta http-equiv="pragma" content="no-cache">
<meta http-equiv="cache-control" content="no-cache">
<meta http-equiv="expires" content="0">
<meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
<meta http-equiv="description" content="This is my page">
<!--
<link rel="stylesheet" type="text/css" href="styles.css">
--> </head> <body>
<form action = "/day9/AServlet" method = "post">
用户名:<input type = "text" name = "username"/><br/>
密 码:<input type = "password" name = "psw"/><br/>
爱好:<input type = "checkbox" name = "hobby" value ="Swimming">游泳
<input type = "checkbox" name = "hobby" value ="Sing">唱歌
<input type = "checkbox" name = "hobby" value ="Run">跑步
<input type = "checkbox" name = "hobby" value ="Read">阅读<br>
<input type = "submit" value="提交">
</form>
<hr>
<a href="/day9/AServlet?username=李四&psw=123">get方式请求</a>
</body>
</html>
Java Web解决解析乱码和响应乱码的更多相关文章
- java web 解决Form表单乱码问题
JSP和Servlet的六种中文乱码处理方法 一.表单提交时出现乱码: 在进行表单提交的时候,经常提交一些中文,自然就避免不了出现中文乱码的情况,对于表单来说有两种提交方式:get和post提交方式. ...
- java web 向数据库插入中文数据乱码问题
一.先检查下是 页面返回数据时已经乱码了,还是在插入数据库的时候乱的码. 二.页面返回乱码: 1. Web.XML 文件配置 <!-- 配置编码过滤器 --> <filter&g ...
- soapui-groovy脚本中文乱码及符号乱码、响应乱码解决方案
groovy脚本中文乱码及符号乱码,解决方案: 响应乱码解决方案:
- [Java][Web]解决 Request 的乱码
解决 get 提交的乱码 (手工处理) String username = request.getParameter("username"); username = new Str ...
- 用java代码解决excel打开csv文件乱码问题
Java 读取csv文件后,再保存到磁盘上,然后直接用Excel打开,你会发现里面都是乱码. 贴上代码: public class Test { public static void main(S ...
- java web接口controller测试控制台输出乱码
接口上配置:
- java web解决表单重复提交问题
我们大家再进行web开发的时候,必不可少会遇见表单重复提交问题.今天就来给总结如何解决表单提交问题,欢迎大家交流指正. 首先我们在讨论如何解决表单重复提交问题之前先来解决三个问题:1.什么叫表单重复提 ...
- java web解决表单重复提交
首先我们在讨论如何解决表单重复提交问题之前先来解决三个问题:1.什么叫表单重复提交?2.什么情况下会出现表单重复提交?3.什么情况需要避免表单重复提交? 什么叫表单提交问题,说白了,就是同一份信息,重 ...
- Java Web解决跨域请求
要知道跨域请求就要先了解同源策略,那么什么是同源?什么是不同源?简单来说就是,如果两个资源,包括HTML页面.JavaScript脚本.css样式,对应的协议.域名和端口完全相同,那么这两个资源就是同 ...
随机推荐
- JavaScript知识 一、JS的数据类型
一.JS的数据类型 1.基本类型 JS共有5大基本类型,分别是: 1)Undefined.他只有一个值:undefined.如果一个变量被定义但是没有给他赋值,那么这个时候系统会默认给这个变量赋值为u ...
- 学用MVC4做网站六后台管理:6.1.1管理员登录、6.1.2退出
1.管理员登录 在6.1中已添加控制器[AdministratorController] 在控制器中添加[Login()]action,用来显示登录页面 /// <summary> /// ...
- AngularJS之Service(四)
前言 前面我们讲了控制器.过滤器以及指令,这一节我们来讲讲重大内容之一服务和其中涉及到的工厂. 话题 AngularJS中服务可以说是和DI紧密联系在一起,在应用程序中我们可以通过使用服务来共享代码, ...
- DOM扩展-HTML5、专有扩展
HTML5 与类相关的扩充 1.getElementsByClassName()方法 改方法接受一个参数,即一个包含一或多个类名的字符串,返回带有指定类的所有元素的NodeList.传入多个类型时, ...
- (转)使用minicpan创建本地CPAN
在临时的办公场所网络不畅,有时不能下载cpan上的软件包,所有只能自建一个cpan. 这里使用了工具'minicpan',简单地说:就是把互联网上的CPAN搬到自己的电脑里,它的最初想法来自Randa ...
- Android样式之selector
日常开发当中,难免会出现这样一种情况,为一个按钮.TextView...设置一个点击状态的颜色改变,可能是background背景的改变,也可能是字体颜色的改变,简单点说:默认状态下,字体颜色或者背景 ...
- java中hashMap的排序
hashMap排序,示例: private void test(){ Map<String, List<String>> unSupportedDatesMap=new Has ...
- ORA-00257 archiver error 处理思路
1.首先查下oerr给出的简要说明 2.查询V$RECOVERY_AREA_USAGE信息 3.根据实际空间剩余情况先适当增加归档目录的大小,保证先恢复业务 4.查看备份是否存在问题 1.首先查下oe ...
- Tools - Get technical information from the Internet
Official Sites Overview / QuickStart Guide / Docs / E-books Community / Fourm / Blog Demo / Download ...
- 使用Github进行合作开发
首先需要注册自己的github账号,然后 在本地生成ssh-key: 安装git,在本地任何文件夹上,右键,选择git bash here: 然后: git config --global user. ...