基本结构

两个包: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对象的生命周期都是在服务器端完成的

  1. 实例化 new Servlet是由服务器端实例化的
  2. 初始化 init() 初始化方法,只调用一次
  3. 服务阶段 service() 这是一个长期的方法,每接收一次用户的请求就调用一次服务方法
  4. 销毁 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生命周期相关推荐

  1. JavaWeb——Servlet生命周期

    Servlet生命周期 构造方法 init方法 service方法 destory方法 注意 Servlet的创建和销毁是由Servlet容器负责的(Tomcat) jsp页面 <%@ page ...

  2. Servlet第一篇【介绍Servlet、HTTP协议、WEB目录结构、编写入门Servlet程序、Servlet生命周期】...

    tags: Servlet 什么是Serlvet?# Servlet其实就是一个遵循Servlet开发的java类.Serlvet是由服务器调用的,运行在服务器端. 为什么要用到Serlvet? 我们 ...

  3. Servlet底层原理、Servlet实现方式、Servlet生命周期

    Servlet简介 Servlet定义 Servlet是一个Java应用程序,运行在服务器端,用来处理客户端请求并作出响应的程序. Servlet的特点 (1)Servlet对像,由Servlet容器 ...

  4. Servlet第一篇【介绍Servlet、HTTP协议、WEB目录结构、编写入门Servlet程序、Servlet生命周期】

    什么是Servlet? Servlet其实就是一个遵循Servlet开发的java类.Servlet是由服务器调用的,运行在服务器端. 为什么要用到Servlet? 我们编写java程序想要在网上实现 ...

  5. Servlet生命周期与工作原理

    Servlet生命周期分为三个阶段: 1,初始化阶段  调用init()方法 2,响应客户请求阶段 调用service()方法 3,终止阶段 调用destroy()方法 Servlet初始化阶段: 在 ...

  6. 测试Servlet生命周期学习笔记

    测试环境:windows xp旗舰版 软件环境:myclipse8.5+tomcat7.0 ****************************************************** ...

  7. Servlet 生命周期介绍

    在面试的时候. 有时会被问到这个问题: 请描述一下Servlet的生命周期. 其实面试官就是想问你1个Servlet何时被创建, 何时被调用等.... 本文就是详细解答这个问题的. 总体流程图 上面的 ...

  8. 测试Servlet生命周期例子程序

    写一个类TestLifeCycleServlet,生成构造器TestLifeCycleServlet();重写HttpServlet的doGet();重写GenericServlet的destroy( ...

  9. 【Servlet】Servlet生命周期

    Servlet生命周期是指Servlet实例从创建到响应客户请求,直至销毁的过程. Servlet程序本身不直接在Java虚拟机上运行,由Servlet容器负责管理其整个生命周期. Servlet生命 ...

  10. Web容器和Servlet生命周期

    为何需要Web容器 Web服务器本身主要用于支持http协议,包括监听和相应http请求.web服务器一般处理静态的请求,如文件系统中的静态文件.web容器则是为web相关的组件提供运行环境,可以从' ...

最新文章

  1. Unity Shader基本例子
  2. Linux入门(9)——Ubuntu16.04安装flash player
  3. java 界面线性布局_怎么用java代码写一个线性布局;布局里面有两个按钮是水平的...
  4. 51Nod 1314 定位系统
  5. man da'te
  6. 推荐一个数据可视化网站,提供绘图创意
  7. 英特尔Bridge技术加持下 Windows 11 PC也能运行手机应用
  8. [转载] Python中产生随机数
  9. 5.3 Zend_Log_Filter
  10. Wind的实时行情API使用
  11. Goolgle10个搜索技巧
  12. Linux驱动BSP(I2C 驱动实验)
  13. Android5.0+win8双系统平板PK苹果ipad
  14. 青云QingCloud推出CDN加速服务 动态选择最优节点
  15. 【Leetcode】精选算法top200道(二)
  16. 计算机配置 主板,整套解决方案:I5-3470处理器和什么主板构成计算机配置?
  17. this指向,认识与理解this指向
  18. 日内趋势票如何把握?
  19. 订单支付功能对接支付宝支付接口
  20. wxPython控件大全

热门文章

  1. Database Clinic: MongoDB 数据库诊所:MongoDB Lynda课程中文字幕
  2. 常见的十进制代码(8421码,余3码,2421码,5211码,余3循环码,格雷码)
  3. 机器人 郭启寅_华昌达进军机器人
  4. 中断服务程序编写规则
  5. 云储存技术的应用与用到的技术
  6. 利用Shape Context进行形状识别
  7. 关于mac上输入 insert和replace的快捷键切换
  8. 推流端、服务端、播放端
  9. 求y=sinx反函数的导数
  10. python timedelta 求时间差省去繁琐格式转换