响应信息 通过状态码:判断响应是否成功
Status:
200 -----成功响应 500 -----服务器出现了异常(servlet(和业务相关的数据)由 tomcat) 404 -----请求 url 路径有问题 302 -----进一步请求
响应头: loaction:一个地址 + 302:重定向 简写方式:response。sendRedirect (".项目名称/hello.html")
重定向的特点:
发送了两次请求(产生两个 request 对象)request:本身域对象(共享数据)重定向 / 请求转发(servletContext对象)跳转页面 refersh:定时刷新或者经过 n 秒跳转页面 响应头(已下载方式打开) 文件下载:使用第三方 jar 包 commons-io
重定向——>过程中。有几个request对象? 请求转发——>过程中,有几个request对象?
package com.github.urlpattern; 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 MappingDemo1 extends HttpServlet { protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { System.out.println("mappingDemo1.doGet()方法调用了..."); } protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { } } package com.github.urlpattern; 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 MappingDemo2 extends HttpServlet { protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { System.out.println("mappingDemo2.doGet()方法调用了..."); } protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { } }响应头:loaction + status(302) -------进一步请求 重定向:原理:location + 302
adv.html:
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>广告页面</title> </head> <body> 广告页面<br> <a href="/RequestDemo5">跳转到资源地址</a> </body> </html> package com.github.response; import javax.servlet.ServletException; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import java.io.IOException; /** * 请求重定向 * location请求头+302状态码 */ public class ResponseDemo1 extends HttpServlet { protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { // 重定向的原理: // 设置状态302 // 1. // response.setStatus(302); // 进一步请求服务器 // // 设置location响应头 // response.setHeader("location","/adv.html"); // 2. // 简便的方法 response.sendRedirect("/adv.html"); // 3. // 地址栏不会发生变法,服务器行为 //request.getRequestDispatcher("/adv.html").forward(request,response); } protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { } }地址栏输入: 回车之后:
3秒之后刷新页面,重定向到一个新的页面:adv.html:
直接开始下载内容: