JavaWeb-03 使用Eclipse工具开发Servlet、实现Servlet虚拟路径的映射

目录

一、Servlet简介

1、Servlet定义:

3、Servlet实现过程:

4、Servlet可以完成以下任务:

5、Servlet的特点:

Servlet层次结构 

Servlet接口、GenericServlet类、HttpServlet类三者之间的关系

 javax.servlet

  javax.servlet.http

   HttpServletRequest获得参数名和参数值的方法。     

Servlet的生命周期

 部署和访问Servlet

实现Servlet虚拟路径的映射

Servlet 映射路径中使用通配符


一、Servlet简介

1、Servlet定义:

Servlet(Server Applet)是Java Servlet的简称,是为小服务程序或服务连接器,用Java编写的服务器端程序,主要功能在于交互式地浏览和修改数据,生成动态Web内容。

(servlet是一个java小程序运行在web服务器。servlet接收并响应来自Web客户端的请求,通常通过HTTP,超文本传输协议。)

3、Servlet实现过程:

(1)客户端发送请求至服务器端;

(2)服务器将请求信息发送至 Servlet;

(3)Servlet 生成响应内容并将其传给服务器。响应内容动态生成,通常取决于客户端的请求;

(4)服务器将响应返回给客户端。

4、Servlet可以完成以下任务:

(1)动态生成HTML文档。

(2)将请求转发给Servlet组件。

(3)读取客户端的Cookie,以及向客户端写入Cookie。

(4)访问服务器的资源,如数据库、 XML、文件对像等。

5、Servlet的特点:

(1)Servlet对像,由Servlet容器(Tomcat)创建。

(2)Servlet是一个接口:位于javax.servlet包中。

(3)service方法用于接收用户的请求并返回响应。

(4)用户访问时多次被执行(可以统计网站的访问量)。

三协议四角色

Servlet层次结构 

Servlet是实现javax.servlet.Servlet 接口地对象。大多数Servelt通过从GenerticServlet或HttpServlet类进行扩展来实现。Servlet API包含于两个包中,即javax.servelt和javax.servlet.http

Servlet接口、GenericServlet类、HttpServlet类三者之间的关系

 

 javax.servlet


   接口:
      ServletConfig:定义了Servlet初始化的过程中由Servlet容器中传递给Servlet的配置信                 息对象。

      ServletContext:定义了Servlet使用的方法以获取其容器的信息。

      ServletRequest:定义一个对象封装客户向Servlet的请求的响应信息发送给客户端。

      ServletResponse:定义一个对象辅助Servlet将请求的响应信息发送给客户端。

      Servlet:定义所有Servlet必须要实现的方法。

   类:
      ServletInputStream定义名为readLine()的方法,从客户端读取二进制数据

      Servlet:定义抽象类,定义一个通用的、独立底层协议的Servlet

  javax.servlet.http


   接口:
      HttpSession:用于标识客户端并存储有关客户端的信息。

      HttpSessionAttributeListener:这个侦听用户获取会话的属性列表的改变的通知。

      HttpServletRequest:扩展ServletRequest接口,提供HTTP Servlet提供HTTP请求                                                               信息。

      HttpServletResponse: 扩展ServletResponse接口,提供HTTP特定的发送响应的                                                                功 能

   类:
      HttpServlet:扩展了GenericServlet的抽象类,用于扩展创建HttpServlet

      Cookie:创建一个Cookie,用于存储Servlet发送给客户端的信息。

   HttpServletRequest获得参数名和参数值的方法。
     

 getParameter(String key):返回一个字符串,获得name和key一样的表单控件,如果重复的name,则返回一个的值。

      getParameterValue(String key)返回一个字符串组,获得name和key一样的表单控件的数据,但相同name的空间会有多个,如同多个checkbox等。

      getParameterMap():返回一个包含参数的Map。为key-String[]模式,即,key是表单控件的name,同时,为了防止由重复的name的控件存在,每个name对应的值是一个字符串数组。

      getParameterNames():返回一个枚举类型值,返回所有表单中所表看控件的name。
 

Servlet的生命周期

   Servlet运行在Servlet容器中,其生命周期由容器来管理。Servlet的生命周期通过javax.servlet.Servlet接口中的init()、service()和destroy()方法来表示。

实现步骤:

1.新建web项目,并访问静态页面(html)

 注意选中生成web.xml的选项

  • 创建Servlet程序

右键单击项目的src文件,选择【New】→【Other】选项,进入创建Servlet的界面,最后一步按下图选择后Finish

 打开web.xml文件,对创建的虚拟映射路径进行配置

 部署和访问Servlet

打开【Servers】选项卡,选中部署Web应用的Tomcat服务器(关于Tomcat服务器的配置方式参考第2章),右键单击并选择【Add andRemove】选项

实现Servlet虚拟路径的映射

 在该Servlet的doGet()和doPost()方法中添加一些代码,具体如下  

<servlet>
      <servlet-name>TestServlet01</servlet-name>
      <servlet-class>cn.itcast.chapter.servlet.TestServlet01</servlet-class>
  </servlet>
  
  <servlet-mapping>
  <!-- 映射为 TestServlet01 -->>
      <servlet-name>TestServlet01</servlet-name>
      <url-pattern>/TestServlet01</url-pattern>
  </servlet-mapping>
  
  <servlet-mapping>
      <!-- 映射为 Test01 -->
      <servlet-name>TestServlet01</servlet-name>
      <url-pattern>/Test01</url-pattern>
  <servlet-mapping>
      <!-- 映射为 TestServlet01和Test02-->
      <servlet-name>TestServlet01</servlet-name>
      <url-pattern>/TestServlet01</url-pattern>
      <url-pattern>/Test02</url-pattern>
  </servlet-mapping>

 重启Tomcat服务器,在浏览器的地址栏中输入地址“http://localhost:8080/chapter03/TestSevlet01”访问TestServlet01

在浏览器的地址栏中输入地址“http://localhost:8080/chapter03/Test02”访问TestServlet01

由此可见:在一个<servlet-mapping>元素下配置多个<url-pattern>子元素同样可以实现Servlet的多重映射

Servlet 映射路径中使用通配符
 

要实现所有路径都可以访问同一个Servlet,可以在Servlet映射的路径中使用通配符“*”。通配符的格式有两种,具体如下。
(1)格式为“*.扩展名”,例如“*.do”匹配以“.do”结尾的所有URL地址。
(2)格式为“/*”,例如“/abc/*”匹配以“/abc”开始的所有URL地址。

缺省Servlet:
Servletd的映射路径仅仅是一个正斜线(/),那么这个servlet技术当前Web应用的缺省 Servlet。缺省Servlet用于处理其他Servlet都不处理的访问请求。对web.xml文件进行修改,将其设置为缺省的Servlet,具体如下

<servlet>
      <servlet-name>TestServlet01</servlet-name>
      <servlet-class>Lily.servlet.TestServlet01</servlet-class>
  </servlet>
  
  <servlet-mapping>
      <servlet-name>TestServlet01</servlet-name>
      <url-pattern>/</url-pattern>
  </servlet-mapping>
 

启动Tomcat服务器,在浏览器地址栏输入任意地址,如“http://localhost:8080/chapter03/abcde”

  • 0
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值