JavaWeb:Servlet生命周期
基本结构
两个包:javax.servlet.* 和 javax.servlet.http.*
Servlet的顶层接口:javax.servlet.Servlet接口
在这个接口中有5个方法。其中最核心的是服务方法service()方法。
用户每次发送的请求其实都是调用一次service方法。
实现开发时:一般的Servlet继承HttpServlet类
在HttpServlet中service方法已经给出了实现,变成根据请求方式调用doGet和doPost方法。
所以我们要开发一个Servlet时,要继承HttpServlet类重写doGet和doPost方法。
在javax.servlet包中大多数的接口在javax.servlet.http包中有都是子接口
请求:request javax.servlet.ServetlRequest 和 javax.servlet.http.HttpServletRequest
响应:response javax.servlet.ServletResponse 和 javax.servlet.http.HttpServletResponse
get和post方法的区别
不同点一:
通过get方式提交的数据有大小的限制,通常在1024字节左右。也就是说如果提交的数据很大,用get方法就可需要小心;
而post方式没有数据大小的限制,理论上传送多少数据都可以。
不同点二:
通过get传递数据,实际上是将传递的数据按照”key,value”的方式跟在URL的后面来达到传送的目的的;
而post传递数据是通过http请求的附件进行的,在URL中并没有明文显示。
不同点三:
通过Get方式提交的数据安全性不高,而Post方式的更加安全。
get请求的东西(你页面输入的信息)会在地址栏显示所以不安全,post不显示,会好一点。
生命周期
Servlet中的使用的方法都是实例方法,没有static修饰符的方法,所以这些实例方法的调用必须先有实例。
实例必须通过new关键字进行实例化过程。
Servlet对象的生命周期都是在服务器端完成的
- 实例化 new Servlet是由服务器端实例化的
- 初始化 init() 初始化方法,只调用一次
- 服务阶段 service() 这是一个长期的方法,每接收一次用户的请求就调用一次服务方法
- 销毁 destroy() 当结束服务器时
作用域对象
放东西进去:void setAttribute("key",value);
取东西出来:value getAttribute("key");
页面级作用域对象:pageContext
这个容器只能一个页面中使用。
pageContext.setAttribute(name, value, scope); //第三个填写作用域常量
请求级作用域对象:request
HttpServletRequet类型,只能在一次请求中使用,所有客户端重定向会影响request对象中保存的数据。数据会消失。
两个接口,HttpServletRequest继承ServletRequest
String getParameter(String name); //获得请求参数,例如<input>标签
RequestDispatcher getRequestDispatcher(String url); //获得一个请求分发器对象
forward(request,response); //转发
include(request,response); //包含
HttpSession getSession(); //获得会话对象
void setCharacteEncoding("utf-8"); //设置请求的中文编码
void setAttribute(String key,Object obj); //将数据以k-v的方式保存到请求对象中
Object getAttribute(String key); //从请求对象中以k取v
会话级作用域对象:session
HttpSession类型,会话是一直保存在服务器端的容器对象,从第一次发送请求开始到退出整个web应用为止。
会话对象是每个用户都有一个自己的对象。
String name = request.getParameter("uname");
HttpSession s = request.getSession(); //在Servlet中获取session对象
s.removeAttribute("name"); //移除session中保存的对象
s.invalidate(); //移除session对象
在request对象中保存针对这次请求的临时性的数据。比如一次请求的错误信息。
在session对象中保存需要长期存储的用户个人信息。比如,登录成功时保存用户对象。
应用程序级作用域对象:application
ServletContext类型,应用程序级作用域对象,全网用户共用一个。
在整个应用程序中都能使用,从启动WEB应用开始到关闭WEB应用为止。
ServletContext c = getServletContext();
c.setAttribute(name, object);
c.getAttribute(name);
JavaWeb:Servlet生命周期相关推荐
- JavaWeb——Servlet生命周期
Servlet生命周期 构造方法 init方法 service方法 destory方法 注意 Servlet的创建和销毁是由Servlet容器负责的(Tomcat) jsp页面 <%@ page ...
- Servlet第一篇【介绍Servlet、HTTP协议、WEB目录结构、编写入门Servlet程序、Servlet生命周期】...
tags: Servlet 什么是Serlvet?# Servlet其实就是一个遵循Servlet开发的java类.Serlvet是由服务器调用的,运行在服务器端. 为什么要用到Serlvet? 我们 ...
- Servlet底层原理、Servlet实现方式、Servlet生命周期
Servlet简介 Servlet定义 Servlet是一个Java应用程序,运行在服务器端,用来处理客户端请求并作出响应的程序. Servlet的特点 (1)Servlet对像,由Servlet容器 ...
- Servlet第一篇【介绍Servlet、HTTP协议、WEB目录结构、编写入门Servlet程序、Servlet生命周期】
什么是Servlet? Servlet其实就是一个遵循Servlet开发的java类.Servlet是由服务器调用的,运行在服务器端. 为什么要用到Servlet? 我们编写java程序想要在网上实现 ...
- Servlet生命周期与工作原理
Servlet生命周期分为三个阶段: 1,初始化阶段 调用init()方法 2,响应客户请求阶段 调用service()方法 3,终止阶段 调用destroy()方法 Servlet初始化阶段: 在 ...
- 测试Servlet生命周期学习笔记
测试环境:windows xp旗舰版 软件环境:myclipse8.5+tomcat7.0 ****************************************************** ...
- Servlet 生命周期介绍
在面试的时候. 有时会被问到这个问题: 请描述一下Servlet的生命周期. 其实面试官就是想问你1个Servlet何时被创建, 何时被调用等.... 本文就是详细解答这个问题的. 总体流程图 上面的 ...
- 测试Servlet生命周期例子程序
写一个类TestLifeCycleServlet,生成构造器TestLifeCycleServlet();重写HttpServlet的doGet();重写GenericServlet的destroy( ...
- 【Servlet】Servlet生命周期
Servlet生命周期是指Servlet实例从创建到响应客户请求,直至销毁的过程. Servlet程序本身不直接在Java虚拟机上运行,由Servlet容器负责管理其整个生命周期. Servlet生命 ...
- Web容器和Servlet生命周期
为何需要Web容器 Web服务器本身主要用于支持http协议,包括监听和相应http请求.web服务器一般处理静态的请求,如文件系统中的静态文件.web容器则是为web相关的组件提供运行环境,可以从' ...
最新文章
- Unity Shader基本例子
- Linux入门(9)——Ubuntu16.04安装flash player
- java 界面线性布局_怎么用java代码写一个线性布局;布局里面有两个按钮是水平的...
- 51Nod 1314 定位系统
- man da'te
- 推荐一个数据可视化网站,提供绘图创意
- 英特尔Bridge技术加持下 Windows 11 PC也能运行手机应用
- [转载] Python中产生随机数
- 5.3 Zend_Log_Filter
- Wind的实时行情API使用
- Goolgle10个搜索技巧
- Linux驱动BSP(I2C 驱动实验)
- Android5.0+win8双系统平板PK苹果ipad
- 青云QingCloud推出CDN加速服务 动态选择最优节点
- 【Leetcode】精选算法top200道(二)
- 计算机配置 主板,整套解决方案:I5-3470处理器和什么主板构成计算机配置?
- this指向,认识与理解this指向
- 日内趋势票如何把握?
- 订单支付功能对接支付宝支付接口
- wxPython控件大全