servlet知识点

Servlet概述

  Servlet: 运行在服务端的Java小程序,是sun公司提供的一套规范,用来处理客户端请求、响应给浏览器的动态资源。

       它是浏览器与服务器之间数据交互的桥梁。

   作用: 用来处理从客户端发送过来的请求,并对该请求作出响应

   职责:

    1、获取请求参数

    2、调用业务逻辑

    3、分发转向

Servlet实例

    Servlet规范规定,所有的servlet必须实现 javax.servlet.Servlet接口。

    单实例,从用户访问开始创建,只创建一次

    1、创建一个类,继承一个javax.servlet.http.HttpServlet类

    2、配置web.xml   

 <servlet>
      <servlet-name>loginServlet</servlet-name>
      <servlet-class>com.it.web.servlet.LoginServlet</servlet-class>
  </servlet>
  <servlet-mapping>
      <servlet-name>loginServlet</servlet-name>
      <url-pattern>/login</url-pattern>
  </servlet-mapping>

    3、部署

    4、测试

  注:页面的请求方式只有一种是post提交:有表单且表单的method="post"时才是post提交。其它情况都是get方式提交。

Servlet的生命周期

  生命周期: 是指一个对象从创建到销毁的过程

  servlet生命周期: 是指servlet从创建到销毁的过程

  实例化--->初始化--->服务--->销毁

    实例化: 用户第一次访问时

    初始化: 用户第一次访问时  初始化方法init(ServletConfig config)只执行一次

    服务: 用户每次访问时    service(..)服务方法执行

    销毁: 应用程序(项目)卸载或者服务器关闭时  destory() 销毁方法(只执行一次)

url-pattern的配置

    url-pattern配置方式共有三种:

    1.完全路径匹配    :以 / 开始             

      例如: /demo1, /aaa/demo1, /aaa/bbb/demo1

    2.目录匹配       :以 / 开始 需要以 * 结束.

      例如: /*  (所有)      /aaa/* (aaa目录下的所有)    /aaa/bbb/*

    3.扩展名匹配     :不能以 / 开始。 以 * 开始的.

      例如: *.do , *.action 、*.jsp 、*.jpg    ***** 错误的写法 : /*.do

    4.缺省路径   /

          通常情况访问 html页面时,首先从当前web项目的web.xml文件寻找匹配路径,如果如果没有找到,再从tomcat默认的web.xml匹配,将使用缺省servlet

     

    注:访问路径都是访问Servlet,要么自己写的,要么服务器默认的。

     tomcat获得匹配路径时,优先级顺序:1 > 2 > 3 > 4

                           完全路径匹配 > 目录匹配 > 扩展名匹配 > 缺省路径

    相对路径:都是需要找位置相对关系.不能以 / 开头的.

         ./ 当前路径  ../上一级目录

    绝对路径:不需要找位置相对关系。要以 / 开始的.

   (在服务端后台代码中以当前项目为基准;在页面中是以服务器8080为基准):

    绝对路径中分为客户端路径和服务器端路径:

        * 客户端路径:/后面一定要项目程名.(注:客户端的/代表8080后面的/)

        * 服务器端路径:/后面不加项目名

ServletConfig:获得Servlet的配置信息

    String getServletName();     ---获得Servlet在web.xml中配置的name的值.

    String getInitParameter(String name);    ---获得Servlet的初始化参数的.   根据配置文件中的key获得value

    Enumeration getInitParameterNames();     ---获得所有Servlet的初始化参数的名称.

    ServletContext getServletContext(); ---获取此应用对象(域对象)

 

 

 

天天向上
原文地址:https://www.cnblogs.com/xiao-cui-tong/p/13096054.html