Java Web02之深入servlet

servlet(重点)

Servlet是运行在服务器端的java小程序
我们创建的一个类要是Servlet,则它必须直接或者间接实现Servlet
servlet
如何创建一个Servlet

servlert里面的方法
图片总结:Servlet(曾祖父) –> GenericServlet( 爷爷 ) –> HttpServlet(爸爸 ) (继承HttpServlet( 孙子))

Servlet的创建方式:(掌握)
创建Servlet的三种方式

1.直接创建一个类实现Servlet接口,实现接口的方法
2.创建一个类继承GenericServlet抽象类,实现抽象类的方法
3.创建一个类继承HttpServlet(常用)

方式1:直接实现Servlet接口步骤(掌握)
1. 创建一个类实现Servlet接口,并且实现接口中的方法

public class FirstServlet implements Servlet{
      private ServletConfig config = null;
     @Override
      public void init(ServletConfig config) throws ServletException {
               System.out.println("init方法执行了");
               this.config = config;
      }

      @Override
      public ServletConfig getServletConfig() {
             return this.config;
       }

       @Override
       public void service(ServletRequest req, ServletResponse res) throws ServletException, IOException {
            System.out.println("service方法执行了");
       }

      @Override
      public String getServletInfo() {
           return null;
      }

      @Override
       public void destroy() {
           System.out.println("servlet销毁了");
       }

}

2.在web.xml中添加Servlet的配置信息

 <servlet>
       <servlet-name>FirstServlet</servlet-name>
        <servlet-class>com.chinasofti.servlet.FirstServlet</servlet-class>
  </servlet>
  <servlet-mapping>
       <servlet-name>FirstServlet</servlet-name>
       <url-pattern>/First</url-pattern>
  </servlet-mapping>

方式3:使用继承HttpServlet方式创建Servlet的步骤:

1)编写java类,继承HttpServlet类
2)重新doGet和doPost方法
3)Servlet程序交给tomcat服务器运行!!
>3.1 servlet程序的class码拷贝到WEB-INF/classes目录
>3.2 在web.xml文件中进行配置
url的组成

http://localhost:8080/3.3Pro/First
协议 主机名 端口

当浏览器输入http://localhost:8080/3.3Pro/First的时候,为什么servlet代码会执行呢?(掌握)

1.当我们在浏览器输入以上网址的时候,浏览器会向服务器发送请求,请求的网址就是上面的网址

2.服务器接收到请求之后,首先会/First 截取下来,然后从web.xml中查看是否有匹配的url-pattern

3.如果有存在的url-pattern,则找到url-pattern对应的servlet-name,然后根据servlet-name找到具体的类

4.通过反射技术来创建这个类的对象,然后这个对象就可以工作了

关于url-pattern匹配的路径:(掌握)

精确的路径: /First /First/xxx (注意点:/不能漏掉)

模糊的路径: /* .do .action

当输入的url有多个url-pattern匹配的时候,绝对匹配> /开头的模糊匹配>*.do结尾的模糊匹配

关于DefaultServlet:(掌握)
如果我们输入的网址是localhost:8080/3.3Pro/index.html

1.会从web.xml中查看是否有匹配index.html的url-pattern
2.如果没有,则会交给tomcat内置的一个叫做DefaultServlet来处理这个请求
3.DefaultServlet会从当前的web应用查找是否用index.html这个静态页面,如果有,则返回,如果没有则404错误

Servlet的生命周期:(掌握)
生命周期的四个方法:

1.构造方法 : 无论访问多少次,构造方法只会执行一次 (说明servlet对象是单实例的)
2.init方法 : 也会只执行一次
3.service方法 : 浏览器每访问一次,就会执行一次
4.destory方法 : 停止服务器或者重新部署应用的执行

关于Servlet的自动加载 : 启动tomat服务器的时候就创建servlet对象,对该对象进行初始化(掌握)

  <servlet>
      <servlet-name>FirstServlet</servlet-name>
      <servlet-class>com.chinasofti.servlet.FirstServlet</servlet-class>
      <load-on-startup>1</load-on-startup>        //值越高 ,优先级越低
  </servlet>
  <servlet-mapping>
       <servlet-name>FirstServlet</servlet-name>
       <url-pattern>/First</url-pattern>
  </servlet-mapping>

关于GenericServlet中的init方法(了解)

注意:在GenericServlet中有两个init方法,一个是来自父接口(Servlet)中的init方法,这个方法在GenericServlet中已经被实现过了,所以GenericServlet子类无需再去实现该方法。

如果GenericServlet子类还需要再去做一些初始化工作,则直接重写GenericServlet类中的另外一个init方法就可以
(public void init() throws ServletException)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值