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. <iframe>标签的一些说明

    <iframe>标签里的marginwidth/marginheight属性定义的是框架内部的margin(框架和其父元素之间的margin可以用style="margin:.. ...

  2. wordpress中文标签无法访问的解决方法

    wordpress中文标签无法访问的解决方法  爱好  2年前 (2014-05-29)  7,601  8 当博客从华夏名网转移到阿里云之后,发现了不少问题,其中一个就是wordpress中文标签无 ...

  3. 获取Token不完整问题

    有时会遇到获取Token只能获取一半的问题,明明有两个Cookie,但只获取到一个,这个是因为301重定向跳转设置问题,设置为True就可以获取到完整的Token了. myHttpWebRequest ...

  4. tiled工具使用

    转的 在这个分为上下两部分的教程中,我们将介绍如何使用Cocos2D-X和地图编辑器做一款基于地图块的游戏.在这个简单的地图块游戏里,一个精灵将在沙漠里搜寻它可口的西瓜! 在教程的第一部分,我们将介绍 ...

  5. yii2-datepicker/datetimepicker插件使用

    datepicker: https://github.com/2amigos/yii2-date-picker-widget 通过composer安装: composer require 2amigo ...

  6. javascript获取类元素

    代码测试是ie5+: 原生javascript中筛选出含有指定类的元素: 思想:在指定范围里把所有的元素筛选出来,然后把里面的每个元素都遍历找出它们含有的所有类,然后逐个元素遍历它们各自的类,如果指定 ...

  7. iOS - ASIHTTPRequest 网络请求

    前言 使用 iOS SDK 中的 HTTP 网络请求 API,相当的复杂,调用很繁琐,ASIHTTPRequest 就是一个对 CFNetwork API 进行了封装,并且使用起来非常简单的一套 AP ...

  8. Android星星评分控件RatingBar的使用

    在Android的开发中,有一个叫做评分控件RatingBar,我们可以使用该控件做等级划分.评分等作用,星星形状显示,也可以半星级别,我们来看一下评分控件如何使用. 布局文件中定义控件以及属性,这里 ...

  9. jQuery封装函数

    //1,插件命名:jQuery.插件名.js 为拉避免和其他库的冲突// //2,自定义插件尽量避免使用$ 如果非要使用$就一定要将jQuery传递进去,//写在最后加一个小括号写jquery ;结束 ...

  10. TCP 连接建立和断开,以及状态转换

    1. TCP报文结构 TCP是一种可靠.面向连接.全双工的传输层协议,其报文格式如下所示:      源端口.目的端口:16位长.标识出远端和本地的端口号.     顺序号:32位长.表明了发送的数据 ...