servlet異步處理步驟,servlet3.0理解

 2023-12-06 阅读 32 评论 0

摘要:1.servlet是用Java編寫的服務器端程序,服務器端程序,服務器端程序。 2.Servlet運行于支持Java的應用服務器中。spring mvc有自己的實現servlet 從原理上講,Servlet可以響應任何類型的請求,但絕大多數情況下Servlet只用來擴展基于HTTP協議的Web服務

1.servlet是用Java編寫的服務器端程序,服務器端程序,服務器端程序。

2.Servlet運行于支持Java的應用服務器中。spring mvc有自己的實現servlet

從原理上講,Servlet可以響應任何類型的請求,但絕大多數情況下Servlet只用來擴展基于HTTP協議的Web服務器。

?

servlet異步處理步驟?3.

在 Web 應用程序中,一個 Servlet 在一個時刻可能被多個用戶同時訪問。這時 Web 容器將為每個用戶創建一個線程來執行 Servlet。如果 Servlet 不涉及共享資源的問題,不必關心多線程問題。但如果 Servlet 需要共享資源,需要保證 Servlet 是線程安全的。
下面是編寫線程安全的 Servlet 的一些建議:
(1)用方法的局部變量保存請求中的專有數據。對方法中定義的局部變量,進入方法的每個線程都有自己的一份方法變量拷貝。任何線程都不會修改其他線程的局部變量。如果要在不同的請求之間共享數據,應該使用會話來共享這類數據。
(2)只用 Servlet的成員變量來存放那些不會改變的數據。有些數據在 Servlet 生命周期中不發生任何變化,通常是在初始時確定的,這些數據可以使用成員變量保存,如數據庫連接名稱、其他資源的路徑等。
(3)對可能被請求修改的成員變量同步。有時數據成員變量或者環境屬性可能被請求修改。當訪問這些數據時應該對它們同步,以避免多個線程同時修改這些數據。
(4)如果 Servlet 訪問外部資源,那么需要同步訪問這些資源。例如,假設 Servlet 要從文件中讀寫數據。當一個線程讀寫一個文件時,其他線程也可能正在讀寫這個文件。文件訪問本身不是線程安全的,所以必須編寫同步訪問這些資源的代碼。在編寫線程安全的 Servlet 時,下面兩種方法是不應該使用的:
(1)在 Servlet API 中提供了一個 SingleThreadModel 接口,實現這個接口的 Servlet 在被多個客戶請求時一個時刻只有一個線程運行。這個接口已被標記不推薦使用。
(2)對 doGet() 或doPost() 方法同步。如果必須在 Servlet 中使用同步代碼,應盡量在最小的代碼塊范圍上進行同步。同步代碼越小,Servlet 執行得才越好。[4]?

轉載于:https://www.cnblogs.com/panxuejun/p/6849214.html

版权声明:本站所有资料均为网友推荐收集整理而来,仅供学习和研究交流使用。

原文链接:https://hbdhgg.com/1/191707.html

发表评论:

本站为非赢利网站,部分文章来源或改编自互联网及其他公众平台,主要目的在于分享信息,版权归原作者所有,内容仅供读者参考,如有侵权请联系我们删除!

Copyright © 2022 匯編語言學習筆記 Inc. 保留所有权利。

底部版权信息