Servlet的生命周期

<servlet-mapping>和<servlet>

  • Web应用的用户是通过指定浏览器中URL地址来访问Web应用提供的静态或者是动态资源,如果Servlet想被客户访问,必须配置特定Servlet的访问路径,这个工作在web.xml里通过配置servlet和servlet-mapping来实现。<servlet>用来指定工程中class的位置,<servlet-mapping>指定特定名字servlet的访问路径。
  • 如果某个Servlet的url-pattern是"/",该Servlet就是缺省servlet,否则系统会默认展示index.jsp, 如果index.jsp也没有启动该应用就会报找不到资源(没有默认的缺省文件)。配置了缺省路径的情况下,如果用户请求一个系统不存在的URL,会自动的调用缺省的url对应的servlet进行处理。
  • 除了用户自定义的缺省Servlet,Tomcat还提供一个缺省Servlet帮助查找静态资源,访问Web应用中某个静态文件,本质上也是通过访问Tomcat缺省Servlet来查找和展示的,这个缺省的Servlet在<tomcathome>\conf\web.xml中配置,对应的类是org.apache.catalina.servlets.DefaultServlet.
  • 同一个Servlet可以被映射到多个URL上,即多个<servlet-mapping>引用同一个<servlet>。
  • <url-pattern>可以有扩展名也可以没有,这就是为什么有的网页带.html, 有的网页不带.html
  • <url-pattern>可以使用*通配符,但是只能有两种固定格式,一种是“ *.扩展名”结束(eg: *.do, /XXX/*.html),一种是以“/开头,以/*结尾”(eg:/XXX/*, /XXX/XXX/*)。当有通配符时,如果用户输入的路径有多个对应的url-pattern, 会自动寻找最精确匹配的url-pattern, 并调用相应的servlet进行处理。
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" version="3.0">
<servlet>
  <servlet-name>FirstHttpServlet</servlet-name>
  <servlet-class>servlet.basic.FirstHttpServlet</servlet-class>
</servlet>
<servlet-mapping>
  <servlet-name>FirstHttpServlet</servlet-name>
  <url-pattern>/helloServlet</url-pattern>
</servlet-mapping>
<servlet-mapping>
  <servlet-name>FirstHttpServlet</servlet-name>
  <url-pattern>/helloServlet/</url-pattern>
</servlet-mapping>
<servlet-mapping>
  <servlet-name>FirstHttpServlet</servlet-name>
  <url-pattern>/helloServlet.html</url-pattern>
</servlet-mapping>
<servlet-mapping>
  <servlet-name>FirstHttpServlet</servlet-name>
  <url-pattern>/helloWeb/*</url-pattern>
</servlet-mapping>
<servlet-mapping>
  <servlet-name>FirstHttpServlet</servlet-name>
  <url-pattern>*.html</url-pattern>
</servlet-mapping>
</web-app>

路径匹配很重要, 多少一个字符("/")都可能导致查找不到对应的资源

中文乱码

JavaWeb基础: 第一个Web应用(Servlet)的更多相关文章

  1. JavaWeb从0开始学(一)-----搭建第一个Web应用程序与JSP工作原理

    以往学习的时候大多是看完书或者看完视频,动手实践一下就OK了.然而过了一段时间我发现东西都忘差不多了,需要复习才能重新掌握.现在开始学习JavaWeb了,我将在这里记录自己的学习的一点一滴,不仅便于自 ...

  2. 基于servlet实现一个web框架

    servlet作为一个web规范.其本身就算做一个web开发框架,可是其web action (响应某个URI的实现)的实现都是基于类的,不是非常方便,而且3.0之前的版本号还必须通过web.xml配 ...

  3. JavaWeb创建一个公共的servlet

    JavaWeb创建一个公共的servlet,减去繁琐的doget.dopost,好好看好看学. 对于初学者来说,每次前端传数据过来就要新建一个类创建一个doget.dopost方法,其实铁柱兄在大学的 ...

  4. 使用java基础实现一个简陋的web服务器软件

    使用java基础实现一个简陋的web服务器软件 1.写在前面 大学已经过了一年半了,从接触各种web服务器软件已经有一年多了,从大一上最开始折腾Windows电脑自带的IIS开始,上手了自己的第一个静 ...

  5. JavaWeb基础总结:Servlet专题

    最近工作中有部分整改老接口的任务,大部分与Spring的拦截器,Tomcat相关,改到一些底层的代码发现,对基础J2EE的知识有些遗忘,需要频繁查阅,索性从头系统的整理一下Servlet和Filter ...

  6. servlet的一个web容器中有且只有一个servlet实例或有多个实例的理解1

    servlet的一个web容器中有且只有一个servlet实例或有多个实例的理解 (2013-06-19 19:30:40) 转载▼     servlet的非线程安全,action的线程安全 对提交 ...

  7. javaWeb基础核心之一Servlet

    既然是做JAVA开发的,先从一些基本的整理起来,算是知识回顾,加深记忆. 第一篇想到那理到哪,可能有点乱,不是太会排版,见谅,估计可能也就我自己看的懂. servlet在百度百科上的定义是这样的: S ...

  8. javaWeb学习总结(3)- Servlet基础

    Servlet的应用 Servlet是一种独立于平台和协议的服务器端的Java应用程序,可以生成动态的web页面.它担当Web浏览器或其他http客户程序发出请求. 与http服务器上的数据库或应用程 ...

  9. Eclipse创建第一个Servlet(Dynamic Web Project方式)、第一个Web Fragment Project(web容器向jar中寻找class文件)

    创建第一个Servlet(Dynamic Web Project方式) 注意:无论是以注解的方式还是xml的方式配置一个servlet,servlet的url-pattern一定要以一个"/ ...

随机推荐

  1. ZOJ 2182 Cable TV Network(无向图点割-最大流)

    题目链接:http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemCode=2182 题意:给出一个无向图,问最少删掉多少个顶点之后图变得不连通 ...

  2. node-webkit中使用sqlite3(MAC平台)

    前言 最近使用node-webkit开发一款博客发布软件,来替换难用的Windows Live Writer(主要是对Markdown标签的支持很差劲).为了解决博文信息临时保存的问题,想到了使用sq ...

  3. 如何查看postfix的版本

    [root@localhost sasl2]# postconf -d | grep mail_versionmail_version = 2.10.1milter_macro_v = $mail_n ...

  4. HttpServletResponse 学习

    1: 利用Response向浏览器输出中文: private void test1(HttpServletResponse response) throws IOException { String ...

  5. iOS - OC 数据持久化

    1.Sandbox 沙箱 iOS 为每个应用提供了独立的文件空间,一个应用只能直接访问为本应用分配的文件目录,不可以访问其他目录,每个应用自己独立的访问空间被称为该应用的沙盒.也就是说,一个应用与文件 ...

  6. iOS - Swift Enum 枚举

    1.Enum 的创建 1.1 标准定义 枚举的定义 enum CompassPoint { case North case South case East case West } enum Plane ...

  7. hibernate对象关系实现(三)多对多实现

    单向n-n:(catogory-item)一个类别对应多个条目,一个条目对应多个类别 a.以类别类中有条目的集合的引用为例: b.数据库中的体现:建立一个新表,以类别和条目的主键关联的外键做新表的联合 ...

  8. 笔记本_hp

    1.技术支持 http://support.hp.com/cn-zh 2.搜到的信息:“http://forum.51nb.com/thread-1080424-1-1.html” Product N ...

  9. Web缓存的作用与类型

    前言 Web缓存是指一个Web资源(如html页面,图片,js,数据等)存在于Web服务器和客户端(浏览器)之间的副本.缓存会根据进来的请求保存输出内容的副本:当下一个请求来到的时候,如果是相同的UR ...

  10. Python学习(5)条件语句

    目录 Python 条件语句 Python 简单的语句组 Python 条件语句 Python条件语句是通过一条或多条语句的执行结果(True或者False)来决定执行的代码块. 可以通过下图来简单了 ...