JavaWeb之Servlet开发(一)

Servlet是一个JavaEE的组件,也是JavaEE中的一个规范.
而服务器是对Servlet规范的一个实现.
Servlet是一个程序(类),只不过必须要遵循Servlet的规范.
要求类:必须实现javax.servlet.Servlet接口.
以下的实现以Tomcat服务器作为例子:
创建一个Servlet程序的步骤:

 1) Tomcat根路径/lib/servlet-api.jar到项目的WEB-INF/lib目录中,并做build path. (说过TomCat服务器是对Servlet的一种实现,那么在Tomcat服务器中必然就有一个jar包是用来做Servlet接口实现的)

 2)编写Servlet程序,使之实现javax.servlet.Servlet接口,并覆盖接口中的方法. public class XxxServlet implements javax.servlet.Servlet{...实现方法...}(记住在开发中Servlet相关的类名以Servlet作结尾)

 3):发现方法中参数出现arg0,arg1的情况是因为没有关联Servlet的源代码.
    是否关联源代码和程序最终的运行没有关系,只是在开发阶段参数美观,可阅读源代码.
    Tomcat的源代码程序:apache-tomcat-7.0.57-src.zip

 4):在service(ServletRequest req, ServletResponse res)方法,打印一句话.
    引导:此时XxxServlet类,和Tomcat一点关系都没有:我们需要告诉Tomcat来帮我们管理XxxServlet类.(Tomcat是Servlet的容器,会负责Servlet对象的生命周期和方法调用).
    所以,得以配置的形式,告诉Tomcat来帮我们管理自定义的Servlet类.

 5):Servlet配置,需要配置web项目中的web.xml:
 <servlet>
    <servlet-name>HelloServlet</servlet-name> 
    <servlet-class>com.jerry.servlet.DemoServlet</servlet-class>
  </servlet>

    <servlet-mapping>
    <servlet-name>HelloServlet</servlet-name>
    <!-- 向外暴露一个资源名称,供外界访问,此资源名称必须以/打头 -->
    <url-pattern>/example</url-pattern>
    </servlet-mapping>

部署项目,并访问:
server.xml(在Tomcat服务器中的conf配置文件夹下)中:

以上的docBase表示的是当前web项目所处的根路径,必须到webapp为止,path是当前项目的上下文路径,这个路径名可以自定义,在现在的开发中一般可以省略为”“.
在浏览器中访问的方式:
http://ip:port/contextPath/资源名(contextPath等价于上面配置的path,如果配置文件中的path为”“,么有上下文路径,则可以不带/contextPath)
例如 http://localhost:80/example

Servlet的生命周期

创建对象->初始化操作->运行操作->销毁操作

Tomcat管理着Servlet对象的生命周期,也就是说Servlet对象以上四个步骤的方法调用全部是由Tomcat进行调用.
以上的四个方法在web的生命周期中,一般伴随着Tomcat的启动到Tomcat的关闭.

  • Tomcat的管理Servlet对象流程
    在接受到用户请求之后Tomcat服务器会去调用Servelt的构造器来创建servlet对象(构造器表面上在看不见,在底层中[Tomcat的servlet-api.jar]有一个公共的无参数构造器),这里需要记住的是,Servlet是单例的,所以它的构造器在服务端程序第一次被请求的时候会被调用,而且也只会被调用一次.
    注意点:为什么底层要有一个公共的无参数构造器,因为Tomcat是利用Class.newInstance()方式来创建Servlet对象的.

以下是初始化
void init(ServletConfig config):在构造器执行完毕之后,调用init方法,也只会执行一次.
void service(ServletRequest req, ServletResponse resp):每一次请求都会执行该方法.
void destroy():正常关闭Tomcat才会执行(该方法不一定会被执行,我们在开发中也没必要在其中编写扫尾的操作).

上面的cofig对象是封装了一个保存了项目配置信息方法的对象,这个对象由Tomcat服务器来进行创建.
ServletRequest req:请求对象
ServletResponse resp:响应对象
这二个对象也是由Tomcat进行创建

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值