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);
    }
}

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值