JavaWeb-Servlet保存作用域
2022/8/4 14:22:51
本文主要是介绍JavaWeb-Servlet保存作用域,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
保存作用域
page-页面级别(已过时)
request-一次请求响应范围
准备两个demo
package com.fancy.demo; import javax.servlet.ServletException; import javax.servlet.annotation.WebServlet; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import java.io.IOException; /** * @Name demo02 * @Description 演示request保存作用域 * @Author Fancy * @return 2022/8/3 * @Version 1.0 */ @WebServlet("/demo02") public class Demo02Servlet extends HttpServlet { @Override protected void service(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { //获取request保存作用域保存的数据,key为uname Object unameObj = req.getAttribute("uname"); System.out.println("unameObj =" + unameObj); } }
package com.fancy.demo; import javax.servlet.ServletException; import javax.servlet.annotation.WebServlet; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import java.io.IOException; /** * @Name demo01 * @Description request保存作用域 * @Author Fancy * @return 2022/8/3 * @Version 1.0 */ @WebServlet("/demo01") public class Demo01Servlet extends HttpServlet { @Override protected void service(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { //1.向request保存作用域保存数据 req.setAttribute("uname","keke"); //2.客户端重定向 resp.sendRedirect("demo02"); } }
使用客户端重定向,客户端获取不到value的值keke
接下来使用服务器内部转发
更改demo02代码
package com.fancy.demo; import javax.servlet.ServletException; import javax.servlet.annotation.WebServlet; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import java.io.IOException; /** * @Name demo01 * @Description request保存作用域 * @Author Fancy * @return 2022/8/3 * @Version 1.0 */ @WebServlet("/demo01") public class Demo01Servlet extends HttpServlet { @Override protected void service(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { //1.向request保存作用域保存数据 req.setAttribute("uname","keke"); /* //2.客户端重定向 resp.sendRedirect("demo02");*/ //服务器内部转发 req.getRequestDispatcher("demo02").forward(req,resp); } }
获取成功
session-一次会话范围
准备两个demo
package com.fancy.demo; import javax.servlet.ServletException; import javax.servlet.annotation.WebServlet; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import java.io.IOException; /** * @Name demo03 * @Description session保存作用域 * @Author Fancy * @return 2022/8/3 * @Version 1.0 */ @WebServlet("/demo03") public class Demo03Servlet extends HttpServlet { @Override protected void service(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { //1.想request保存作用域保存数据 req.getSession().setAttribute("uname","keke"); /* //2.客户端重定向 resp.sendRedirect("demo02");*/ //服务器内部转发 req.getRequestDispatcher("demo04").forward(req,resp); } }
package com.fancy.demo; import javax.servlet.ServletException; import javax.servlet.annotation.WebServlet; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import java.io.IOException; @WebServlet("/demo04") public class Demo04Servlet extends HttpServlet { @Override protected void service(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { //获取session保存作用域保存的数据,key为uname Object unameObj = req.getSession().getAttribute("uname"); System.out.println("unameObj =" + unameObj); } }
从session中也可以成功获取value值
application-一次应用程序范围有效
package com.fancy.demo; import javax.servlet.ServletContext; import javax.servlet.ServletException; import javax.servlet.annotation.WebServlet; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import java.io.IOException; /** * @Name demo05 * @Description application保存作用域 * @Author Fancy * @return 2022/8/3 * @Version 1.0 */ @WebServlet("/demo05") public class Demo05Servlet extends HttpServlet { @Override protected void service(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { //1.想request保存作用域保存数据 //Servlet上下文 ServletContext application = req.getServletContext(); application.setAttribute("uname","keke"); //2.客户端重定向 resp.sendRedirect("demo06"); /*//服务器内部转发 req.getRequestDispatcher("demo06").forward(req,resp);*/ } }
package com.fancy.demo; import javax.servlet.ServletContext; import javax.servlet.ServletException; import javax.servlet.annotation.WebServlet; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import java.io.IOException; /** * @Name demo06 * @Description application保存作用域 * @Author Fancy * @return 2022/8/3 * @Version 1.0 */ @WebServlet("/demo06") public class Demo06Servlet extends HttpServlet { @Override protected void service(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { //获取application保存作用域保存的数据,key为uname ServletContext application = req.getServletContext(); Object unameObj = application.getAttribute("uname"); System.out.println("unameObj =" + unameObj); } }
可获取到value值
并且使用其它浏览器访问application作用域也可以得到value值(Tomcat未停止)
这篇关于JavaWeb-Servlet保存作用域的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-04-17基于SpringWeb MultipartFile文件上传、下载功能
- 2024-04-14个人开发者,Spring Boot 项目如何部署
- 2024-04-14RAG应用开发实战02-相似性检索的关键 - Embedding
- 2024-04-14出海软件草根逆袭打法是什么?
- 2024-04-13鸿蒙原生应用再新丁!企查查 碧蓝航线 入局鸿蒙
- 2024-04-11RAG应用开发实战(01)-RAG应用框架和解析器
- 2024-04-10DevOps已死?2024年的DevOps将如何发展
- 2024-04-10码农必看:常见源代码混淆技术详解
- 2024-04-07以一当十丨TiDB 在东吴证券秀财 APP 的应用实践
- 2024-04-07月活超 1.1 亿,用户超 4 亿,你也在用的「知乎」是如何在超大规模 TiDB 集群上玩转多云多活的?来听听知乎代晓磊的答案!