Servlet
Servlet技术
CGI(Common Gateway Interface) 是WWW技术中最重要的技术之一,有着不可替代的重要地位。CGI是外部应用程序(CGI程序)与Web服务器之间的接口标准,是在CGI程序和Web服务器之间传递信息的规程。
CGI规范允许Web服务器执行外部程序,并将它们的输出发送给Web浏览器,CGI将Web的一组简单的静态超媒体文档变成一个完整的新的交互式媒体。
- 什么是servlet
a) 制定javaee的时候做的一个规范,然后提供接口即可,面向接口的编程
b) Servlet小程序用于创建动态网页的,把http请求和响应都封装成了HTTPServletRequest,httpServletResponse。然后再dopost和doget中做相应的处理并回应httpServletResponse反馈给用户
- Servlet生命周期
a) Init初始化
b) Service进行处理客户端的请求
c) Servlet通过调用destroy方法种植
d) 最后servlet是通过jvm进行垃圾回收器的回收
e)
- Servletconfig和servletContext
a) Config获取了初始化设置的参数信息getInitParameter 值getParameterNames 名
b) Context 实现多个servlet共享web应用的信息数据
c) Servletconfig是产生初始化参数(由servlet容器在文件中指定)和servletcontext对象。
请求和响应
- HttpServletResponse 对象
- HttpServletResponse 应用
a) 中文输出乱码问题:字符和字节之间的转码通过查码表完成,将字符转换成字节的过程叫做编码,将字节转成字符的过程称为解码。编码解码不一致就会出现乱码。
b) 网页定时刷新
c) 禁止浏览器缓存页面
d) 请求重定向
- HttpservletRequest 对象
- HTTPServletRequest应用
a) 乱码问题
b) 请求转发
5. 重定向和转发的区别
- 什么是servlet?需要哪两步?
a) 是sun公司提供的一门专门开发动态web资源的技术, 可以实现和客户端的交互,接受客户端请求和给客户端返回响应
b) 需要编写一个java类实现servlet接口,开发的java类部署到服务器中
6.解析过程
Tomcat在加载web应用时, 就会把相应的web.xml文件中的数据读入到内存中。所以在收到web请求的时候只要参考内存里面xml配置数据
- servlet运行过程
a) web服务器首先检查是否已经装载并创建了该servlet的实例对象, 如果是,则直接执行第四步,否则,执行第二步、
b) 装载并创建该servlet的一个实例对象
c) 调用servlet实例对象的init()方法
d) 创建一个用于封装HTTP请求消息的HTTPServletRequest对象和一个代表HTTP响应消息的HTTPServletResponse对象,然后调用servlet的service()方法并将请求和响应对象作为参数传递进去、
e) Web应用程序被停止或重新启动之前, servlet引擎将卸载servlet, 并在卸载之前调用servlet的destroy方法
f)
- servlet的生命周期
a) init detory 方法只会调一次创建一次实例,分别为初始化和销毁的时候进行创建
b) 而service方法会调用多次,每次HTTP请求都会创建实例。
c) Service里面有doPost 和 doGet 在没指认的时候默认调用doGet 有指认Post的时候才用post(在前端页面的form标签里面的method)
- ServletConfig对象
a) 首先得知道的事web.xml文件中可以使用一个或者多个的<context-param>标签为servlet配置一些初始化参数
b) 然后servletConfig对象会自动将这些初始化参数封装到自己里面。
- ServletContext对象
a) ServletContext是一个全局对象它是被servletConfig所维护的。 所以可以通过servletconfig.servletContext获取共有的环境变量,servlet之间的通讯也是这样实现的
- 流程图
a) 浏览器访问Tomcat
b) Tomcat转发到web application上
c) 找到这个应用程序的xml配置文件
d) 配置文件上找到相对应的servlet映射
e) 找到servlet
f) 第一次访问的实例化该servlet对象
g) 调用init
h) 调用service方法
i) 返回响应
j) 结束程序的时候会销毁它