Java Web 之 Servlet

Servlet是JavaEE规范之一,规范就是接口
编写类去实现Servlet接口

实现service方法,处理请求并响应数据
到web.xml去配置Servlet的访问地址

ServletConfig程序的使用

ServletConfig类是Servlet程序的配置信息类
Servlet程序 和 ServletConfig对象都是由Tomcat创建的,我们使用
Servlet程序默认是第一次访问的时候创建,ServletConfig是每个Servlet程序创建时,就创建一个Servlet对象

public void init(ServletConfig servletConfig) throws ServletException {
       System.out.println("初始化方法");

       //1.可以获取Servlet程序的别名servlet-name的值
       System.out.println("HelloServlet程序的别名是:"+servletConfig.getServletName());
       //2.获取初始参数init-param
       System.out.println("初识化参数username的值是" + servletConfig.getInitParameter("username"));
       System.out.println("初识化参数url的值是" + servletConfig.getInitParameter("url"));
       //3.获取ServletContext对象
       System.out.println(servletConfig.getServletContext());
   }
<!--servlet标签给tomcat配置Servlet程序-->
    <servlet>
        <!--servlet-name标签 给Servlet程序起一个别名(一般是类名)-->
        <servlet-name>HelloServlet</servlet-name>
        <!--servlet-class是Servlet程序的全类名-->
        <servlet-class>com.javaWeb.HelloServlet</servlet-class>

        <!--init-param是初始化参数-->
        <!--相当于一个键值对,可以有多个-->
        <init-param>
            <!--参数名-->
            <param-name>username</param-name>
            <!--参数值-->
            <param-value>root</param-value>
        </init-param>

        <init-param>
            <!--参数名-->
            <param-name>url</param-name>
            <!--参数值-->
            <param-value>jdbc:mysql://localhost:3306/db1</param-value>
            <!--相当于一个键值对-->
        </init-param>

    </servlet>

<servlet-mapping>
        <!--servlet-name标签的作用是告诉服务器,我当前配置的地址给哪个servlet程序使用-->
        <servlet-name>HelloServlet</servlet-name>
        <!--url-pattern标签配置访问地址-->
        <!--
            / 斜杠在服务器解析的时候表示地址为http://ip:port/工程路径
            /hello 表示地址为http://ip:port/hello
        -->
        <url-pattern>/hello</url-pattern>
    </servlet-mapping>
ServletContext

1.是一个接口,它表示Servlet上下文对象
2.一个web工程,只有一个ServletContext对象实例
3.ServletContext对象是一个域对象
域对象是可以像Map一样存取数据的对象
这里的域指的是存取数据的操作范围
4.ServletContext是在 web 工程部署启动的时候创建。再web 工程停止的时候销毁

           存数据           取数据           删除数据
   Map     put()           get()           remove()
  域对象  setAttribute()    getAttribute()  removeAttribute()

#####ServletContext类的四个作用
1.获取web.xml中配置的上下文参数context-param
2.获取当前的工程路径,格式:/工程路径
3.获取工程步数后再服务器硬盘上的绝对路径
4.像Map一样存储数据


public class ContextServlet extends HttpServlet {
    @Override
    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
//        1.获取web.xml中配置的上下文参数context-param
        ServletContext context = getServletConfig().getServletContext();//username = context
//        2.获取当前的工程路径,格式:/工程路径
//        3.获取工程步数后再服务器硬盘上的绝对路径
//        4.像Map一样存储数据
    }

    @Override
    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {

    }
}

public class ContextServlet1 extends HttpServlet {
    @Override
    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
            //获取ServletContext对象
        ServletContext servletContext = getServletContext();
        servletContext.setAttribute("key1","value1");
        //无论再哪里访问都一样
        System.out.println("Context1 中获取域数据key1的值是" + servletContext.getAttribute("key1"));
    }

    @Override
    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {

    }
}
<!--context-param是上下文参数(它属于整个web工程)-->
    <!--可以配置多组-->
    <context-param>
        <param-name>username</param-name>
        <param-value>context</param-value>
    </context-param>
Http协议

HTTP协议是指客户端与服务器之间通信时,发送的数据,需要遵守的规则。
HTTP协议中的数据又叫报文。

请求的HTTP协议格式

客户端给服务器发送数据叫请求。
服务器给客户端传回数据叫相应。

请求分为GET请求,和POST请求

GET请求

1.请求行
(1)请求的方式 GET
(2)请求的资源路径[+?+请求参数]
(3)请求的协议的版本号 HTTP/1.1
2.请求头
key:value 组成 不同的键值对,表示不同的含义
在这里插入图片描述

POST请求

1.请求行
(1)请求的方式 GET
(2)请求的资源路径[+?+请求参数]
(3)请求的协议的版本号 HTTP/1.1
2.请求头
key:value 组成 不同的键值对,表示不同的含义

3.请求体 就是发送给服务器的数据
在这里插入图片描述

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

响应的HTTP协议格式

1.响应行
(1)响应的协议和版本号 HTTP/1.1
(2)响应状态码
(3)响应状态描述符
2.响应头
(1)key:value 组成 不同的键值对,表示不同的含义
3.响应体 就回传给客户端的数据
在这里插入图片描述
在这里插入图片描述

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值