servlet

作者: 地点北京 | 来源:发表于2018-01-11 15:02 被阅读0次

servlet


什么是servlet:

servlet是javaEE的组件,也是javaEE中的一个规范。服务器其实是对servlet的实现,servlet是一个程序类,只不过它必须遵循servlet的规范,要求类实现javax.servlet.Servlet接口


搭建标准的JavaWeb项目结构

1:创建一个Java项目;

2:在该Java项目中创建一个文件夹webapp,表示Web项目的根目录

3:在webapp中创建一个文件夹WEB-INF

4:在WEB-INF文件夹中创建:lib,classes文件夹

5:把tomcat根目录下/conf中的web.xml文件拷贝到WEB-INF中,web.xml只需要保留根元素

6:把当前项目的classpath路径改成当前项目/webapp/WEB-INF/classes


创建servlet程序

1:将tomcat根/lib/servlet-api.jar拷贝到WEB-INF/lib中,并且做build path操作

2:创建一个java类,并且使它实现javax.servlet.Servlet接口;实现其中的方法

3:关联servle的源代码;servlet各个版本源代码下载地址http://archive.apache.org/dist/tomcat/

4:Servlet配置,配置web.xml;

<servlet>

<servlet-name>实现javax.servlet.Servlet接口的类名</servlet-name>

<servlet-class>实现javax.servlet.Servlet接口的类的全限定名</servlet-class>

</servlet>

<servlet-mapping>

<servlet-name>实现javax.servlet.Servlet接口的类名</servlet-name>

<url-pattern>/资源名</url-pattern>

</servlet-mapping>

5:部署项目;在tomcat根/conf/中的server.xml中的<host>元素中添加<Context docBase="/项目路径/webapp" path="contentPath(可未空,根据项目而定)">

6:访问http://ip:prot/contentPath/资源名

    如:http://localhost:8080/contentPath/index

servlet请求流程

 1:浏览器先发送请求:http://localhost:8080/contentPath/index

 2:DNS解析域名(忽略) 

 3:Tomcat解析请求:/contentPath/index 上下文路径:/contentPath 资源的名称:/index

 4:解析Tomcat根/conf/server.xml文件,获取其中所有的元素,并找到path属性为/contentPath的元素.. 再读取该元素,再获取docBase属性值,该属性值就是当前访问的WEB项目的根路径.

 5:从该web的根路径/WEB-INF下找到web.xml文件.

 6:读取web.xml文件,获取所有的元素,并判断哪一个的文本内容为:/hello. 找不到: 报404错误. 找 到: GOTO 7.

 7:通过/index,找到当前Servlet的全限定名. 

 8:从Servlet的实例缓冲池中去获取全限定名对应的对象. Map cache = .....;

      Servlet obj = cache.get("全限定名");

      if(obj == null{

          //第一次请求:GOTO 9.

      }else{

          //非第一次请求:GOTO 12;

      }

    9:使用反射创建Servlet对象.

      Servlet obj = Class.forName("全限定名").newInstance();

    10.把创建的Servlet对象,存储到Servlet实例缓存池中,供下一次请求使用.

        cache.put("全限定名",obj);

    11:容器创建ServletConfig对象,并调用init方法,来完成初始化操作.

      obj.init(config);

    12:容器创建ServletRequest和ServletResponse对象,并调用service方法,处理请求.

      obj.service(req,resp);

    13:在service方法中,对当前请求的客户端做相应.

相关文章

  • servlet 笔记

    servlet servlet 声明周期 Servlet 的线程安全 Servlet 获取配置信息 Servlet...

  • Servlet

    Servlet介绍 Servlet开发步骤 创建Servlet 配置Servlet 配置Servlet中设置初始化...

  • 深入理解Servlet技术

    1. 什么是servlet servlet Servlet是javax.servlet.Servlet包中定义的一...

  • Servlet与Jsp(1)

    Servlet 实现原理Servlet接口使Servlet容器能将Servlet类载入内存,并在Servlet实例...

  • web.xml不同版本之间头信息的区别

    一、Servlet 2.3 二、Servlet 2.4 三、Servlet 2.5 四、Servlet 3.0 五...

  • Servlet入门

    Servlet简介 Servlet(Servlet Applet)是Java Servlet的简称,称为小服务程序...

  • Servlet 实例

    Servlet 实例 Servlet 是服务 HTTP 请求并实现 javax.servlet.Servlet 接...

  • Java Servlet API

    Servlet 支持的版本 Servlet 3.0 新特性详解 Servlet 3.0 新特性概述Servlet ...

  • 简单认识Servlet

    Servlet与JSP的关系 初识Servlet Servlet层级关系 顶层Servlet接口 GenericS...

  • 2019-10-14 SpringMVC与Servlet接口 S

    SpringMVC与Servlet接口 Servlet接口规范 Servlet 接口 定义servlet接口规范i...

网友评论

      本文标题:servlet

      本文链接:https://www.haomeiwen.com/subject/bwnznxtx.html