代码编织梦想

一、request

request保存作用域只在一次请求的范围内。

例如:当我们使用客户端重定向后,服务器响应和客户端重定向到另一个Servlet,客户端会再次发起一个请求,此时的第一次请求保存作用域中的数据失效。若是使用服务器内部转发则仍然有效,因为没有发起第二次请求。

@WebServlet("/Demo1")
public class Demo1 extends HttpServlet {
    @Override
    protected void service(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        //1、保存数据到request保存作用域
        req.setAttribute("uname","Tom");
        
        // 2、客户端重定向给Demo2(重定向不属于同一次请求,uname为null)
        //req.getRequestDispatcher("Demo2").forward(req,resp);
        
        //3、服务器内部转发给Demo2(成功获取Tom值)
        resp.sendRedirect("Demo2");
    }
}

@WebServlet("/Demo2")
public class Demo2 extends HttpServlet {
    @Override
    protected void service(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        Object obj = req.getAttribute("uname");
        System.out.println("Demo2"+obj);
    }
}

二、session

session保存的作用域范围在session有效期内,并且在同一客户端的请求内生效。

例如:当我们使用同一客户端发起多次请求时,在30分钟内(默认session有效时长)sesion保存作用域中的数据是一直有效的。超过30分钟或者切换客户端访问都会失效。

@WebServlet("/Demo3")
public class Demo3 extends HttpServlet {
    @Override
    protected void service(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        //1、向session保存作用域保存数据
        HttpSession session = req.getSession();
        session.setAttribute("uname","Tom");

        //2、客户端重定向给Demo4(成功获取uname)
        //resp.sendRedirect("Demo4");
        
        //3、服务器端转发(成功获取uname)
        req.getRequestDispatcher("Demo4").forward(req,resp);
    }
}
@WebServlet("/Demo4")
public class Demo4 extends HttpServlet {
    @Override
    protected void service(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        Object obj = req.getSession().getAttribute("uname");
        System.out.println("Demo4"+obj);
    }
}

 三、application

application保存作用域在一次启动服务其运行的过程中一直保持有效。

例如:当我们启动Tomcat服务器后,向application保存作用域中保存了数据,只要是在这次服务器运行的期间,保存的数据一直有效,无论何种访问方式。只有当Tomcat关闭或者重启才会失效。

@WebServlet("/Demo5")
public class Demo5 extends HttpServlet {
    @Override
    protected void service(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        //1、向application保存作用域保存数据
        ServletContext application = req.getServletContext();
        application.setAttribute("uname","Tom");

        //2、客户端重定向(可获取uname值)
        //resp.sendRedirect("Demo6");

        //3、服务器内部转发给(可获取uname值)
        req.getRequestDispatcher("Demo6").forward(req,resp);
    }
}
@WebServlet("/Demo6")
public class Demo6 extends HttpServlet {
    @Override
    protected void service(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        System.out.println(req.getServletContext().getAttribute("uname"));
    }
}

总结:

1) request:一次请求响应范围 

2) session:一次会话范围有效

3) application: 一次应用程序范围有效

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/weixin_51847688/article/details/129821055

使用eclipse开发java web项目(最最最基础)_jayden_新进程序员的博客-爱代码爱编程_eclipse javaweb项目结构

本篇首先给出Tomcat 8.0的安装及验证过程,然后在eclipse中配置已安装成功的Tomcat服务器,最后新建一个Java web工程,并绑定已部署的Tomcat服务器,在工程中新建并运行JSP文件。通过本篇的学习,可以掌握以下内容: ● 部署Tomcat 8.0 ● 建立本地Server服务器 ● 新建Java web开发项目 ● 建立第一

java web是前端吗_Java Web 是前端还是后端?-爱代码爱编程

Java Web 是前端还是后端? Java Web是属于后端,Java Web就是用Java技术开发的Web应用,而Java是一种可以编写跨平台应用软件、完全面向对象的高级程序设计语言,一般常用于后端服务器的开发和Android软件的开发。 Java 语言特点 1、简单性 Java看起来设计得很像C++,但是为了使语言小和容易熟悉,设计者

java web项目开发流程_Java Web项目开发步骤-爱代码爱编程

Java Web,是用Java技术来解决相关web互联网领域的技术栈。随着JavaWeb技术的发展,越来越多的前端开发项目选择使用JavaWeb。对于Java初学者来说,开发一个Java Web项目是很难独自完成的任务,我们首先要明确Java Web项目开发步骤,才能做到对症下药,步步为营,完成一个简单的Java Web项目。 下面为大家详细介绍

Intellij IDEA2021.1创建Java web项目(超详细)-爱代码爱编程

Intellij IDEA2021.1 点击next 填写项目的名称以及位置,finish 右键项目,选择add framework support 完成之后,项目结构变成了这样 接下来,我们在WEB-INF下创建classes,lib文件夹 编辑项目结构 将output path的路径改成classes文件夹的路径 接下来点击dependencie

java web项目的创建-爱代码爱编程

1、启动Eclipse,执行菜单【File】——【new】——【other】——【web】——【Dynamic Web Project】。 2、单击【Next】按钮,进入填写工程信息界面。 3、单击【Next】按钮,进入工程配置界面。   4、单击【Next】按钮,进入工程选项界面。     5、在新建的【Proj01】项目中,新建一

Java Web开发流程-爱代码爱编程

要创建 Web 应用程序,动力节点小编告诉大家需要以下Java开发工具: IDE(Eclipse或 Netbeans) 数据库(Oracle 或Mysql) 服务器(Tomcat) 在创建任何 Web 应用程序之前,请确保上述所有工具都已正确安装在您的系统上。 现在,按照以下步骤开发 Web 应用程序: 1、打开Eclipse 创建一个动态We