servlet+forward和direct区别
Servlet:是用于 java 编写的服务器端程序,其使用 java servlet API,当客户机发送请求到服务器时,服务器可以将请求信息发送给 servlet,并让 servlet 建立起服务器返回给客户机的响应。当启动 web 服务器 or 客户机第一次请求服务时,可以自动装入 servlet,装入后,servlet 继续运行直到其他客户机发出请求。
Servlet 工作原理:客户端发起一个请求,servlet 调用 service()方法时请求进行响应,service 对请求的方式进行了匹配,选择调用 dopost 或者 doget 等这些方法,然后进入对应方法中调用逻辑层上的方法,实现对客户的响应。
Servlet 生命周期:
1)初始化阶段:调用 init()方法
在下列时刻 servlet 容器装载 servlet
1.servlet 容器启动时,自动装载某些 servlet
2. 在 servlet 容器启动后,客户首次向 servlet 发送请求
3.servlet 类文件被更新以后,重新装载 servlet。Servlet 被装载后,servlet容器创建一个 servlet 对象并调用 servlet 的 init 方法。在 servlet 生命周期内,init()方法只被调用过一次。
2)响应客户请求:调用 service()
响应客户请求:对于用户到达servlet 的请求,servlet 容器会创建特定于该请求的 servletRequest 和 servletResponse 对象, 然后调用 servlet 的 service 方法,service 方法从 servletRequest 对象中获得客户请求的信息, 处理该请求,并通过 servletResponse 对象向客户返回响应消息。
3)终止:调用 destory()
当 web 应用终止或者 Servlet 容器终止或 Servlet 容器重新装载 Servlet 新实例时,Servlet 容器会调用 Servlet 对象的destory 方法,在 destory 方法中可释放 Servlet 占用的资源。
Tomcat 就是Servlet 容器,Servlet 容器为Javaweb 应用提供运行时环境,它负责管理Servlet和Jsp的生命周期,以及管理他们的共享数据。
以下方法都由 servlet 容器调用:
1)构造函数:只有第一次请求 servlet 时,创建 servlet 实例,调用构造器,这说明 servlet 是单例的,所以有线程安全问题,只被调用一次。
2)init:只被调用一次,在创建好实例后,立即被调用,用来初始化servlet。
3)service:被多次调用,每次请求都会调用 service,实际响应请求。
4)destory:只被调用一次,在当前 servlet 所在的 web 应用被卸载前调用,用于释放当前 servlet 所占用的资源。
JEE5.0中的Servlet相关的就下面这几个包:
javax.servlet
javax.servlet.jsp
java.servlet.jsp.el
java.servlet.jsp.tagext
而最用得多的就是
javax.servlet
javax.servlet.http
这两个包了.
1
2
3
4
5
6
|
< html > < head >< title > 跳转 </ title > </ head > < body > < jsp:forward page = "index.htm" /> </ body > </ html > |
最新文章
- C# 发送邮件 附件名称为空
- matlab函数_连通区域
- QQ--模拟发表带图说说
- WebAPI2使用Autofac实现IOC属性注入完美解决方案
- VBA解密
- oracle 10G以上版本 树形查询新加的几个功能
- C#中判断子窗体是否存在
- 《Linux设备驱动程序》 笔记1
- linux第四周作业
- Vases and Flowers
- tomcat优化系列:修改运行内存
- java学习之数组排序一:选择排序
- 34 Search for a Range(目标数的范围Medium)
- 最具体的历史centos下一个 postfix + extmail + dovecot + maildrop 安装注意事项2014更新
- 批量插入bulkcopy
- 《Linux内核设计与实现》第四章读书笔记
- HDU 6156 数位dp
- 【LOJ】#2079. 「JSOI2016」轻重路径
- cocos2dx学习之路
- [算法]最小的K个数和数据流中的中位数
热门文章
- 在Code::Blocks中编译和使用wxWidgets3.0.0教程
- MyBatis实例教程--以接口的方式编程
- 山科SDUST OJ Problem J :连分数
- PokeCats开发者日志(八)
- 使用window.getSelection()获取div中选中文字内容及位置
- 安装elasticsearch-1.7.1及中文IK和近义词配置
- 【bzoj4976】宝石镶嵌 乱搞+dp
- 【bzoj4817】[Sdoi2017]树点涂色 LCT+LCA+线段树
- AGC017C Snuke and Spells(巧妙的线段覆盖模型)
- xinetd不太详的详解