zoukankan      html  css  js  c++  java
  • 03006_Servlet简介

    1、什么是Servlet

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

      (2)Servlet的实质就是java代码,通过java的API动态的向客户端输出内容;

      (3)Servlet规范:包含三个技术点

        ①Servlet技术;

        ②filter技术--过滤器;

        ③listener技术--监听器。

    2、Servlet快速入门

      (1)实现步骤

        ①创建类实现Servlet接口;

        ②覆盖尚未实现的方法---service(专门向客户端提供响应的方法);

     1 package com.gzdlh.servlet;
     2 import java.io.IOException;
     3 
     4 import javax.servlet.Servlet;
     5 import javax.servlet.ServletConfig;
     6 import javax.servlet.ServletException;
     7 import javax.servlet.ServletRequest;
     8 import javax.servlet.ServletResponse;
     9 
    10 public class QuickStartServlet implements Servlet {
    11 
    12     @Override
    13     public void service(ServletRequest arg0, ServletResponse arg1) throws ServletException, IOException {
    14         System.out.println("QuickStartServlet running...");
    15     }
    16 
    17     @Override
    18     public void destroy() {
    19 
    20     }
    21 
    22     @Override
    23     public ServletConfig getServletConfig() {
    24         return null;
    25     }
    26 
    27     @Override
    28     public String getServletInfo() {
    29         return null;
    30     }
    31 
    32     @Override
    33     public void init(ServletConfig arg0) throws ServletException {
    34 
    35     }
    36 
    37 }

        ③在web.xml进行servlet的配置。

     1 <?xml version="1.0" encoding="UTF-8"?>
     2 <web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
     3     xmlns="http://java.sun.com/xml/ns/javaee"
     4     xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"
     5     id="WebApp_ID" version="2.5">
     6     <display-name>WEB13</display-name>
     7     <servlet>
     8         <servlet-name>abc</servlet-name>
     9         <servlet-class>com.gzdlh.servlet.QuickStartServlet</servlet-class>
    10     </servlet>
    11 
    12     <servlet-mapping>
    13         <servlet-name>abc</servlet-name>
    14         <url-pattern>/quickStartServlet</url-pattern>
    15     </servlet-mapping>
    16 
    17 
    18 
    19 
    20 
    21     <welcome-file-list>
    22         <welcome-file>index.html</welcome-file>
    23         <welcome-file>index.htm</welcome-file>
    24         <welcome-file>index.jsp</welcome-file>
    25         <welcome-file>default.html</welcome-file>
    26         <welcome-file>default.htm</welcome-file>
    27         <welcome-file>default.jsp</welcome-file>
    28     </welcome-file-list>
    29 </web-app>

      (2)在实际开发中,我们不会直接去实现Servlet接口,因为那样需要覆盖的方法太多,我们一般创建类继承HttpServlet,实现步骤:

        ①创建类继承HttpServlet类;

        ②覆盖doGet和doPost ;

        ③在web.xml中进行servlet的配置。

    3、Servlet的API

      (1)init(ServletConfig config)

        ①何时执行:servlet对象创建的时候执行;

        ②ServletConfig : 代表的是该servlet对象的配置信息。

      (2)service(ServletRequest request,ServletResponse response)

        ①何时执行:每次请求都会执行;

        ②ServletRequest :代表请求 认为ServletRequest 内部封装的是http请求的信息;

        ③ServletResponse :代表响应 认为要封装的是响应的信息。

      (3)destroy()

        何时执行:servlet销毁的时候执行。

     1 package com.gzdlh.servlet;
     2 
     3 import java.io.IOException;
     4 
     5 import javax.servlet.Servlet;
     6 import javax.servlet.ServletConfig;
     7 import javax.servlet.ServletException;
     8 import javax.servlet.ServletRequest;
     9 import javax.servlet.ServletResponse;
    10 
    11 public class QuickStartServlet implements Servlet {
    12 
    13     @Override
    14     public void init(ServletConfig arg0) throws ServletException {
    15         System.out.println("init running...");
    16     }
    17 
    18     @Override
    19     public void service(ServletRequest arg0, ServletResponse arg1) throws ServletException, IOException {
    20         System.out.println("QuickStartServlet running...");
    21     }
    22 
    23     @Override
    24     public void destroy() {
    25         System.out.println("destroy running...");
    26     }
    27 
    28     @Override
    29     public ServletConfig getServletConfig() {
    30         return null;
    31     }
    32 
    33     @Override
    34     public String getServletInfo() {
    35         return null;
    36     }
    37 
    38 }

      运行结果:

      

    4、Servlet的生命周期

      (1)Servlet何时创建

        默认第一次访问servlet时创建该对象。

      (2)Servlet何时销毁

        服务器关闭servlet就销毁了。

      (3)每次访问必然执行的方法

        service(ServletRequest req, ServletResponse res)方法。

    5、servlet的执行过程

    6、servlet的配置

      (1)基本配置

     1     <!-- servlet类的配置 -->
     2     <servlet>
     3         <servlet-name>abc</servlet-name>
     4         <servlet-class>com.gzdlh.servlet.QuickStartServlet</servlet-class>
     5         <init-param>
     6             <param-name>url</param-name>
     7             <param-value>jdbc:mysql://mydb</param-value>
     8         </init-param>
     9     </servlet>
    10 
    11     <!-- servlet的虚拟路径的配置 -->
    12     <servlet-mapping>
    13         <servlet-name>abc</servlet-name>
    14         <url-pattern>/quickStartServlet</url-pattern>
    15     </servlet-mapping>

      其中url-pattern的配置方式:

        ①完全匹配:访问的资源与配置的资源完全相同才能访问到;

    <url-pattern>/quickStartServlet</url-pattern>

        ②目录匹配:/虚拟的目录../*   *代表任意;

    <url-pattern>/aaa/bbb/ccc/*</url-pattern>

        ③扩展名匹配:*.扩展名,

    <url-pattern>*.abcd</url-pattern>

    7、服务器启动实例化Servlet配置

      (1)Servlet何时创建:默认第一次访问时创建;

      (2)为什么是默认?当在servlet的配置时加上一个配置 <load-on-startup>, servlet对象在服务器启动时就创建,数字代表优先级,数字越小,优先级越高。

    <load-on-startup>3</load-on-startup>

    8、缺省Servlet

      (1)可以将url-pattern配置一个/,代表该servlet是缺省的servlet;

      (2)什么是缺省的servlet?当你访问资源地址所有的servlet都不匹配时 , 缺省的servlet负责处理;

      (3)其实,web应用中所有的资源的响应都是servlet负责,包括静态资源。

     9、欢迎页面

      在WebContent下配置。

        <welcome-file-list>
            <welcome-file>index.html</welcome-file>
            <welcome-file>index.htm</welcome-file>
            <welcome-file>index.jsp</welcome-file>
            <welcome-file>default.html</welcome-file>
            <welcome-file>default.htm</welcome-file>
            <welcome-file>default.jsp</welcome-file>
        </welcome-file-list>
  • 相关阅读:
    #Leetcode# 219. Contains Duplicate II
    #Leetcode# 203. Remove Linked List Elements
    #Leetcode# 141. Linked List Cycle
    #Leetcode# 128. Longest Consecutive Sequence
    linux——shell解释
    Linux——互联网搜索引擎nbtscan是一个扫描WINDOWS网络NetBIOS信息的小工具
    Linux——网络端口的状态netstat、ifconfig
    连不上网的原因
    jquery基础笔记
    网址收藏
  • 原文地址:https://www.cnblogs.com/gzdlh/p/8182234.html
Copyright © 2011-2022 走看看