JavaWeb---汤姆猫中servlet的对象们ServletConfig、ServletContext、HttpServletRequest

一、ServletConfig

1.是啥

init(ServletConfig  servletConfig) = 每1个servlet都有1个他

servlet容器用于
在 1个servlet初始化期间向 此servlet传递信息的 
贴身独家快递员=抗飞哥=servlet配置对象。

(so————直接用servlet对象this.调用getServletConfig即可拿到他)

2、拿他干嘛

读取web.xml中 跟随的servlet顾客的局部配置参数init-param中的数据【如下图】
统一设置编码集【不了解】

只能由servletDemo1的抗飞哥获取:
在这里插入图片描述在这里插入图片描述

3、为啥他就能读到xml中的数据

那不废话嘛,他是快递员
servlet容器在派他来送货时,
就让他装好了servletContext、init-param的参数

( 	getInitParameter(java.lang.String name)、
getServletContext()  一般servlet也就是this.就直接拿了)

二、ServletContext

1、是啥

每个servlet共享的 云养狗。
由每个servlet的servletConfig维护这只狗

2、他干嘛

1.此狗的方法们 实现servlet们之间的通信【jsp也是servlet=实现 前后端交互】

用在  获取文件的MIME类型、分派请求、写入日志文件【不了解】
反正 
整个项目都要用的数据,就可用context的这组方法get/setAttriubute

2.还能获取web.xml 中 全局配置参数 = 整个web应用 的参数【如下图】

在这里插入图片描述在这里插入图片描述

三、HttpServletRequest

1.是啥

	专门跑 前端页面 ————到————> 目标servlet的 请求对象。
	servlet容器创建1个HttpServletRequest对象,
	并将其 作为参数 传递给servlet的服务方法(doGet、doPost等)。

2.他在干嘛

接收客户端 发来的 请求 及其中  数据。

3.看看他的API,再试试IDEA的点 就能明白此对象的 常用方法:

package servlet;


@WebServlet("/after")
public class AfternoonServ extends HttpServlet {
    @Override
    protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {

//        System.out.println(req.getRequestURI()); //        /t/after
//        System.out.println(req.getRequestURL()); //        http://localhost:8080/t/after

        //重要方法————能得到 用户发来的数据
//        System.out.println(req.getQueryString());//问号后的那坨参数   null



        //常用于  复选框
        //http://localhost:8080/t/after?food=cake&food=milk&money=seven

        //指定键对应 第1个值
        System.out.println(req.getParameter("food"));//   cake

        //指定键 all参数值数组
        String[] foods = req.getParameterValues("food");
        for (String food : foods) {
            System.out.println(food);//cake   milk
        }

        //取得all 参数键值
        Map<String, String[]> pm = req.getParameterMap();
        Iterator<Map.Entry<String, String[]>> iterator = pm.entrySet().iterator();
        while (iterator.hasNext()){
            Map.Entry<String, String[]> next = iterator.next();
            String[] values = next.getValue();
            for (String value : values) {//由于值用数组包着 so
                System.out.println("键是"+next.getKey()+"值是"+value);
                //键是food值是cake
                //键是food值是milk
                //键是money值是seven
            }
        }


		//返回1个数组———含 客户端随该请求 发送的 所有Cookie对象。
//        System.out.println(req.getCookies());

		//返回与此请求关联的 当前会话,if该请求 没会话,则创建1个会话。
//        System.out.println(req.getSession());

    }

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

Stkcd [股票代码] ShortName [股票简称] Accper [统计截止日期] Typrep [报表类型编码] Indcd [行业代码] Indnme [行业名称] Source [公告来源] F060101B [净利润现金净含量] F060101C [净利润现金净含量TTM] F060201B [营业收入现金含量] F060201C [营业收入现金含量TTM] F060301B [营业收入现金净含量] F060301C [营业收入现金净含量TTM] F060401B [营业利润现金净含量] F060401C [营业利润现金净含量TTM] F060901B [筹资活动债权人现金净流量] F060901C [筹资活动债权人现金净流量TTM] F061001B [筹资活动股东现金净流量] F061001C [筹资活动股东现金净流量TTM] F061201B [折旧摊销] F061201C [折旧摊销TTM] F061301B [公司现金流1] F061302B [公司现金流2] F061301C [公司现金流TTM1] F061302C [公司现金流TTM2] F061401B [股权现金流1] F061402B [股权现金流2] F061401C [股权现金流TTM1] F061402C [股权现金流TTM2] F061501B [公司自由现金流(原有)] F061601B [股权自由现金流(原有)] F061701B [全部现金回收率] F061801B [营运指数] F061901B [资本支出与折旧摊销比] F062001B [现金适合比率] F062101B [现金再投资比率] F062201B [现金满足投资比率] F062301B [股权自由现金流] F062401B [企业自由现金流] Indcd1 [行业代码1] Indnme1 [行业名称1] 季度数据,所有沪深北上市公司的 分别包含excel、dta数据文件格式及其说明,便于不同软件工具对数据的分析应用 数据来源:基于上市公司年报及公告数据整理,或相关证券交易所、各部委、省、市数据 数据范围:基于沪深北证上市公司 A股(主板、小企业板、创业板、科创板等)数据整理计算
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值