JavaWeb基础: 第一个Web应用(Servlet)
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)的更多相关文章
- JavaWeb从0开始学(一)-----搭建第一个Web应用程序与JSP工作原理
以往学习的时候大多是看完书或者看完视频,动手实践一下就OK了.然而过了一段时间我发现东西都忘差不多了,需要复习才能重新掌握.现在开始学习JavaWeb了,我将在这里记录自己的学习的一点一滴,不仅便于自 ...
- 基于servlet实现一个web框架
servlet作为一个web规范.其本身就算做一个web开发框架,可是其web action (响应某个URI的实现)的实现都是基于类的,不是非常方便,而且3.0之前的版本号还必须通过web.xml配 ...
- JavaWeb创建一个公共的servlet
JavaWeb创建一个公共的servlet,减去繁琐的doget.dopost,好好看好看学. 对于初学者来说,每次前端传数据过来就要新建一个类创建一个doget.dopost方法,其实铁柱兄在大学的 ...
- 使用java基础实现一个简陋的web服务器软件
使用java基础实现一个简陋的web服务器软件 1.写在前面 大学已经过了一年半了,从接触各种web服务器软件已经有一年多了,从大一上最开始折腾Windows电脑自带的IIS开始,上手了自己的第一个静 ...
- JavaWeb基础总结:Servlet专题
最近工作中有部分整改老接口的任务,大部分与Spring的拦截器,Tomcat相关,改到一些底层的代码发现,对基础J2EE的知识有些遗忘,需要频繁查阅,索性从头系统的整理一下Servlet和Filter ...
- servlet的一个web容器中有且只有一个servlet实例或有多个实例的理解1
servlet的一个web容器中有且只有一个servlet实例或有多个实例的理解 (2013-06-19 19:30:40) 转载▼ servlet的非线程安全,action的线程安全 对提交 ...
- javaWeb基础核心之一Servlet
既然是做JAVA开发的,先从一些基本的整理起来,算是知识回顾,加深记忆. 第一篇想到那理到哪,可能有点乱,不是太会排版,见谅,估计可能也就我自己看的懂. servlet在百度百科上的定义是这样的: S ...
- javaWeb学习总结(3)- Servlet基础
Servlet的应用 Servlet是一种独立于平台和协议的服务器端的Java应用程序,可以生成动态的web页面.它担当Web浏览器或其他http客户程序发出请求. 与http服务器上的数据库或应用程 ...
- Eclipse创建第一个Servlet(Dynamic Web Project方式)、第一个Web Fragment Project(web容器向jar中寻找class文件)
创建第一个Servlet(Dynamic Web Project方式) 注意:无论是以注解的方式还是xml的方式配置一个servlet,servlet的url-pattern一定要以一个"/ ...
随机推荐
- C语言实现单向链表及其各种排序(含快排,选择,插入,冒泡)
#include<stdio.h> #include<malloc.h> #define LEN sizeof(struct Student) struct Student / ...
- CodeForces 259A Little Elephant and Chess
Little Elephant and Chess Time Limit:2000MS Memory Limit:262144KB 64bit IO Format:%I64d &am ...
- [翻译]投影变换 Projection Transform (Direct3D 9)
你可以认为投影变换就是控制摄像机内部的一种方式.他可以类推为为摄像机选择一个漏字板.它是三种变换中最难懂的.本文只讨论以下的一些内容. 典型的投影变换就是缩放和透视投影.投影就变换把视椎转化为一个立方 ...
- C#无需IIS构建XmlRpc服务器
准备 我们使用CookComputing.XmlRpcServerV2 3.0.0来构建XmlRpc服务器. 新建一个控制台项目,在项目中添加对CookComputing.XmlRpcServerV2 ...
- @RequestMapping测试各种访问方式
这里访问WEB-INF目录下的页面,这个还不知道有没有类似struts2那样的通配符来可以访问不同的action,不同的method,不同 的页面,用户则很爽,有的话求告知,而且我还有一个问题就是配置 ...
- SqlServer 存储过程分页
适用于2005以上版本 create procedure [dbo].[SP_GetPageList] ( @columns nvarchar(max), --查询字段 @tablename nvar ...
- ruby的正则表达式-scan方法
irb(main):001:0> str_vps=%Q{viewpoint_ids: [{"id":"260e053b-d728-4785-888d-eb4f1ca ...
- IP地址匹配
问题描述: 在路由器中,一般来说转发模块采用最大前缀匹配原则进行目的端口查找,具体如下: IP地址和子网地址匹配: IP地址和子网地址所带掩码做AND运算后,得到的值与子网地址相同,则该IP地址与该子 ...
- iOS - Swift String 字符串
前言 public struct String public class NSString : NSObject, NSCopying, NSMutableCopying, NSSecureCodin ...
- 关于Spring定时任务(定时器)用法
Spring定时任务的几种实现 Spring定时任务的几种实现 一.分类 从实现的技术上来分类,目前主要有三种技术(或者说有三种产品): 从作业类的继承方式来讲,可以分为两类: 从任务调度的触发时机来 ...