Servlet类基础详解

Servlet学习的大纲:

1. servlet概念及相关接口简介

2. servet 执行过程

3. servlet路径映射

4. 缺省servlet          --应用

5. servlet生命周期(重点)   --理解(重点)

l 6. Servlet自动加载 

7. Servlet线程安全 

8. servletConfig对象

9. Servlet相关接口详解

10. ServletContext对象     --知识点

1 如何开发一个Servlet

1.1 步骤:

1)编写java类,继承HttpServlet

2)重写doGetdoPost方法

3Servlet程序交给tomcat服务器运行!!

3.1 servlet程序的class码拷贝到WEB-INF/classes目录

3.2 web.xml文件中进行配置

<!-- 配置一个servlet -->
  <!-- servlet的配置 -->
  <servlet>
  	<!-- servlet的内部名称,自定义。尽量有意义 -->
  	<servlet-name>FirstServlet</servlet-name>
  	<!-- servlet的类全名: 包名+简单类名 -->
  	<servlet-class>你的包名<span style="font-family: 宋体;">.FirstServlet</servlet-class></span>
  </servlet>
  
  
  <!-- servlet的映射配置 -->
  <servlet-mapping>
  	<!-- servlet的内部名称,一定要和上面的内部名称保持一致!! -->
  	<servlet-name>FirstServlet</servlet-name>
  	<!-- servlet的映射路径(访问servlet的名称) -->
  	<url-pattern>/first</url-pattern>
  </servlet-mapping>

问题:访问次URL:  http://localhost:8080/day10/first  

前提: tomcat服务器启动时,首先加载webapps中的每个web应用的web.xml配置文件。

http://: http协议

localhost: 到本地的hosts文件中查找是否存在该域名对应的IP地址

127.0.0.1

8080:    找到tomcat服务器

/day10     在tomcatwebapps目录下找 day10的目录

/first    资源名称。

查找过程

1)在day10web.xml中查找是否有匹配的url-pattern的内容(/first

2)如果找到匹配的url-pattern,则使用当前servlet-name的名称到web.xml文件中查询是否相同名称的servlet配置

3)如果找到,则取出对应的servlet配置信息中的servlet-class内容:

字符串: 你的包名.FirstServlet

 

通过反射:

a)构造FirstServlet的对象

b)然后调用FirstServlet里面的方法


2 Servlet的映射路径

<servlet-mapping>
  	<!-- servlet的内部名称,一定要和上面的内部名称保持一致!! -->
  	<servlet-name>FirstServlet</servlet-name>
  	<!-- servlet的映射路径(访问servlet的名称) -->
  	<url-pattern>/first</url-pattern>
  </servlet-mapping>

                   url-pattern                   浏览器输入

精确匹配             /first                 http://localhost:8080/day10/first

/itcast/demo1          http://localhost:8080/day10/itcast/demo1

 

模糊匹配             /*                   http://localhost:8080/day10/任意路径

/itcast/*               http://localhost:8080/day10/itcast/任意路径

*.后缀名              http://localhost:8080/day10/任意路径.do

*.do

*.action

*.html(伪静态)

注意:

1url-pattern要么以 / 开头,要么以*开头。  例如, itcast是非法路径。

2)不能同时使用两种模糊匹配,例如 /itcast/*.do是非法路径

3)当有输入的URL有多个servlet同时被匹配的情况下:

3.1 精确匹配优先。(长的最像优先被匹配)

3.2 以后缀名结尾的模糊url-pattern优先级最低!!!

3 servlet缺省路径

servlet的缺省路径(<url-pattern>/</url-pattern>)是在tomcat服务器内置的一个路径。该路径对应的是一个DefaultServlet(缺省Servlet)。这个缺省的Servlet的作用是用于解析web应用的静态资源文件

 

问题: URL输入http://localhost:8080/day10/index.html 如何读取文件????

 

1)到当前day10应用下的web.xml文件查找是否有匹配的url-pattern

2)如果没有匹配的url-pattern,则交给tomcat的内置的DefaultServlet处理

3DefaultServlet程序到day10应用的根目录下查找是存在一个名称为index.html的静态文件。

4)如果找到该文件,则读取该文件内容,返回给浏览器。

5)如果找不到该文件,则返回404错误页面。

 

结论: 先找动态资源,再找静态资源。

下章节来单独介绍一下servlet的生命周期


  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值