JavaWeb入门:HttpResponse和HttpRequest详解
什么是HttpRequest和HttpResponse
HttpRequest和HttpResponse是JavaWeb开发中最基本的两个类,用于处理客户端发来的请求和服务器返回给客户端的响应。
HttpRequest类代表客户端发来的请求,包含请求的方法、URL、请求头等信息。HttpResponse类代表服务器返回给客户端的响应,包含响应的状态、响应头、响应体等信息。
HttpRequest类详解
获取请求方法和URL
通过HttpRequest类的getMethod()方法可以获取请求的方法,get请求和post请求的方法不同。
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
//获取请求方法
String method = request.getMethod();
//获取请求URL
String requestURL = request.getRequestURL().toString();
//输出请求的方法和URL
response.getWriter().write("Request Method: " + method + ", URL: " + requestURL);
}
获取请求头
HttpRequest类提供了很多获取请求头的方法,常用的有以下几个:
//获取请求头referer
String referer = request.getHeader("Referer");
//获取请求头user-agent
String userAgent = request.getHeader("User-Agent");
//获取请求头accept
String accept = request.getHeader("Accept");
HttpResponse类详解
设置响应状态
通过HttpResponse类的setStatus()方法可以设置响应状态,常见的响应状态有200、404、500等。
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
//设置响应状态为200
response.setStatus(HttpServletResponse.SC_OK);
//输出响应信息
response.getWriter().write("Hello world!");
}
设置响应头
通过HttpResponse类的setHeader()方法可以设置响应头,常用的响应头有Content-Type、Content-Length、Cache-Control等。
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
//设置响应头Content-Type
response.setHeader("Content-Type", "text/html;charset=UTF-8");
//设置响应头Cache-Control
response.setHeader("Cache-Control", "no-cache");
//输出响应信息
response.getWriter().write("Hello world!");
}
示例一:获取请求参数
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
//获取请求参数name
String name = request.getParameter("name");
//输出请求参数name
response.getWriter().write("Name: " + name);
}
示例二:重定向
通过HttpResponse类的sendRedirect()方法可以进行重定向。
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
//重定向到百度首页
response.sendRedirect("http://www.baidu.com");
}
以上就是关于HttpRequest和HttpResponse的详细讲解,希望对初学者有所帮助。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:JavaWeb入门:HttpResponse和HttpRequest详解 - Python技术站