Web服务器在调用service()方法之前,都会创建两个对象,分别是HttpServletRequest和HttpServletResponse,其中HttpServletRequest用于封装HTTP请求消息,简称request对象;HttpServletResponse用于封装HTTP响应消息,简称response对象;request对象和response对象在请求Servlet过程中至关重要
解决中文输出乱码的问题
在XML完成配置servlet的映射后,启动tomcat服务器,在浏览器输入地址访问,显示结果与文件当中的完全不同,是发生了乱码问题,原因是response对象的字符输出流在编码时采用的是ISO-8859-1的字符码表,该码表并不兼容中文。在 httpservletresponse接口中,提供一个setcharacter encoding()方法,该方法用于设置字符编码方式,设置字符编码使用的码表为utf-8.
HttpServletResponse对象介绍
接口HttpServletResponse
实现的接口:ServletResponse
扩展ServletResponse接口以在发送响应时提供特定于HTTP的功能。例如,它具有访问HTTP标头和cookie的方法。
servlet容器创建一个HttpServletResponse对象,并将其作为一个参数传递给servlet的服务方法(doGet,doPost等)。
HttpServletResponse对象代表服务器的响应。这个对象中封装了向客户端发送数据、发送响应头,发送响应状态码的方法。
}
public void doPost(HttpServletRequest request,
HttpServletResponse response)throws ServletException, IOException {
doGet(request, response);
}
}
在web.xml中配置初始化参数和类的映射
RefreshServlet cn.edu.demo04.response.RefreshServlet RefreshServlet /RefreshServletpackage net.test.servlet;
import javax.servlet.ServletException;
import javax.servlet.ServletOutputStream;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
@WebServlet(name=“helloServlet”,urlPatterns="/parameter") //配置servlet
public class HelloServlet extends HttpServlet { //继承HttpServlet
//重写doPost方法
@Override
protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
}
//3、重写doGet方法
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
//获取请求参数
String username = req.getParameter("username");
String password = req.getParameter("password");
System.out.println("用户名:"+username);
System.out.println("密码:"+password);
//响应
String result="登录成功,欢迎你";
ServletOutputStream outputStream = resp.getOutputStream();
outputStream.write(result.getBytes());
}
}