临沂建设规划局网站,网站建设500错误代码,做相册视频的网站,网站搭建的流程请求转发与重定向的区别和执行流程 文章目录请求转发与重定向的区别和执行流程1 请求转发与重定向区别2 现实生活的例子2.1 重定向2.2 请求转发3 重定向-流程图、代码、结果3.1 流程图3.2 代码BoyServlet3.3 代码GirlServlet3.4 web.xml文件3.5 结果4 请求转发-流程图、代码、结…请求转发与重定向的区别和执行流程 文章目录请求转发与重定向的区别和执行流程1 请求转发与重定向区别2 现实生活的例子2.1 重定向2.2 请求转发3 重定向-流程图、代码、结果3.1 流程图3.2 代码BoyServlet3.3 代码GirlServlet3.4 web.xml文件3.5 结果4 请求转发-流程图、代码、结果4.1 请求转发-流程图4.2 代码BoyServlet4.3 代码GirlServlet4.4 web.xml文件4.5 结果本文通过现实生活的例子引出重定向和请求转发通过图解的方式讲解了整执行流程希望可以帮助到大家 1 请求转发与重定向区别
序号问题重定向请求转发1第二次请求谁请求的浏览器服务器2浏览器发送了几次请求2次以上1次3servlet可以共享request吗不可以可以4地址栏是否发生改变是不是5浏览器地址栏显示的哪一次访问地址最后一次第一次6可以跳转到什么资源任意资源项目内部7第二次的请求路径是绝对路径内部路径2 现实生活的例子
2.1 重定向 ①A对B说帮忙拿下快递 ②B对A说没有空你找下C吧 ③A对C说帮忙拿下快递 ④C然后拿了快递给A
2.2 请求转发 ①A对B说帮忙拿下快递 ②第二步B没有空直接找让C帮A拿下快递 ③C拿到了快递并返回给A 3 重定向-流程图、代码、结果
3.1 流程图 3.2 代码BoyServlet
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 BoyServlet extends HttpServlet {protected void doGet(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException {// 获取请求携带的idString id request.getParameter(id);System.out.println(A对B说帮我拿下快递,id号是: id);System.out.println(B对A说我没有空你找下C);System.out.println(----分割线----);// 重定向方式1response.setStatus(302);response.setHeader(location, /redirect/girl);// 重定向方式2(正常用此方法)// response.sendRedirect(/redirect/girl);}protected void doPost(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException {doGet(request, response);}
}3.3 代码GirlServlet
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 GirlServlet extends HttpServlet {protected void doGet(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException {//设置浏览器解析的格式否则浏览器会出现乱码response.setContentType(text/html;charsetutf-8);//获取请求携带的idString id request.getParameter(id);System.out.println(A对C说帮我拿下快递id号是id);System.out.println(拿到快递了);//获取输出流PrintWriter writer response.getWriter();//将信息返回给浏览器writer.println(拿到快递了);}protected void doPost(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException {doGet(request, response);}
}3.4 web.xml文件
?xml version1.0 encodingUTF-8?
web-app xmlns:xsihttp://www.w3.org/2001/XMLSchema-instance xmlnshttp://java.sun.com/xml/ns/javaee xsi:schemaLocationhttp://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd idWebApp_ID version2.5display-nameredirect/display-namewelcome-file-listwelcome-fileindex.html/welcome-filewelcome-fileindex.htm/welcome-filewelcome-fileindex.jsp/welcome-filewelcome-filedefault.html/welcome-filewelcome-filedefault.htm/welcome-filewelcome-filedefault.jsp/welcome-file/welcome-file-listservletdescription/descriptiondisplay-nameBoyServlet/display-nameservlet-nameBoyServlet/servlet-nameservlet-classcom.redirect.BoyServlet/servlet-class/servletservlet-mappingservlet-nameBoyServlet/servlet-nameurl-pattern/boy/url-pattern/servlet-mappingservletdescription/descriptiondisplay-nameGirlServlet/display-nameservlet-nameGirlServlet/servlet-nameservlet-classcom.redirect.GirlServlet/servlet-class/servletservlet-mappingservlet-nameGirlServlet/servlet-nameurl-pattern/girl/url-pattern/servlet-mapping
/web-app3.5 结果 浏览器输入 浏览器返回结果 控制台打印结果 4 请求转发-流程图、代码、结果
4.1 请求转发-流程图 4.2 代码BoyServlet
import java.io.IOException;
import javax.servlet.RequestDispatcher;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;public class BoyServlet extends HttpServlet {protected void doGet(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException {// 获取请求携带的idString id request.getParameter(id);System.out.println(A对B说帮我拿下快递,id号是: id);System.out.println(B对A说好的);System.out.println(----分割线----);//---后面B直接在服务器将请求转发给C---//获取转发对象后面括号指定了转发的路径RequestDispatcher dispatcher request.getRequestDispatcher(/girl);//执行转发功能并将请求和响应一并转发过去dispatcher.forward(request, response);}protected void doPost(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException {doGet(request, response);}
}4.3 代码GirlServlet
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 GirlServlet extends HttpServlet {protected void doGet(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException {// 设置浏览器解析的格式否则浏览器会出现乱码response.setContentType(text/html;charsetutf-8);// 获取请求携带的idString id request.getParameter(id);System.out.println(B对C说帮A拿下快递id号是 id);System.out.println(拿到快递了);// 获取输出流PrintWriter writer response.getWriter();// 将信息返回给浏览器writer.println(拿到快递了);}protected void doPost(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException {doGet(request, response);}
}4.4 web.xml文件
?xml version1.0 encodingUTF-8?
web-app xmlns:xsihttp://www.w3.org/2001/XMLSchema-instance xmlnshttp://java.sun.com/xml/ns/javaee xsi:schemaLocationhttp://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd idWebApp_ID version2.5display-namedispatcher/display-namewelcome-file-listwelcome-fileindex.html/welcome-filewelcome-fileindex.htm/welcome-filewelcome-fileindex.jsp/welcome-filewelcome-filedefault.html/welcome-filewelcome-filedefault.htm/welcome-filewelcome-filedefault.jsp/welcome-file/welcome-file-listservletdescription/descriptiondisplay-nameBoyServlet/display-nameservlet-nameBoyServlet/servlet-nameservlet-classcom.dispatcher.BoyServlet/servlet-class/servletservlet-mappingservlet-nameBoyServlet/servlet-nameurl-pattern/boy/url-pattern/servlet-mappingservletdescription/descriptiondisplay-nameGirlServlet/display-nameservlet-nameGirlServlet/servlet-nameservlet-classcom.dispatcher.GirlServlet/servlet-class/servletservlet-mappingservlet-nameGirlServlet/servlet-nameurl-pattern/girl/url-pattern/servlet-mapping
/web-app4.5 结果 浏览器输入 浏览器返回结果 控制台结果