Servlet知识(进阶版)

本文详细介绍了Servlet规范,包括Servlet接口实现、生命周期、HttpServletResponse和HttpServletRequest接口的功能,以及Servlet间的调用规则。重点讲解了重定向、请求转发、数据共享的实现,如ServletContext、Cookie和HttpSession。此外,还探讨了监听器接口和Filter接口的应用,为Servlet开发提供了全面的知识指南。
摘要由CSDN通过智能技术生成

1、Servlet规范介绍

  • servlet规范是来自JAVAEE规范中的一种

  • 作用

    • 在Servlet规范中,指定【动态资源文件】开发步骤

    • 在Servlet规范中,指定HTTP服务器调用动态资源文件规则

    • 在Servlet规范中,指定HTTP服务器管理动态资源文件实例对象规则

2、servlet接口实现类

  • Servlet接口来自Servlet规范下一个接口,这个接口存在HTTP服务器,提供jar包

  • Tomcat服务器下lib文件有一个servlet—api.jar存放Servlet接口(javax.servlet.Servlet接口)

  • Servlet规范中任务,http服务器能调用的【动态资源文件】必须是一个Servlet接口实现类

3、Servlet接口实现类开发步骤

  • 第一步:创建一个java类继承HTTPServlet父类,使之成为一个Servlet接口实现类

  • 第二步:重写HTTPServlet父类中的两个方法:doGet和doPost

    • 浏览器——(get)——>oneServlet.doGet()

    • 浏览器——(post)——>oneServlet.doPost()

  • 第三步:将Servlet接口实现类信息【注册】到Tomcat服务器

    【网站】——>【web】——>【web-inf】——>web.xml

    <!--将Servlet接口实现类 类路径地址交给Tomcat-->
    <servlet>
        <servlet-name>OneServlet</servlet-name><!--声明一个变量存储servlet接口类类名字-->
        <servlet-class>myweb.OneServlet</servlet-class><!--存放Servlet类接口地址-->
    </servlet>
    <!--设置简短请求别名-->
    <servlet-mapping>
        <servlet-name>OneServlet</servlet-name>
        <url-pattern>/one</url-pattern><!--设置别名时,必须以“/”开头-->
    </servlet-mapping>

4、Servlet对象生命周期

  • 网站中所有的Servlet接口实现类的实例对象,只能有http服务器负责创建,开发人员不能手动创建Servlet接口实现类的实例对象

  • 在默认情况下,http服务器接受到对于当前Servlet接口实现类第一次请求时,自动创建这个Servlet接口实现类的实例对象

    在手动配置情况下,要求http服务器在启动的时候自动创建某个Servlet接口实现类的实例对象

例:

<servlet>
    <servlet-name>OneServlet</servlet-name><!--声明一个变量存储servlet接口类类名字-->
    <servlet-class>myweb.OneServlet</servlet-class><!--存放Servlet类接口地址-->
    <load-on-startup>30</load-on-startup><!--填写一个大于0的整数即可-->
</servlet>
  • 在http服务器运行期间,一个Servlet接口实现类只能创建一个实例对象

  • 在http服务器关闭时刻,自动将网站所有的Servlet对象进行销毁

5、HttpServletResponse接口

  • 介绍

    • HTTPServletResponse接口来自于Servlet规范中,在Tomcat中存在于servlet-api.jar

    • HTTPServletResponse接口实现类由http服务器负责提供

    • HttpServletResponse接口负责将doGet/doPost方法执行结果写入到【响应体】交给服务器

    • 开发人员将HTTPServletResponse接口修饰的对象称为【响应对象】

  • 主要功能

    • 将执行结果以二进制形式写入到【响应体】

    • 设置响应头中【content-type】属性值,从而控制浏览器使用对应编译器将响应体中的二进制编译为【文字,图片的具体信息】

    • 设置响应头中【location】属性,讲一个请求地址赋值给location,从而控制浏览器向指定服务器发送请求

6、HttpServletRequest接口

  • 介绍

    • HttpServletRequest接口来自Servlet规范中,在Tomcat中存在servlet-api.jar

    • HttpServletRequest接口实现类由Http服务器负责提供

    • HttpServletRequest接口负责在doGet/dopost方法运行时读取Http请求协议包中的信息

    • 开发人员习惯于将HttpServletRequest接口修饰的对象称为【请求对象】

  • 作用

    • 可以读取http请求协议包中【请求行】信息

    • 可以读取保存在http请求协议包中【请求头】或者【请求体】中请求参数信息

    • 可以代替浏览器向Http服务器申请资源文件调用

    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
    ​
        //获取请求协议包的URL
        String url = request.getRequestURL().toString();
        //获取请求协议包的method(请求方式)
        String method = request.getMethod();
        //获取请求协议包的uri
        /**
         * URi : 资源文件精准定位地址,在请求行中并没有URI属性
         *        实际URI中截取一个字符串,这个字符串格式“/网站名/资源文件名”
         *        URI用于让HTTP服务器对被访问的资源文件进行定位
         */
        String uri = request.getRequestURI();
        System.out.println("URL :"+url);
        System.out.println("method :"+method);
        System.out.println(
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值