servlet概要

Servlet 概念

       一个运行在服务器端的小程序

       Servlet就是一个接口,定义了Java类被浏览器访问到(tomcat识别)的规则

       将来我们自定义一个类,实现Servlet接口,复写方法

 

       * 快速入门:

              1. 创建JavaEE项目

              2. 定义一个类,实现Servlet接口

                     * public class ServletDemo1 implements Servlet

              3. 实现接口中的抽象方法

              4. 配置Servlet

                      在web.xml中配置:

                  <!--配置Servlet -->

                  <servlet>

                      <servlet-name>demo1</servlet-name>

                      <servlet-class>cn.itcast.web.servlet.ServletDemo1</servlet-class>

                  </servlet>

             

                  <servlet-mapping>

                      <servlet-name>demo1</servlet-name>

                      <url-pattern>/demo1</url-pattern>

                  </servlet-mapping>

* 执行原理:

              1. 当服务器接受到客户端浏览器的请求后,会解析请求URL路径,获取访问的Servlet的资源路径

              2. 查找web.xml文件,是否有对应的<url-pattern>标签体内容。

              3. 如果有,则在找到对应的<servlet-class>全类名

              4. tomcat会将字节码文件加载进内存,并且创建其对象

              5. 调用其方法

 

       * Servlet中的生命周期方法:

              1. 被创建:执行init方法,只执行一次

                     * Servlet什么时候被创建?

                            * 默认情况下,第一次被访问时,Servlet被创建

                            * 可以配置执行Servlet的创建时机。

                                   * 在<servlet>标签下配置

                                          1. 第一次被访问时,创建

                                     * <load-on-startup>的值为负数

                                 2. 在服务器启动时,创建

                                     * <load-on-startup>的值为0或正整数

 

 

                     * Servlet的init方法,只执行一次,说明一个Servlet在内存中只存在一个对象,Servlet是单例的

                            * 多个用户同时访问时,可能存在线程安全问题。

                            * 解决:尽量不要在Servlet中定义成员变量。即使定义了成员变量,也不要对修改值

 

              2. 提供服务:执行service方法,执行多次

                     * 每次访问Servlet时,Service方法都会被调用一次。

              3. 被销毁:执行destroy方法,只执行一次

                     * Servlet被销毁时执行。服务器关闭时,Servlet被销毁

                     * 只有服务器正常关闭时,才会执行destroy方法。

                     * destroy方法在Servlet被销毁之前执行,一般用于释放资源

Servlet3.0

       好处

              *支持注解配置,可以不需要web.xml了

       步骤

              1.创建JAVAEE项目是选择Servlet版本3.0以上,可以不创建web.xml

              2.定义一个类,实现Servlet接口

              3.复写方法

              4.在类上使用 @WebServlet注解,进行配置

                     *@WebServlet(“资源路径”)

IDEA与tomcat的相关配置

       1

             IDEA会为每一个tomcat部署的项目单独建立一份配置文件

             查看控制台的log: Using CATALINA_BASE

            

2.工作空间项目和tomcat部署的web项目

             Tomcat真正访问的tomcat部署的web项目,tomcat部署的web项目对应着工作项目空间,的web目录显得所有资源

      3断电调试,小虫子

Servlet3.0的概念

       Servlet的体系结构

       Servlet—接口

              |

       GenericServlet— -抽象类

              |

       HttpServlet—抽象类  他们是继承关系

      

GenericServlet:将Servlet接口中的其他方法做了默认空实现,只将Service方法作为抽象

       ***将来定义Servlet雷士,可以继承GenericServlet,实现service方法即可,其他方法可在需要时实现

HTTPServlet:对http协议的一种封装简化操作,

  1. 定义类继承HTTPServlet
  2. 复写doGet/doPost方法,判断传输方法采用的是Get还是post

Servlet的相关配置

  1. urlpartten:Servlet访问路径
    1. 可以定义多个访问路径:@webservlet({“/路径一”,“路径二”})
    2. 路径定义规则
      1. /XXX:路径匹配
      2. /XX/XXX:多层路径,目录结构
      3. *.do:扩展名匹配

 

HTTP:

       *概念:超文本传输协议

              定义了客户端和服务器端通信时,发送数据的格式

              特点,

  1. 基于TCP/IP的高级协议
  2. 默认端口为80
  3. 基于请求/响应模型,:一次请求对应一次响应
  4. 无状态:每次请求之间相互独立,不能交互数据

历史版本

       1.0每一次请求响应都会建立新的连接

       1.1复用连接

请求消息数据格式:

       请求行

请求行 请求url    请求协议/版本

GET    /login.html  http:/1.1   

                     请求头

                            HTTP协议中的请求方式常用的有两种

                            Get

  1. 请求参数在请求行中,在url后
  2. 请求的url长度有限制
  3. 不太安全

Post

  1. 请求参数在请求体中
  2. 请求的url长度没有限制
  3. 相对安全

 

  1. 请求头:客户端浏览器告诉服务器一些信息

常见的请求头

  1. User-Agent浏览器告诉服务器,我访问你使用的浏览器版本信息
  2. Referer:告诉服务器我从哪里来
  3. 请求空行
  4.                空行,就是用于分割POST请求的请求头,和请求体的。
  5.         4. 请求体(正文):
  6.                * 封装POST请求消息的请求参数的
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值