Servlet(1)

工作之后,发现很多基础的东西掌握的是真的不够,而且还是模糊的状态,所以准备从头再学一遍,就从servlet开始,都不敢说自己是工作过的人,技术真的是不忍直视,哈哈,开启我的奋斗之旅,应该为时不晚。

  1. Servlet概述

         1.1 what 

              servlet是javaweb三大组件之一,是动态资源,是运行在 Web 服务器或应用服务器上的程序,是一个容器

             

   1.2 advantage(优势)   

  1.  性能更好(单列,速度高)
  2. 是独立与平台的
  3. 是可信的
  4. Java类库中的所有功能对servlet来说都是可用的。

1.3 作用

  1. 接收请求数据
  2. 处理请求
  3. 完成响应

1.4 环境配置

  1. 4.1 配置Tomcat

Tomcat 是Web应用服务器,是一个Servlet/JSP容器. Tomcat 作为Servlet容器,负责处理客户请求,把请求传送给Servlet,并将Servlet的响应传送回给客户

    请参考:https://www.runoob.com/jsp/eclipse-jsp.html

1.4.2  安装jdk并配置环境变量

    请参考:https://www.runoob.com/java/java-environment-setup.html

1.4.3  Servlet与Tomcat关系

               

①:Tomcat将http请求文本接收并解析,然后封装成HttpServlet类型的request对象,所有的Http头数据都可以通过request对象调用对应的方法得到。

②:Tomcat同时要响应的信息封装为HttpservletRequest类型的respose对象,通过设置response属性可以控制要输出到浏览器的内容,然后将response交给Tomcat,Tomcat就会将其变成响应文本发送给浏览器。

       Java servlet api 是servlet容器(Tomcat)和servlet之间的接口,它定义了servlet的各种方法,还定义了servlet容器传送给servlet的对象类,最重要的就是servletResponse和servletRequest,我们在编写servlet要按照其规范进行操作

1.5 创建servlet实列(三种方式)

  1. 5.1 实现servlet接口

我们需要实现接口里的方法。Servlet 类提供了五个方法,其中三个生命周期方法和两个普通方法

     1.5.2  继承GenericServlet

        它实现了 Servlet 接口除了 service 的方法,很少用,GenericServlet 是一个抽象类,现了 Servlet 接口,并且对其中的 init() destroy() service() 提供了默认实现。如果继承这个类的话,我们必须重写 service() 方法来对处理请求。 GenericServlet 中,主要完成了以下任务:

       1.    init() 中的 ServletConfig 赋给一个类级变量,可以由 getServletConfig 获得;

       2.   为 Servlet 所有方法提供默认实现;

      3.    可以直接调用 ServletConfig 中的方法;

    1.5.3  继承httpServlet类

             HttpServlet 中对原始的 Servlet 中的方法都进行了默认的操作,不需要显式的销毁初始化以及 service(),在 HttpServlet 中,自定义了一个新的 service() 方法,其中通过 getMethod() 方法判断请求的类型,从而调用 doGet() 或者 doPost() 处理 get,post 请求,使用者只需要继承 HttpServlet,然后重写 doPost() 或者 doGet() 方法处理请求即可。我们一般都使用继承 HttpServlet 的方式来定义一个 servlet

 1.5.4 生命周期

* servlet有3个生命周期方法,2个普通方法。

  1. void init()一次创建,永久使用,第一次请求的时候创建,所以第一次请求有点慢,web.xml中把这个servletload-on-startup设为1就可以了。服务器启动的时候,会先执行这段代码的。 
  2. void service()每次请求的时候调用,用来处理客户端请求

        *重写doget(),获取一个未指定method的html表单

        *重写dopost() 获取一个特别指定method为post的表单

     3.void destroy()销毁,最后由jvm的垃圾回收机制回收

    4.两个普通方法

     1.getServletInfo()

     2.getServletConfig()

* Web服务器在与客户端交互时Servlet的工作过程是:

        1.     在客户端对web服务器发出请求

       2.     web服务器接收到请求后将其发送给Servlet

       3.     Servlet容器为此产生一个实例对象并调用ServletAPI中相应的方法来对客户端HTTP请求进行处理,然后将处理的响应结果返回给WEB服务器.

     4.     web服务器将从Servlet实例对象中收到的响应结构发送回客户端.

* web.xml配置及过程

  1. 默认情况下,Servlet 应用程序位于路径 <Tomcat-installation-directory>/webapps/ROOT 下,且类文件放在 <Tomcat-installation-directory>/webapps/ROOT/WEB-INF/classes 中。
  2. 如果您有一个完全合格的类名称 com.zyz.servlet.Servlet01,那么这个 Servlet 类必须位于 WEB-INF/classes/com/zyz/servlet/ Servlet01.class 中。
  3. 现在,让我们把 Servlet01.class 复制到 <Tomcat-installation-directory>/webapps/ROOT/WEB-INF/classes 中,并在位于 <Tomcat-installation-directory>/webapps/ROOT/WEB-INF/ 的 web.xml 文件中创建以下条目:
  4. 我们通过浏览器输入http://localhost:8080/servlet/servlet01.系统就会匹配web.xml中的路径,
  5. 匹配之后就会去找对应 name
  6. 根据对应的name值找到这个类,去实现类中写的方法

访问成功后的显示,就去执行类中的方法

在方法Tomcat7中我们可以通过注解的方式来创建servlet,原理是一样的,更加方便

我们可以新建一个Dynamic Web Project项目

                     

                  

                

        因为我已经有过相同的包名,所以会包已经存在的错误。还有注意类名首字母要大写。

             

 访问路径:

             

这两个方法都可以,原理是一样的,看个人习惯了

这是今天学习的内容,感觉好简单,但是真的让自己叙述,还真是不太能对答如流,学的比较浅显,还是需要去挖掘更深的知识。继续学习,继续分享,继续奋斗。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值