笔记:
使用字节流响应中文
编写代码
向页面输出中文是否会有乱码?不一定!
原因:其实这个乱码的产生,与中文转成字节数组,以及浏览器的打开方式(打开的时候采用的默认字符集)有关
解决:将中文转成字节数组的时候,和浏览器默认打开的时候采用的字符集一致即可
使用字符流响应中文
编写代码
向页面输出中文是否会有乱码?一定乱码
原因:字符流是有缓冲区的,Response获得字符流,老外设计默认的缓冲编码是ISO-8859-1,这个字符集不支持中文
解决:设置Response获得字符流缓冲区的编码,和设置浏览器默认打开时采用的字符集一致即可
Request对象的概述
什么是Request对象
我们开发的软件都是B/S架构的软件,从浏览器向服务器提交一些数据时,将这些数据内容进行封装,封装成一个请求对象,即Request对象

<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
</head>
<body>
<form action="yhzhuce" method="post">
<tr align="center"><td>请填写注册信息</td></tr>
<tr><td>帐号:<input type="text" name="zh"></td></tr>
<tr><td>密码:<input type="text" name="mima"></td></tr>
<tr><td>姓名:<input type="text" name="xingming"></td></tr>
<tr><td>性别:<input type="text" name="sex"></td></tr>
<tr><td>年龄:<input type="text" name="age"></td></tr>
<tr><td>手机号码:<input type="text" name="num"></td></tr>
<tr align="center"><td><input type="submit" value="提交信息"></td></tr>
</table>
</form>
</body>
</html>
package zhuce;
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 zhuce extends HttpServlet {
private static final long serialVersionUID = 1L;
public zhuce() {
super();
}
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
response.setContentType("text/html");
response.setCharacterEncoding("UTF-8");
String z=request.getParameter("zh");
String m=request.getParameter("mima");
String nm=request.getParameter("xingming");
String s=request.getParameter("sex");
String a=request.getParameter("age");
String n=request.getParameter("num");
if(nm!=""&&s!=""&&a!=""&&n!=""&&z!=""&&m!="")
{
response.getWriter().write("注册成功!");
}
else
{
response.getWriter().write("请3秒后重新填写资料!");
response.setHeader("refresh", "3;URL=zhuceye.jsp");
}
//response.getWriter().append("Served at: ").append(request.getContextPath());
}
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
doGet(request, response);
}
}