모범 사례: 서브렛에서 SingleThreadModel을 구현하지 마십시오.
Each request runs in a sepatate thread!
THe container runs multiple threads to process multiple request to a single servlet
요약
SingleThreadModel 인터페이스를 구현하지 마십시오.이러한 실천은 웹 용기에 여러 개의 servlet 실례를 만들 것이다.각 사용자에 대한 인스턴스가 생성됩니다.모든 크기의 응용 프로그램에 대해 이러한 실천은 심각한 성능 문제를 초래할 것이다.권장 사항
SingleThreadModel은 servlet을 통해 자신의 리셋 (re-entrancy) 문제를 servlet 엔진에 전송할 수 있는 태그 인터페이스입니다.javax.servlet.SingleThread 모델 자체가 J2EE 규범의 일부분이다.WebSphere servlet 엔진은 각 사용자에 대해 별도의 servlet 인스턴스를 생성하여 servlet의 재입력 문제를 처리합니다.이런 방법은 매우 큰 시스템 비용을 초래하기 때문에, SingleThread 모델을 실현하는 것을 피해야 한다.보통 개발자는 다중 스레드 환경에서javax를 사용합니다.servlet.SingleThreadModel은 업데이트 가능한 서브렛 인스턴스 변수를 보호합니다.최상의 방법 - SingleThreadModel 사용 안 함
public class BpAllBadThingsServletsV1c extends HttpServlet
{
private int numberOfRows = 0;
private javax.sql.DataSource ds = null;
public void doGet(HttpServletRequest request,
HttpServletResponse response)
throws ServletException, IOException
{
Connection conn = null;
ResultSet rs = null;
PreparedStatement pStmt = null;
int startingRows = numberOfRows;
try
{ String employeeInformation = null;
conn = ds.getConnection ("db2admin","db2admin");
pStmt = conn.prepareStatement
("select * from db2admin.employee");
rs = pStmt.executeQuery();
}
catch (Exception es)
{
// Error handling code here.
}
}
}
대체되어야 하는 방법은 일반적으로 개발자가 다중 스레드 환경에서javax를 사용한다.servlet.SingleThreadModel은 업데이트 가능한 서브렛 인스턴스를 보호합니다.다음 코드 단편은 예를 들어 피해야 할 것이 무엇인지 설명한다.이런 상황을 피하라!!--javax.servlet.SingleThreadModel
public class BpAllBadThingsServletsV1c extends HttpServlet
implements SingleThreadModel
{
private int numberOfRows = 0;
private javax.sql.DataSource ds = null;
public void doGet(HttpServletRequest request,
HttpServletResponse response)
throws ServletException, IOException
{
Connection conn = null;
ResultSet rs = null;
PreparedStatement pStmt = null;
int startingRows = numberOfRows;
try
{
String employeeInformation = null;
conn = ds.getConnection ("db2admin","db2admin");
pStmt = conn.prepareStatement
("select * from db2admin.employee");
rs = pStmt.executeQuery();
}
catch (Exception es)
{
// Error handling code here.
}
}
}
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
다양한 언어의 JSONJSON은 Javascript 표기법을 사용하여 데이터 구조를 레이아웃하는 데이터 형식입니다. 그러나 Javascript가 코드에서 이러한 구조를 나타낼 수 있는 유일한 언어는 아닙니다. 저는 일반적으로 '객체'{}...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.