Servlet技术概述

什么是Servlet

  • 用于交互式的浏览和修改数据,生成动态Web内容
  • Servlet是用Java编写的服务器端程序,由服务器端调用和执行的任何Java类。
  • Servlet是使用Java Servlet应用程序设计接口(API)及相关类和方法的Java程序。

应记住,不管浏览器向服务器发送什么请求,都会找Servlet,在访问静态web资源时,回去找缺省的Servlet

通过Servlet的交互过程

1、客户端发送请求至服务器端。
2、服务器将请求信息发送至Servlet。
3、Servlet生成响应内容并将其传给服务器。(Servlet生成的响应内容会写到response对象中)
4、服务器将响应(即response对象)返回给客户端。

Servlet创建与访问细节

Servlet实例对象完全有Servlet引擎创建,一旦创建就会一直驻留在服务器中。直到Web容器退出,或者撤销相应的Web应用。
对于每次访问Servlet都会调用service方法,并会创建request、response对象(生命周期短)。
NT:但是如果配置Servlet是,配置了1,则在服务器启动时就会创建Servlet,并对其初始化,标签中的数字代表启动的优先级

如何进行Servlet开发

1、编写一个类继承HttpSerlvet(该类在实现Servlet接口时,复写了service方法,并将不同的请求方式分发到不同方法中)
2、重写doGet和doPost方法, 在这两个方法中对不同请求进行处理(一般都转到一个方法中,例如由doGet统一处理)
3、在web.xml中配置Servlet的映射路径,即访问路径(一个Servlet可以映射到多个URL上,还可以映射到静态html上)
4、将编译产生的classes文件放到WEB-INF的classes目录下(如果使用eclipse会自动放入)

缺省的Servlet

在tomcat安装目录中:conf下的web.xml中有这样一个代码:

<servlet-mapping>
        <servlet-name>default</servlet-name>
        <url-pattern>/</url-pattern>
</servlet-mapping>

缺省的servlet的作用为:凡是在web.xml文件总找不到匹配的元素的URL,他们的方位请求都将交给缺省的servlet处理。也就是说,缺省的servlet用于处理所有其他servlet不处理的访问请求。

Servlet映射匹配规则

  1. /abc/*
  2. /*
  3. /abc
  4. *.do
    NT:*.do的优先级最低
    通过归纳的映射关系我们可以总结以下的一些行为:(总的来说,匹配较像的那一个)
    当请求URL为”/abc/a.html”时,”/abc/“和”/“都可以匹配这个URL 则Servlet引擎将调用1
    当请求URL为”/abc”时,”/abc/*”和”/abc”都可以匹配这个URL 则Servlet引擎将调用3
    当请求URL为”/abc/a.do”时,”/abc/“和”/.do”都可以匹配这个URL 则Servlet引擎将调用1
    当请求URL为”/a.do”时,”/“和”/.do”都可以匹配这个URL 则Servlet引擎将调用2

Servlet的线程安全问题

对于临界资源的并发访问,就会引起线程安全问题。
解决方案:(已过时)
编写Servlet时,实现标记接口SingleThreadModel
这样访问该Servlet时,就是单线程访问(一次服务一个请求, 当然会过时)。
其他解决方案我还不知道。。。。。。(学疏才浅, 哎)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值