jsp和Servlet中的请求转发分别如何实现?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了jsp和Servlet中的请求转发分别如何实现?相关的知识,希望对你有一定的参考价值。

你好:jsp有两种,一种是response.sendRedirect("转发地址"),另外一种就是request.getRequestDispatcher("转发地址").forward(request,response) ;你要注意,jsp其实就是servlet所以,servlet的请求转发也是这样的。 参考技术A jsp request.getRequestDispatcher("/*.jsp").forward(request,response);
servlet sendRedirect()方法原理:
1,客户端发送请求,Servlet1做出处理。
2,Servlet1调用sendReadirect()方法,将客户端的请求 重新定位 到Servlet2。
3,客户端浏览器访问Servlet2.
4,Servlet2对客户端浏览器做出响应。
forward()方法原理:
1,客户端发送请求,Servlet1做出处理。
2,Servlet调用forward()方法,将请求转发给Servlet2来处理请求,为客户端服务.
3,Servlet2对客户端浏览器做出响应。
参考技术B <jsp:forward/>或<jsp:include/>
request.getRequstDispatcher("").forward();
request.getRequstDispatcher("").include();

Web_Servlet和jsp页面数据交互,通过请求转发在jsp中显示数据

1.Servlet页面代码

/*
    实现jsp页面和sevlet页面的信息交互
 */
@WebServlet(urlPatterns = "/aa")
public class JspService extends HttpServlet {
    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        doGet(request,response);
    }

    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {

        //以键值对存储数据

        request.setAttribute("name","张三丰");

        //进行页面跳转,把信息传过去
        request.getRequestDispatcher("/demojsp.jsp").forward(request,response);

    }
}

2.Jsp页面

<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
    <title>Title</title>
</head>
<body>
    <div>
        <font color="#808080"><%=request.getAttribute("name")%></font>
    </div>
</body>
</html>

 

以上是关于jsp和Servlet中的请求转发分别如何实现?的主要内容,如果未能解决你的问题,请参考以下文章

HTTP中的重定向和请求转发的区别

Web_Servlet和jsp页面数据交互,通过请求转发在jsp中显示数据

jsp如何转发到其他域,如我的项目http://localhost/test/test.jsp 在这个界面如何转发到www.baidu.com?

JAVA记录-Servlet RequestDispatcher请求转发

如何使用 servlet 和 jsp 做 SPA?

jsp-servlet 的相关请求路径问题 —url