java - Servlet 和 JSP 中页面范围和请求范围的区别?

标签 java jsp servlets jakarta-ee scope

到目前为止,我已经浏览了以下链接-:
Page scope- scope in jsp
What are the different scopes in JSP?
difference between page and request

我想知道页面作用域请求作用域有什么区别?如果我考虑对相同或不同页面使用 RequestDispatcher.forward()HttpServletResponse.sendRedirect(),那么这些作用域将如何工作?

如果请求被转发同一页面,那么这两个范围有何不同?

最佳答案

页面作用域是仅在处理单个 JSP 时有效的作用域。通常,如果一个 JSP 转发给自己,第二个实例将共享原始请求范围,但将接收一个全新的页面范围。如果您在页面中包含同一个片段的 2 个实例,这可能是有意义的:所有实例都将与调用者共享请求范围,但每个实例将使用自己的页面范围。

sendRedirect 是完全不同的东西!重定向正在向客户端返回一个特殊的响应,其中包含要在其 header 中获取的新 URL。但这也意味着重定向将使用不同的 HTTP 请求,因此将具有不同的请求范围。换句话说,只有 session 范围在重定向的页面之间共享 - 并且仅当您重定向到同一 Web 应用程序时。

关于java - Servlet 和 JSP 中页面范围和请求范围的区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45080768/

相关文章:

java - Chrome 自定义标签 Oauth2 流程

java - Spring 3.0 本地化在 tomcat 中不起作用,只能从本地的 jetty

java - jQuery 不执行 servlet doGet

java - RequestDispatcher 在 Tomcat 实例之间转发

java - 如何让我的 Spring Boot 应用程序基于外部 Servlet?

java - 如何在 Java Servlet 应用程序上为每个用户创建一个数据库连接?

java - Spring LDAP 和 Spring Boot 配置

java - 如何修复操作 switch 语句

java - 在 SQL 语句中使用变量而不是 TableName

java - 在java中转义javascript字符串