11_Servlet的一些细节知识点

【Servlet的细节知识点1-----一个Servlet映射到多个URL】

同一个Servlet可以被映射到多个URL上,即多个<servlet-mapping>元素的<servlet-name>子元素的设置值可以是同一个Servlet的注册名。

如下:

[ 工程截图 ]

[ web.xml ]

<?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"
         id="WebApp_ID" version="3.0">
  <display-name>HelloServlet</display-name>

  <servlet>
      <servlet-name>ServletDemo01</servlet-name>
      <servlet-class>com.Higgin.servlet.ServletDemo01</servlet-class>
  </servlet>

  <servlet-mapping>
      <servlet-name>ServletDemo01</servlet-name>
      <url-pattern>/higgin.html</url-pattern>     <!--伪html-->
  </servlet-mapping>

  <servlet-mapping>
      <servlet-name>ServletDemo01</servlet-name>
      <url-pattern>*.do</url-pattern>    <!-- 匹配所有后缀为.do的URL -->
  </servlet-mapping>
</web-app>

[ ServletDemo01.java ]

package com.Higgin.servlet;

import java.io.IOException;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

//@WebServlet("/ServletDemo01")
public class ServletDemo01 extends HttpServlet {
    private static final long serialVersionUID = 1L;

    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        System.out.println("ServletDemo01----doGet");
        System.out.println(request.getRequestURL());  //获取客户端发出请求的URL
    }

    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        doGet(request, response);
    }

}

[ 运行结果 ]

1.浏览器URL输入  http://localhost:8080/HelloServlet/higgin.html

2.浏览器URL输入http://localhost:8080/HelloServlet/adfcvsd.do (只要是.do后缀)

【Servlet的细节知识点2-----通配符*】

Servlet映射到url中可以使用*通配符,但是只能有两种固定的格式:

格式一: *.扩展名                                    例子:  *.do

