servlet作用:

它驻留在 Web 服务器上,处理新来的请求和输出的响应。它与表示无关,实际上也不它应该与表示有关。

作为一名专业编程人员,您碰到的大多数 Java servlet 都是为响应 Web 应用程序上下文中的 HTTP 请求而设计的.因此,javax.servlet和javax.servlet.http包中特定于 HTTP 的类是您应该关心的。

在创建一个 Java servlet 时,一般需要子类HttpServlet。该类中的方法允许您访问请求和响应包装器(wrapper),您可以用这个包装器来处理请求和创建响应。

HTTP 协议不是特定于 Java 的。它只是一个规范,定义服务请求和响应的大致式样。

Java servlet 类将那些低层的结构包装在 Java 类中,这些类所包含的便利方法使其在 Java 语言环境中更易于处理。正如您正使用的特定 servlet 容器的配置文件中所定义的,当用户通过 URL 发出一个请求时,这些 Java servlet 类就将之转换成一个HttpServletRequest,并发送给 URL 所指向的目标。当服务器端完成其工作时,Java 运行时环境(Java Runtime Environment)就将结果包装在一个HttpServletResponse中,然后将原 HTTP 响应送回给发出该请求的客户机。在与 Web 应用程序进行交互时,通常会发出多个请求并获得多个响应。所有这些都是在一个会话语境中,Java 语言将之包装在一个HttpSession对象中。在处理响应时,您可以访问该对象,并在创建响应时向其添加事件。它提供了一些跨请求的语境。

容器(如 Tomcat)将为 servlet 管理运行时环境。您可以配置该容器,定制 J2EE 服务器的工作方式,而且您必须配置它,以便将 servlet 暴露给外部世界。正如我们将看到的,通过该容器中的各种配置文件,您在 URL(由用户在浏览器中输入)与服务器端组件之间搭建了一座桥梁,这些组件将处理您需要该 URL 转换的请求。在运行应用程序时,该容器将加载并初始化 servlet,管理其生命周期。

典型场景:

a:用户在浏览器中输入一个 URL。Web 服务器配置文件确定该 URL 是否指向一个由运行于服务器上的 servlet 容器所管理的 servlet。

b:如果还没有创建该 servlet 的一个实例(一个应用程序只有一个 servlet 实例),那么该容器就加载该类,并将之实例化。

c:该容器调用 servlet 上的init()。

d:该容器调用 servlet 上的service(),并在包装的HttpServletRequest和HttpServletResponse中进行传递。

e:该 servlet 通常访问请求中的元素,代表其他服务器端类来执行所请求的服务并访问诸如数据库之类的资源,然后使用该信息填充响应。

f:如果有必要,在 servlet 的有用生命结束时,该容器会调用 servlet 上 的destroy()来清除它。

最新文章

  1. error-2016-1-18
  2. iBoxDB的学习与使用
  3. Flexslider - 响应式的 jQuery 内容滚动插件
  4. C#更新SQLServer中的TimeStamp字段(时间戳) 防止同时修改一行时覆盖更新
  5. 缓存插件 EHCache 页面缓存CachingFilter
  6. Union大小
  7. oracle session 相关优化
  8. 从头编译ARM交叉编译环境
  9. SpringQuartz 实现定时任务调度
  10. 关于PHP输出字符串多了两个字节的BUG
  11. day7、用户登陆出现-bash-4.1$错误的原因
  12. Python3 的分支与循环
  13. WPF: 只读依赖属性的介绍与实践
  14. cassandra 如何写数据以及放置副本
  15. 04--STL序列容器(Stack和Queue)
  16. 关于win10企业版在极域电子教室软件 v4.0 2015 豪华版的全屏控制下如何取得自由
  17. Mathematica 求出解后代入变量
  18. 寻找符合条件的最短子字符串——SLIDING WINDOW
  19. 戴尔服务器H330阵列卡取消磁盘阵列教程
  20. JAVA记录-基础常识

热门文章

  1. nginx 反向代理配置之---指定单域名
  2. js获取select标签选中的值[转]
  3. select2 使用
  4. VMware Workstation Pro v14.0
  5. Membership如何得到当前登录的用户名称
  6. asp.net JS取值
  7. [Alfred]为Baidu Weather Workflow更新图标
  8. npm package管理
  9. 51nod 1202 线性dp
  10. Node.js 常用工具 (util.inherits)