JavaWeb【Servlet】
概念
Servlet是在服务器上运行的小程序。一个Servlet请求对应一个Java类(对应一个Wrapper容器),可以通过请求-响应模式访问这个驻留在内存中的小程序。
Tomcat容器等级
上图表示各容器的包含关系(有底色的为容器等级)
Tomcat容器等级分为4级:Engine、Host(对应一个虚拟主机)、Context(对应一个Web工程)、Wrapper(对应一个Servlet)
Servlet编写步骤
1、继承HttpServlet
2、重写doGet或doPost方法
3、在web.xml中注册Servlet(和过滤器类似)
Servlet声明周期
上图为Get请求到返回的流程示意
上图为生命周期示意图
声明周期
1、初始化,加载到内存并创建实例,然后调用init(),只会调用一次。
2、响应客户端请求,调用service(),由service根据请求方式调用doGet或doPost
3、服务器关闭时销毁,destroy()
装载时的三种情况
1、随servlet容器启动时装载,需要在web.xml的servlet标签下配置loadon-startup等级,数字越小等级越高,最高1级。
2、在servlet容器启动后,在客户首次访问servlet时装载。
3、当servlet类被重新修改过后,所有随启动装载的servlet都会重新装载。
Servlet获取9大内置对象
Servlet路径跳转
相对路径
当超链接调转,或表单action时,/代表服务器根目录(没有工程名);不加/,如“servlet/HelloServlet”表示当前目录下的路径
当servlet中response.sendRedirect()时,使用/表示服务器根目录,如“/test.jsp”会访问失败
当servlet中request.getRequestDispatcher("/index.jsp").forward(request, response),使用/表示工程根目录,该例访问成功
当web.xml配置时,/代表工程根目录,一定要加
绝对路径
当超链接跳转,或表单action时,可以使用request.getContextPath获取工程根目录,拼接绝对路径如path+"/servlet/HelloServlet"
当servlet中response.sendRedirect()时,使用request.getContextPath获取工程根目录,拼接绝对路径如path+"/test.jsp"
当servlet中request.getRequestDispatcher(path+"index.jsp").forward(request, response),使用path会有两个根路径,该例访问失败
总结:
当从客户端访问时(如超链接、action、sendRedirect),默认路径为服务器根目录,最好加Path获取工程根目录拼接绝对路径
当在服务器上时(如getRequestDispatcher、web.xml),默认路径为工程根目录,可以直接使用/来拼接相对路径
获取初始化参数
1、在web.xml中配置servlet初始化参数(注意!!init-param一定要跟在servlet-class后面,否则会报错)
2、在servlet中使用this.getInitParameter获取
MVC模型
Model2(对应于Model1)
最新文章
- python实现grep
- mac下安装 xampp 无法启动apache (转,留用)
- JS中判断JSON数据是否存在某字段的方法 JavaScript中判断json中是否有某个字段
- MongoDB每64位版本下载
- cocos2d-x 3.0rc2 对于每个包执行情况的重要平台 (超级方便)
- tag标签添加删除并把值存入到一个input的value内
- MySQL、You are using safe update mode
- jbpmAPI-8
- iOS_动态插入或删除行
- MOSFET与MOSFET驱动电路原理及应用(转)
- Ordering犀利的比较器
- iOS浏览器 new Date() 返回 NaN
- objec类中方法介绍
- shit vue &; shit iview
- leetcode — string-to-integer-atoi
- 标准化数据-StandardScaler
- Latex中图表位置的控制
- MySQL锁分类
- Linux下 jenkins 的 使用
- C#代码规范和质量检查工具
热门文章
- 002-tomcat目录简介、应用部署【自动部署 ② 控制台部署 ③ 自定义部署】
- IDEA快捷键(修改成eclipse版)+Templates
- mybatis低版本jsr310(LocalDateTime,LocalDate等) Joda Time支持
- 手写web框架之实现Bean容器
- STS如何将一个文件夹设置缺省的创建路径(build path)
- 架构模式: API网关
- 配置nginx直接使用webpack生成的gz压缩文件,而不用nginx自己压缩
- 论文阅读 | A Survey on Multi-Task Learning
- 腾讯云服务器的CPU ---发现大厂都很那啥
- 对Android应用签名