`
Sev7en_jun
  • 浏览: 1225325 次
  • 性别: Icon_minigender_1
  • 来自: 广州
博客专栏
84184fc0-d0b6-3f7f-a3f0-4202acb3caf5
Apache CXF使用s...
浏览量:111298
社区版块
存档分类
最新评论

Java Servlet学习笔记

    博客分类:
  • Java
 
阅读更多
Java Servlet学习笔记 
Servlet的注册与运行
1. Servlet程序必须通过Servlet引擎来启动运行,并且储存目录有特殊要求,通常需要存储在<WEB应用程序目录>\WEB-INF\classes\目录中。
2. Servlet程序必须在WEB应用程序的web.xml文件中进行注册和映射其访问路径,才可以被Servlet引擎加载和被外界访问。
3. 一个<servlet>元素用于注册一个Servlet,它包含有两个主要的子元素:<servlet-name>和<servlet-class>,分别用于设置Servlet的注册名和Selvet的完整类名。
4. 一个<servlet-mapping>元素用于映射一个已注册的Servlet的一个对外访问路径,它包含有两个子元素:<servlet-name>和<url-pattern>,分别用于指定Servlet的注册名称和Servlet的对外访问路径
<web-app>
... ...
<servlet>
<servlet-name> AnyName </servlet-name>
<servlet-class> HelloServlet </servlet-class>
</servlet>
... ...
<servlet-mapping>
<servlet-name> AnyName</servlet-name>
<url-pattern> /demo/hello.html </url-pattern>
</servlet-mapping>
... ...
</web-app>


Servlet映射的细节

1. 同一个Servlet可以被映射到多个URL上,即多个<servelt-mapping>元素的<servlet-name>子元素的设置值可以是同一个Servlet的注册名。
2. 在Servlet映射到URL中也可以使用*通配符,但是只能有两种固定的格式:一种格式是"*.扩展名",另一种格式是以正斜杠(/)开头并以"/*"结尾。

<servlet-mapping>
<servlet-name>
AnyName
</servlet-name>
<url-pattern>
*.do
</url-pattern>
</servlet-mapping>

<servlet-mapping>
<servlet-name>
AnyName
</servlet-name>
<url-pattern>
/action/*
</url-pattern>
</servlet-mapping>


Servlet映射的最具体匹配原则
对于如下的一些映射关系:
1. /abc/*         映射到 Servlet1            优先级高
2. /*                    映射到 Servlet2            优先级高
3. /abc                映射到 Servlet3       
4. *.do                映射到 Servlet4            优先级低

将发生如下一些行为:
1. 当请求URL为"/abc/a.html", "/abc/*" 和"/*" 都可以匹配这个URL,Servlet引擎将调用Servlet1
2. 当请求URL为"/abc", "/abc/*" 、 "/abc" 和"/*" 都可以匹配这个URL,Servlet引擎将调用Servlet3
3. 当请求URL为"/abc/a.do", "/abc/*" 和"*.do" 都可以匹配这个URL,Servlet引擎将调用Servlet1
4. 当请求URL为"/a.do", "/*" 和"*.do" 都可以匹配这个URL,Servlet引擎将调用Servlet2
5. 当请求URL为"/xxx/yyy/a.do", "/*" 和"*.do" 都可以匹配这个URL,Servlet引擎将调用Servlet2


注册和访问Servlet程序的过程
1. 在webapps目录中创建文件夹lesson
2. 在lesson目录中创建文件夹WEB-INF
3. 在WEB-INF目录中创建文件web.xml 并创建文件夹classes

注意:
URL: /action/*.xx格式有误
Servlet是不能被设置为web的默认网页文档

web.xml
<?xml version="1.0" encoding="ISO-8859-1"?>
<!DOCTYPE web-app
PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"
"http://java.sun.com/dtd/web-app_2_3.dtd">

<web-app xmlns="http://java.sun.com/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"
version="2.5">
<servlet>
<servlet-name> AnyName</servlet-name>
<servlet-class>HelloServlet</servlet-class>
</servlet>

<servlet-mapping>
<servlet-name> AnyName</servlet-name>
<url-pattern>/demo/hello.html</url-pattern>
</servlet-mapping>

<servlet-mapping>
<servlet-name> AnyName</servlet-name>
<url-pattern>/action/*</url-pattern>
</servlet-mapping>

<servlet-mapping>
<servlet-name> AnyName</servlet-name>
<url-pattern> *.do</url-pattern>
</servlet-mapping>

<welcome-file-list>
<welcome-file> test.do </welcome-file>
</welcome-file-list>


缺省Servlet
· 如果某个Servlet的映射路径仅仅为一个正斜杠(/),那么这个Servelt就成为当前Web应用程序的缺省Servlet。
· 凡是在web.xml文件中找不到匹配的<servlet-mapping>元素的URL,他们的访问请求都将交给缺省Servlet处理,也就是说,缺省Servlet用于处理所有其他Servlet都不处理的访问请求。
· 在<tomcat的安装目录>\conf\web.xml文件中注册了一个名称为org.apache.catalina.servlets.DefaultServlet,并将这个Servlet设置为了缺省Servlet。
· 当访问Tomcat服务器中的某个静态HTML文件和图片时,实际上是在访问这个缺省Servlet。
分享到:
评论

相关推荐

    java Servlet学习笔记

    Java Servlet是Java编程语言中用于处理Web服务器与客户端交互的一种技术,主要应用于构建动态Web应用程序。Servlet是Java EE(企业版)的一部分,它允许开发者在服务器端创建强大的、可扩展的网络应用程序。以下是对...

    Servlet学习笔记(java的Servlet)

    Servlet学习笔记(java的Servlet)。 jsp的学习基础。此笔记可让你5天内学会使用Servlet,可快速入门,也可当手册使用。 更多:http://download.csdn.net/user/daillo/all

    Java相关课程系列笔记之九Servlet学习笔记

    Java相关课程系列笔记之九Servlet学习笔记 Java相关课程系列笔记之十JSP学习笔记 Java相关课程系列笔记之十一Ajax学习笔记 Java相关课程系列笔记之十二jQuery学习笔记 Java相关课程系列笔记之十三Struts2学习笔记 ...

    java-servlet学习笔记

    在本篇学习笔记中,我们将深入探讨与Java Servlet相关的知识点,包括其工作原理、生命周期、配置以及实际应用。 首先,了解Servlet的工作原理至关重要。当一个HTTP请求到达服务器,Web容器(如Tomcat)会识别请求的...

    JSP_Servlet学习笔记(第2版).pdf

    《JSP & Servlet学习笔记(第2版)》是作者多年来教学实践经验的总结,汇集了学生在学习JSP&Servlet;或认证考试时遇到的概念、操作、应用等各种问题及解决方案。 《JSP & Servlet学习笔记(第2版)》针对Servlet 3.0的...

    林学良Jsp&Servlet学习笔记

    **林学良Jsp&Servlet学习笔记**: 这份学习资料可能是对JSP和Servlet基础知识的系统性讲解,涵盖了上述概念和原理,适合初学者入门。通过阅读这份笔记,你可以了解JSP和Servlet的基本语法、生命周期、以及如何将它们...

    JSP&Servlet学习笔记.pdf

    由于这部分内容是电子书中的学习笔记,电子书的内容并未直接给出,因此只能根据电子书的标题“JSP&Servlet学习笔记”和描述来推测可能涉及的知识点,而没有具体的电子书内容可以分析。如需进一步学习,建议查阅相关...

    [JSP&Servlet;学习笔记(第2版)]

    **JSP(Java Server Pages)与Servlet...这个**[JSP&Servlet学习笔记(第2版)]**会涵盖这些主题,并可能包括示例代码、最佳实践和常见问题解答,帮助读者全面掌握JSP和Servlet的使用技巧,进一步提升Java Web开发能力。

    jsp/servlet个人学习笔记

    **JSP(JavaServer Pages)/Servlet 知识详解** JSP 和 Servlet 是 Java Web 开发中的核心组件,它们在构建动态网站时起着至关重要的作用。以下是对这两个技术及其相关概念的详细解释: 1. **JSP 基础** JSP 是一...

    JSP&Servlet学习笔记(第2版)_打印版

    根据提供的文件信息,标题为“JSP&Servlet学习笔记(第2版)_打印版”,描述指出文档经过空白边裁剪处理以便于打印。虽然提供的部分内文无法直接转化为明确的知识点,但我们可以根据标题和描述推测该文档的主要内容,...

    Java web中servlet学习笔记 核心

    - 编写Servlet:创建一个Java类并实现Servlet接口,或者继承GenericServlet或HttpServlet。 - 配置Servlet:修改`web.xml`文件,为Servlet提供一个可以通过HTTP访问的URI。 - 部署Servlet:将应用部署到如Tomcat...

    JSP Servlet学习笔记

    JSP Servlet学习笔记,java编程相关知识

    Jsp&Servlet学习笔记中的完整范例Gossip

    **JSP(JavaServer Pages)与Servlet是Java Web开发中两个关键的技术,它们在Web应用程序中扮演着重要的角色。** **JSP** 是一种动态网页...通过分析这些文件,可以进一步学习如何组织和构建一个完整的Java Web应用。

    servlet学习笔记.doc

    Servlet是Java平台中用于开发Web应用程序的核心技术之一,它是一个Java类,遵循Java Servlet API规范,用于处理来自客户端(通常是Web浏览器)的HTTP...学习和理解Servlet是成为一名合格的Web开发者的关键技能之一。

    Servlet学习笔记3

    ### Servlet学习笔记3:深入理解Servlet与Web应用资源管理 #### 标题解析与扩展知识点 **标题**:“Servlet学习笔记3”表明这是系列学习笔记的一部分,专注于Servlet技术的深入探讨。 **知识点**: 1. **Servlet...

    JSP Servlet 学习笔记源码

    本学习笔记源码提供了全面的学习资源,涵盖了这两个技术的基础到高级应用,旨在帮助开发者深入理解并熟练掌握JSP和Servlet。 1. **JSP基础**: JSP是一种服务器端的脚本语言,它将HTML、CSS、JavaScript与Java代码...

    Java相关课程系列笔记

    Java相关课程系列笔记之九Servlet学习笔记(建议用WPS打开) Java相关课程系列笔记之六HTML学习笔记(建议用WPS打开) Java相关课程系列笔记之七CSS学习笔记(建议用WPS打开) Java相关课程系列笔记之三PLSQL学习...

    Servlet &JSP学习笔记NetBeans源代码

    在这个"Servlet & JSP学习笔记NetBeans源代码"压缩包中,你将找到一系列与Servlet和JSP相关的示例代码,这些代码是基于NetBeans IDE编写的,并且是在Tomcat服务器上运行的。 Tomcat是一个开源的轻量级Web服务器和...

Global site tag (gtag.js) - Google Analytics