Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 |
Tags
- Project facet java version 10 is not supported
- ConnectionPool이란?
- 세션트래킹 이란
- ServletConfig란
- 쿠키 종류
- ServletContext 메서드
- DataSource 설정
- JRE라이브러리 깨짐
- 자바 웹을 다루는 기술
- 서블릿과 오라클 연동
- DataSource이란?
- 스크립트 요소 예제
- import 오류
- Tomcat DataSource 설정
- PrepareStatement란?
- web.xml에 load-on-startup 설정
- load-on-startup
- 쿠키실행과정
- 서블릿에서 초기화하는방법
- ClassPath 경로
- Session쿠키
- JNDI란
- 쿠키API
- Statement 단점
- 쿠키생성위치
- Configure build path
- 오라클 데이터베이스 접속
- Persistence 쿠키
- 이클립스 톰캣 DataSource사용방법
- 애너테이션으로 서블릿에서 초기화
Archives
- Today
- Total
백문이불여일타
Jsp&Servlet:: load-on-startup 기능이란? || web.xml 설정법 본문
load-on-startup 이란?
서블릿은 브라우저에서 최초 요청시 init() 메서드를 실행한 후 메모리에 로드되어 기능을 수행합니다.
따라서 최초요청에 대해서 실행시간이 길어질수 있는 단점이 있다.
이런 단점을 보완하기 위해 생긴 기능이 load-on-startup 기능이다.
load-on-startup의 특징
- 톰캣 컨테이너가 실행되면서 미리 서블릿을 실행.
- 지정한 숫자가 0 보다 크면 톰켓컨테이너가 실행되면서 서블릿이 초기화 된다.
- 지정한 숫자는 우선순위를 의미하며, 작은숫자부터 먼저 초기화 된다.
load-on-startup 기능 구현방법
- 애너테이션 설정
- web.xml 설정
애너테이션을 이용해 설정하는방법
2019/08/22 - [Jsp] - Jsp&Servlet:: ServletConfig란? | 애너테이션 설정방법
1. 애너테이션 설정
단, 애너테이션을 설정할때는 아래와 체크된 3가지 부분만 체크한다.
2. LoadAppConfig 클래스에 애너테이션 으로 설정한 매개변수에 loadOnStartup 속성을 추가한 후 우선순위를 1로 설정한다.
package sec06.ex02;
import java.io.IOException;
import java.io.PrintWriter;
import javax.servlet.ServletConfig;
import javax.servlet.ServletContext;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
@WebServlet(name = "loadAppConfig", urlPatterns = { "/loadConfig" }, loadOnStartup = 1)
public class LoadAppConfig extends HttpServlet {
private ServletContext context;
@Override
public void init(ServletConfig config) throws ServletException {
System.out.println("LoadAppConfig의 init메서드 호출됨");
//init메서드에서 ServletContext 객체를 얻는다.
context = config.getServletContext();
/*getInitParameter()메서드로 web.xml의 메뉴 정보를 읽는다 */
String menu_member = context.getInitParameter("menu_member");
String menu_order = context.getInitParameter("menu_order");
String menu_goods = context.getInitParameter("menu_goods");
/*메뉴정보를 ServletContext객체에 바인딩한다 */
context.setAttribute("menu_member", menu_member);
context.setAttribute("menu_order", menu_order);
context.setAttribute("menu_goods", menu_goods);
}
@Override
protected void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
request.setCharacterEncoding("utf-8");
response.setContentType("text/html;charset=utf-8");
PrintWriter out = response.getWriter();
/*브라우저에서 요청시 ServletContext객체의 바인딩된 메뉴 항목을 가져온다 */
String menu_member = (String) context.getAttribute("menu_member");
String menu_order = (String) context.getAttribute("menu_order");
String menu_goods = (String) context.getAttribute("menu_goods");
out.println("<html><boby>");
out.println("<table border =1 cellspacing =0><tr>메뉴이름</tr>");
out.println("<tr><td>"+menu_member+"</td></tr>");
out.println("<tr><td>"+menu_order+"</td></tr>");
out.println("<tr><td>"+menu_goods+"</td></tr>");
out.println("</tr></table></boby></html>");
}
}
3. 결과
톰캣 실행 시 init()메서드를 호출하면 getInitParameter()메서드를 이용해 web.xml의 메뉴정보를 읽어 들인 후 다시 ServletContext객체에 setAttribute()메서드로 바인딩합니다.
브라우저에서 요청하면 web.xml 이 아니라 ServletContext 객체에서 메뉴 항목을 가져온 후 출력하기때문에
브라우저에서 나타나는 출력속도가 매우 빠르다!
web.xml에 설정하는 방법
원래는 애너테이션이 생기기전부터 web.xml에다가 설정했다고 한다.
위와같이 작성하고 톰캣을 실행해도 애너테이션으로 실행했을때와 결과는 같다.
'Jsp' 카테고리의 다른 글
Jsp&Servlet::쿠키(Cookie)란? || 쿠키의 종류 ,생성위치, 실행과정 || 쿠키API (0) | 2019.08.28 |
---|---|
Jsp&Servlet:: 세션트래킹이란? || 웹페이지 연결기능 (0) | 2019.08.26 |
Jsp&Servlet:: ServletConfig란? | 애너테이션 설정방법 (1) | 2019.08.22 |
jsp&Servlet:: ServletContext의 메서드기능 (0) | 2019.08.20 |
jsp&servlet:: ServletContext란 (0) | 2019.08.20 |
Comments