javaweb-10:ServletContext对象

6.5、ServletContext

web容器在启动的时候,它会为每个web程序都创建一个对应的ServletContext对象,它代表了当前的web应用

1.共享数据

我在这个Servlet中保存的数据,可以在另一个Servlet中拿到

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-RoiLT5gX-1632877202881)(C:\Users\Administrator\Desktop\学习笔记\javaweb\javaweb-10:ServletContext对象.assets\image-20210929085719160.png)]

核心代码:

HelloServlet.java

package com.gongyi.servlet;

import javax.servlet.ServletContext;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;

/**
 * @Classname HelloServlet
 * @Description TODO
 * @Date 2021/9/29 8:31
 * @Created by Administrator
 */
public class HelloServlet extends HttpServlet {
    @Override
    protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        //this.getInitParameter();//初始化参数
        //this.getServletConfig();//Servlet配置
        //this.getServletContext();//Servlet上下文
        ServletContext context = this.getServletContext();
        String userName = "工一";//数据
        context.setAttribute("userName",userName);//将一个数据保存在了Servlet中,名字为userName,值为userName


        System.out.println("Hello Servlet from servlet-02 module");
    }
}

GetServlet.java

package com.gongyi.servlet;

import javax.servlet.ServletContext;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;

/**
 * @Classname GetServlet
 * @Description TODO
 * @Date 2021/9/29 8:49
 * @Created by Administrator
 */
public class GetServlet extends HttpServlet {
    @Override
    protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        ServletContext context = this.getServletContext();
        String userName = (String) context.getAttribute("userName");
        resp.setContentType("text/html");
        resp.setCharacterEncoding("utf-8");
        resp.getWriter().print("名字:"+userName);
    }

    @Override
    protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        doGet(req,resp);
    }
}

测试访问结果:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-RXJhCbhf-1632877202887)(C:\Users\Administrator\Desktop\学习笔记\javaweb\javaweb-10:ServletContext对象.assets\image-20210929085901391.png)]

设置key

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-n7j7H4fL-1632877202890)(C:\Users\Administrator\Desktop\学习笔记\javaweb\javaweb-10:ServletContext对象.assets\image-20210929085919199.png)]

再访问getc

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-GZ2cSKo0-1632877202894)(C:\Users\Administrator\Desktop\学习笔记\javaweb\javaweb-10:ServletContext对象.assets\image-20210929085944711.png)]

彩蛋

1.好习惯

学习一个新技术,新建一个父工程,然后分章节建立子模块

一般笔记类文件存在note.md中

2.一个tomcat同一个端口可以运行多个web服务【虚拟目录映射】

一般测试一个,打开一个,移除别的,会加快tomcat服务运行速度

3.新建maven工程时,如果项目名和artifactId不一致,项目名会出现在artifactId后面

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-n15j63KF-1632877202897)(C:\Users\Administrator\Desktop\学习笔记\javaweb\javaweb-10:ServletContext对象.assets\image-20210929082656814.png)]

4.idea快速打开maven配置

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-hNtgXXIJ-1632877202899)(C:\Users\Administrator\Desktop\学习笔记\javaweb\javaweb-10:ServletContext对象.assets\image-20210929082836945.png)]

5.问题:

1)新建maven web子模块时,新建完成后,pom与父pom没关系了,还得手工修改

6.java新特性中支持用中文作为变量名

String 工一="gongyi";
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值