当前位置: 首页 > news >正文

郑州专门做喷绘安装的网站深圳装修公司排名100强

郑州专门做喷绘安装的网站,深圳装修公司排名100强,二手物品交易网站开发意义,单产品网站建设Servlet的生命周期有四个阶段#xff1a;加载并实例化、初始化、请求处理、销毁。主要涉及到的方法有init、service、doGet、doPost、destory等 加载并实例化 Servlet容器负责加载和实例化Servelt。当Servlet容器启动时#xff0c;或者在容器检测到需要这个Servlet来响应第一…  Servlet的生命周期有四个阶段加载并实例化、初始化、请求处理、销毁。主要涉及到的方法有init、service、doGet、doPost、destory等 加载并实例化 Servlet容器负责加载和实例化Servelt。当Servlet容器启动时或者在容器检测到需要这个Servlet来响应第一个请求时创建Servlet实例。当Servlet容器启动后Servlet通过类加载器来加载Servlet类加载完成后再new一个Servlet对象来完成实例化。 Servlet 生命周期 Servlet在服务器里是单例的是 Servlet 生命周期可被定义为从创建直到毁灭的整个过程。以下是 Servlet 遵循的过程 Servlet 初始化后调用 init () 方法。Servlet 调用 service() 方法来处理客户端的请求。Servlet 销毁前调用 destroy() 方法。最后Servlet 是由 JVM 的垃圾回收器进行垃圾回收的。 现在让我们详细讨论生命周期的方法。 init() 方法 init 方法被设计成只调用一次。它在第一次创建 Servlet 时被调用在后续每次用户请求时不再调用。因此它是用于一次性初始化就像 Applet 的 init 方法一样。 Servlet 创建于用户第一次调用对应于该 Servlet 的 URL 时但是您也可以指定 Servlet 在服务器第一次启动时被加载。 当用户调用一个 Servlet 时就会创建一个 Servlet 实例每一个用户请求都会产生一个新的线程适当的时候移交给 doGet 或 doPost 方法。init() 方法简单地创建或加载一些数据这些数据将被用于 Servlet 的整个生命周期。 init 方法的定义如下 public void init() throws ServletException {// 初始化代码... } service() 方法 service() 方法是执行实际任务的主要方法。Servlet 容器即 Web 服务器调用 service() 方法来处理来自客户端浏览器的请求并把格式化的响应写回给客户端。 每次服务器接收到一个 Servlet 请求时服务器会产生一个新的线程并调用服务。service() 方法检查 HTTP 请求类型GET、POST、PUT、DELETE 等并在适当的时候调用 doGet、doPost、doPutdoDelete 等方法。 下面是该方法的特征 public void service(ServletRequest request, ServletResponse response) throws ServletException, IOException{ } service() 方法由容器调用service 方法在适当的时候调用 doGet、doPost、doPut、doDelete 等方法。所以您不用对 service() 方法做任何动作您只需要根据来自客户端的请求类型来重写 doGet() 或 doPost() 即可。 doGet() 和 doPost() 方法是每次服务请求中最常用的方法。下面是这两种方法的特征。 doGet() 方法 GET 请求来自于一个 URL 的正常请求或者来自于一个未指定 METHOD 的 HTML 表单它由 doGet() 方法处理。 public void doGet(HttpServletRequest request,HttpServletResponse response)throws ServletException, IOException {// Servlet 代码 } doPost() 方法 POST 请求来自于一个特别指定了 METHOD 为 POST 的 HTML 表单它由 doPost() 方法处理。 public void doPost(HttpServletRequest request,HttpServletResponse response)throws ServletException, IOException {// Servlet 代码 } destroy() 方法 destroy() 方法只会被调用一次在 Servlet 生命周期结束时被调用。destroy() 方法可以让您的 Servlet 关闭数据库连接、停止后台线程、把 Cookie 列表或点击计数器写入到磁盘并执行其他类似的清理活动。 在调用 destroy() 方法之后servlet 对象被标记为垃圾回收。destroy 方法定义如下所示 public void destroy() {// 终止化代码...} 线程安全问题 Servlet容器通过维护一个线程池来处理多个请求线程池中维护的是一组工作者线程Worker Thread。Servlet容器通过一个调度线程Dispatcher Thread来调度线程池中的线程。 当客户端的servlet请求到来时调度线程会从线程池中选出一个工作者线程并将请求传递给该线程该线程就会执行对应servlet实例的service方法。同样当客户端发起另一个servlet请求时调度线程会从线程池中选出另一个线程去执行servlet实例的service方法。Servlet容器并不关心这些线程访问的是同一个servlet还是不同的servlet当多个线程访问同一个servlet时该servlet实例的service方法将在多个线性中并发执行。 简单的来说就是在多个请求下访问的是同一个Servlet实例对象 所以Servlet对象是单实例多线程Servlet不是线程安全的 举个例子 public class aaaServlet extends HttpServlet{private static final long serialVersionUID 1L;private String username1 null;//实例变量Overrideprotected void doGet(HttpServletRequest req, HttpServletResponse resp)throws ServletException, IOException{username1 request.getParameter(username1);String username2 request.getParameter(username2);//局部变量} } username1则是共享变量多个线程会同时访问该变量是线程不安全的。 username2是局部变量不管多少个线程同时访问都是线程安全的。 架构图 下图显示了一个典型的 Servlet 生命周期方案。 第一个到达服务器的 HTTP 请求被委派到 Servlet 容器。Servlet 容器在调用 service() 方法之前加载 Servlet。然后 Servlet 容器处理由多个线程产生的多个请求每个线程执行一个单一的 Servlet 实例的 service() 方法。参考 Servlet生命周期以及线程安全问题_servlet线程安全问题 Servlet 生命周期 | 菜鸟教程
http://www.w-s-a.com/news/15395/

相关文章:

  • 无锡网站策划公司如何零基础学编程
  • 金融网站如何做设计网站开发流程 文档
  • 用jsp做网站国内知名设计工作室
  • 一键搭建网站北京公司网站设计
  • 山东省城乡建设部网站网站营销单页怎么做
  • 中国移动视频网站建设百度统计官网
  • 网站实施过程网站上传视频怎么做
  • 网上书店网站建设实训总结嘉兴seo
  • 网站运行需求cos wordpress
  • 网络小说网站推广策划方案单位网站建设收费标准
  • 医院网站建设论证报告河源网站seo
  • 网站demo怎么做淘宝客网站一般用什么做的
  • 网站开发之美 pdf关键词查询优化
  • 可以建站的网站做一个网站美工多少钱
  • 怎么做网站专题互联网营销师报考费用
  • 淘宝导购网站怎么做上海数据开放网站建设
  • 广东网站建设怎么选2021个人网站盈利模式
  • 珠海网站建设的公司排名网站前端开发培训
  • 手机网站制作 费怎么做分录网站域名hk
  • 济南做网站建网站公司怎样用代码制作网站
  • 网站开发文档有哪些建设规划
  • 专注网站建设11年百度搜索不到我的网站
  • 企业网站 建设 流程wordpress 分类目录自定义
  • 北京市建设管理公司网站长春网站推广排名
  • 西安建站软件获取网站全站代码
  • 个人做网站怎么备案网站建设收费标准渠道
  • 单位做网站注意什么问题如何修改单页网站
  • asp全静态企业网站wordpress文章封面
  • 电白区住房和城乡建设部门户网站免费公司网站模版
  • 做玩游戏任务得q币的网站如何制作自己的公司内部网站