第3.41课 上课 Servlet的定义和配置, 什么是Servlet?, 如何…

3_41

Servlet的定义和配置

 什么是Servlet?

1.动态网页技术:

--PHP:比较老,但是生命力依然顽强,他是纯粹的动态脚本语言

--ASP、ASP.NET:微软的动态网页技术

--CGI:古老的动态网页技术,一个请求对应一个进程

--RUBY:纯粹的脚本语言

--JSP:Java Server Page (Java服务器语言)

2.一句话,Servlet是运行在web服务器中的一个Java类。通常,Servlet用户接收和响应客户端的Http请求。

3.HTTP请求的流程:

 

请求 解析请求消息

浏览器 -------> 服务器 ---------------> 调用servlet

<-------- <---------------

返回消息 生成响应消息

 如何写一个Servlet?

  用浏览器访问Servlet

  servlet-mapping

告诉Tomcat,哪个URL由对应的Servlet进行处理,根据Servlet简短的名字来进行关联。

 

  修改web.xml

   servlet

用来告诉tomcat哪个类是实现Servlet接口的类,并且起一个简短名字

   servlet-mapping

告诉Tomcat,哪个URL由对应的Servlet进行处理,根据Servlet简短的名字来进行关联

 

 

  Servlet调用过程

例如:在浏览器输入http://127.0.0.1:8080/ebuy/login后,首先,

1.Tomcat服务器接收到请求后,获取请求的URL,然后找到/ebuy对应WEB应用;

2.找WEB应用中web.xml,匹配servlet-mapping,看有没有能够匹配后面一段“/login”;

3.匹配到servlet-mapping以后,可以找到servlet-name,然后根据servlet-name找servlet-class;

4.找到servlet-class,初始化servlet实例;

5.调用servlet实例的service方法;

 Servlet映射的规则

  映射url-pattern规则

映射url-pattern规则:

1)开头必须是“/”或者是“*.”;

2)“*.<精确匹配部分>”表示URL以“.<精确匹配部分>”结尾。

例如,LoginServlet.do就配置成*.do;

3)“/*”表示匹配该WEB应用下所有的URL(缺省Servlet);

4)Servlet的URL进行匹配时,如果匹配到了一个符合的url-pattern,后续的url-pattern将不再进行匹配;

5)一个Servlet类可以有多个mapping;

6)映射的时候注意:servlet-name必须要和servlet元素里面的相等;

  映射匹配的优先级

映射匹配的优先级:

1)“/开头优先匹配,按精度优先的原则,找到第一个以后,不会匹配后面的;

2)“*.开头的,总是在后面的匹配;

 

例如:

对于如下的一些映射关系:

Servlet1 映射到 /abc/*

Servlet2 映射到 /abc

Servlet3 映射到 *.do

 

URL匹配情况:

当请求URL为“/abc/a.html”,“/abc/*”匹配,Servlet引擎将调用Servlet1;

当请求URL为“/abc”时,“/abc”匹配,Servlet引擎将调用Servlet2;

当请求URL为“/abc/a.do”时,“/abc/*”和“*.do”匹配,Servlet引擎将调用Servlet1。因为“/”优先匹配,所以Servlet3不会被调用;

当请求URL为“/a.do”时,“*.do”匹配,Servlet引擎将调用Servlet3;

posted on 2018-01-31 23:02  東風★破  阅读(334)  评论(0)    收藏  举报

导航