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

建设网站的五个步骤seo是干什么的

建设网站的五个步骤,seo是干什么的,互联网行业趋势,wordpress 评论显示图片Servlet的生命周期有四个阶段:加载并实例化、初始化、请求处理、销毁。主要涉及到的方法有init、service、doGet、doPost、destory等 加载并实例化 Servlet容器负责加载和实例化Servelt。当Servlet容器启动时,或者在容器检测到需要这个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、doPut,doDelete 等方法。

下面是该方法的特征:

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.jinmujx.cn/news/108761.html

相关文章:

  • 做seo需要建网站吗电商seo是什么意思啊
  • 临朐网站建设定制网络推广服务商
  • 站长工具seo下载免费发布信息网网站
  • 聊城市建设学校福州关键词优化平台
  • 企业名录联系方式查询平台seo外包公司兴田德润官方地址
  • 在什么网站可以做外贸出口劳保鞋微信crm系统软件
  • 枣庄做网站优化有没有专门做策划的公司
  • 怎么做视频网站首页百度域名收录提交入口
  • 专业做网站设计公司价格seo网站有优化培训吗
  • wordpress文章编辑器seo刷关键词排名免费
  • 供应商门户网站新闻式软文
  • wordpress 商品设置seo概念
  • 网站建设中要尽量使用图片互联网培训机构排名前十
  • 手机网站 底部菜单南京百度seo
  • 软件开发商是什么意思seo优化几个关键词
  • 政府网站开发计划书点击排名优化
  • php开发微网站开发推广普通话奋进新征程演讲稿
  • 网站发布系统沙坪坝区优化关键词软件
  • 外贸网站制作方案百度引流推广
  • 福州市台江区网站全媒体广告策划营销
  • 营销网站建设的原则今日国际新闻大事
  • 做ppt网站动态国外外链平台
  • 北京专业网站建设公司哪家好长沙网站开发制作
  • 马和人做人和牛做网站公司的网站制作
  • 深圳网站备公司关键词排名优化
  • 骗子会利用钓鱼网站做啥seo排名优化软件有用
  • 鲨鱼座 网站建设微信营销模式有哪些
  • 郑州企业网站建设费用网络营销战略有什么用
  • 给前端做网站的图片叫什么拼多多搜索关键词排名
  • 做吃的教程网站百度风云榜游戏