格式二: 正斜杠“/”开头并以"/*"结尾             例子: /action/*

【Servlet的细节知识点3-----在修改web.xml时,无需重启TomCat的原因】

我们打开Tomcat服务器所在的conf/context.xml

<WatchedResource>WEB-INF/web.xml</WatchedResource>这句配置保证JavaWeb工程在web.xml被修改时,tomcat服务器会自动加载修改后的web.xml。

【Servlet的细节知识点4-----关于映射关系再深入】

【Servlet的细节知识点5-----Servlet内各个方法调用细节】

Servlet是一个供其它java程序(Servlet引擎)调用的Java类,它不能独立运行,它的运行由Servlet引擎来控制和调度。

  针对客户端的多次Servlet请求,通常情况下,服务器只会创建一个Servlet实例对象,也就是说Servlet实例对象一旦创建,它就会驻留在内存中,为后续的其它请求服务,直至web容器退出,Servlet实例对象才会被销毁。

  在Servlet的整个生命周期内,Servlet的init方法只被调用一次。

  而对于一个Servlet的每次访问请求都导致Servlet引擎调用一次Servlet的service()方法。

  对于每次访问请求,Servlet引擎都会创建一个新的HttpServletResponse响应对象,然后将这两个对象作为参数传递给它调用的Servlet的service()方法,service()方法再根据请求方式分别调用doXXX方法。

时间: 2025-01-01 11:50:58

11_Servlet的一些细节知识点的相关文章

Android UI细节知识点一(edittext、listview、填充屏幕等)

这周在公司App即将发布,根据UI的要求,再次对界面进行UI交互的调整.总结了一下小知识细节. 一.控件获取焦点 mText.setText("gfgss"); mText.setFocusable(true); xml里面输入框设置默认获取焦点 <requestFocus /> <AutoCompleteTextView android:layout_width="0dp" android:layout_height="match_pa

细节知识点的记忆

1:字符串的拼接 NSTring *path = [NString stringWithFormat:@“%@%@%@@“,需要打印的东西]; 2: 消除状态栏对View 中的影响 self.edgesForExtendedLayout = UIRectEdgeNone; 3: 隐藏状态栏 - (BOOL) prefersStarsBarHidder { return YES; } 一句代码,导航栏上的左右按钮(添加标题,添加突发事件) self.navigationItem.rightBarB

C++中细节知识点

C++中常识小知识: 1.在C++的类中成员变量与成员函数默认为私有的,结构体中的成员变量与成员函数默认为公有的. 2.C++中this关键字是指针,指向当前对象. 3.在C++中一般类的成员变量与成员函数声明放在.h文件中,对成员函数的实现放在.cpp文件,为了防止不同类中实现了同名函数,一般在.h与.cpp文件外加上命名空间.在main.cpp中直接using namespace name_space即可. 注:在Makefile文件中,[email protected]代表生成目标,$^代

你所不了解的javascript操作DOM的细节知识点(一)

一:Node类型 DOM1级定义了一个Node接口,该接口是由DOM中的所有节点类型实现.每个节点都有一个nodeType属性,用于表明节点的类型,节点类型在Node类型中有以下几种: Node.ELEMENT_NODE(1);  元素节点 Node.ATTRIBUTE_NODE(2); 属性节点 Node.TEXT_NODE(3);  文本节点 Node.DOCUMENT_NODE(9); 文档节点 其实还有很多种,但是那些都不是很常用,所以就来理解这其中4种就可以了,我们先来看看节点类型,比

React Native细节知识点总结&lt;一&gt;

1.propTypes: static propTypes = { name:PropTypes.string, ID:PropTypes.number.isRequired, } 'isRequired' 表示如果不传递这个属性,那么开发阶段中,系统会出现警告,让我们对其进行属性确认,也就是说是否为必须属性. 1>属性为任何类型: React.PropTypes.any 2>属性是否是 JavaScript 基本类型: React.PropTypes.array; React.PropTyp

JavaScript高级程序设计中第2、3章中细节知识点

第2章 1.<script src='script.js' type='text/javascript'></script>中,只要不包含defer和async属性,浏览器都会按照<script>元素在页面的出现顺序对它们依次进行解析. 2.defer属性     <script>中的defer属性的用途是表明脚本在执行时不会影响页面的构造,即,脚本会被延迟到整个页面都解析完毕后在运行.所以设置了defer属性就是相当于告诉浏览器立即下载但延迟执行. def

Android细节知识点总结

1.ImageView控件的ScaleType属性:matrix   fitXY  fitStart   fitCenter  fitEnd  center   centerCrop  centerInside matrix 用矩阵来绘制(从左上角起始的矩阵区域) fitXY  把图片不按比例扩大/缩小到View的大小显示(确保图片会完整显示,并充满View) fitStart  把图片按比例扩大/缩小到View的宽度,显示在View的上部分位置(图片会完整显示) fitCenter  把图片

正则知识点解读及常用表达式(判断有效数字、手机号邮箱等)

---恢复内容开始--- 1.正则仅仅就是用来处理字符串的:匹配.捕获 匹配:验证当前的字符串是否符合我们的规则(每一个正则都是一个规则) 捕获:在整个字符串当中,把符合规则的字符都依次的获取到--->exec.match.replace 2.正则的组成:元字符.修饰符 元字符: 特殊意义的元字符: \d匹配一个0-9的数字相当于[0-9],和它相反的 \D匹配一个除了0-9的任意字符相当于[] \w匹配一个0-9.a-z.A-Z_ 的数字或字符,相当于[0-9a-zA-Z_]  . \s匹配一

UML期末绘图及细节总结

往届期末绘图的题目例如以下所看到的: Read the providing materials carefully, and then do tasks. 2.1: Use Case Diagram Develop a detailed use case model for the application "X单词". The model should take auser's(rather than system's) perspective.Define use cases for