(1) Servlet - 1

开发 Servlet 有三种方式:

  1. 实现 Servlet 接口
  2. 继承 GenericServlet 抽象类 service 是抽象方法
  3. 继承 HttpServlet 抽象类 实现了 service ,虽然是抽象类,但是没有抽象方法,需要被继承

继承体系:
Servlet 是接口,开发需要实现接口中的所有方法。
    |
    +– GenericServlet 抽象类,实现了 Servlet 接口,
     abstract void service(ServletRequest req, ServletResponse res)
      { 抽象方法需要自己实现 }
    |
    +– HttpServlet 抽象类,继承 GenericServlet,默认实现了里面的
     抽象方法,只需要重写 doGet doPost 即可。这两个 do 方法
     其实就是对 Servlet 中的 service 方法进行了封装。

方式一:实现 Servlet 接口

public class Servlet_1 implements Servlet {                                            

     // 初始化 Servlet ,就是把该 Servlet 装载到内存中,只执行一次。        
     public void init(ServletConfig config) throws ServletException {        

     }                                                                                                                

     // 销毁该Servlet,从内存中清除掉,只调用一次。                                        
     public void destroy() {                                                                                

     }                                                                                                                    

     // 得到 ServletConfig 对象                                                                             
     public ServletConfig getServletConfig() {                                                     
          return null;                                                                                    
     }                                                                                                                

     // 得到Servlet信息。                                                                                
     public String getServletInfo() {                                                                    
          return null;                                                                                                    
     }                                                                                                                    

     // 是服务函数,业务逻辑代码写到这里,该函数每次都被调用。                        
     public void service(ServletRequest req, ServletResponse res)                        
       throws ServletException, IOException {                                                        

     }                                                                                                                                
}      

方式二:继承 GenericServlet 接口
重写 service( ) 方法

方式三:继承 HttpServlet 接口
重写 doPost( ) doGet( ) 方法

注意:
MyEclipse 中是没有 Servlet 规范的,Myeclipse 中的插件导入了关于 JavaEE 的包并设置 classpath
这里写图片描述

Servlet 的配置:

为什么 Servlet 需要配置?
浏览器访问 Tomcat 服务器时,是和 Web 服务模块打交道。
Web 服务模块根据用户的请求,去 Servlet 容器找到对应的资源文件。
配置文件的用处就是帮助 Web 服务器找到对应的资源文件。

配置方法:

<servlet> 
    <!-- 注册一个Servlet -->
    <!-- 给 Servlet 取一个名字,可以随意起,但是必须要保证和下面的配置一样 -->
    <servlet-name>Demo1</servlet-name>
    <!-- Servlet 的位置 -->
    <!-- 项目下的 Servlet 文件位置,包名 . 文件名,不要加.java -->
    <servlet-class>Servlet_Test_1.Servlet_1</servlet-class>
</servlet>

<servlet-mapping>
    <!-- 根据注册的 Servlet 进行映射 -->
    <!-- 给 Servlet 取一个名字,但是必须要保证和下面的配置一样 --> 
    <servlet-name>Demo1</servlet-name>
    <!-- URL 的访问路径 -->
    <!-- 根据注册的 Servlet 进行映射 -->
    <url-pattern>/ABC</url-pattern>
</servlet-mapping>

<!-- 一个已经注册的Servlet可以有多个映射 -->
<servlet-mapping>
    <!-- 根据注册的 Servlet 进行映射 -->
    <!-- 给 Servlet 取一个名字,但是必须要保证和下面的配置一样 --> 
    <servlet-name>Demo1</servlet-name>
    <!-- URL 的访问路径 -->
    <!-- 根据注册的 Servlet 进行映射 -->
    <url-pattern>/DEF</url-pattern>
</servlet-mapping>

映射通配符:
① *.扩展名  没有斜杠!
例如 *.do

<servlet>
    <servlet-name>First</servlet-name>
    <servlet-class>Test01.Demo1</servlet-class>
</servlet>

<servlet-mapping>
    <servlet-name>First</servlet-name>
    <url-pattern>*.do</url-pattern>
</servlet-mapping>
// http://localhost/ServletDemo1/Demo1.do 访问即可

② 以 / 开头,同时 /* 结尾
例如 /a/*

<servlet>
    <servlet-name>First</servlet-name>
    <servlet-class>Test01.Demo1</servlet-class>
</servlet>

<servlet-mapping>
    <servlet-name>First</servlet-name>
    <url-pattern>/a/*</url-pattern>
</servlet-mapping>
 // 访问时,/a 下的资源都访问这个文件

映射通配符优先级:
① 谁的匹配度高,谁就命中
② *.do 的优先级最低

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值