빨리 데려 다 줄 게.Servlet.

8129 단어 JavaServlet
1.Servlet 과 Tomcat 의 관계
(1)Tomcat 은 무엇 입 니까?
Tomcat 은 사실 웹 서버 와 Servlet 용기 의 결합 체 입 니 다.
(2)웹 서버 가 무엇 입 니까?
예 를 들 어,나 는 현재 항 저 우 에 있 는데,너 는 자신의 컴퓨터 로 나의 데스크 톱 위의 그림 을 방문 할 수 있 니?아마 안 될 것 같 습 니 다.우 리 는 URL 을 통 해 한 사 이 트 를 방문 하고 영 화 를 다운로드 하 는 것 에 너무 익숙 합 니 다.하나의 자원,URL 맵 이 없 으 면 외부 에 접근 하기 가 거의 어렵 습 니 다.웹 서버 의 역할 은 한 호스트 의 자원 을 하나의 URL 로 표시 하여 외부 에 접근 할 수 있 도록 하 는 것 입 니 다.
둘 째 는 Servlet 이 무엇 입 니까
(1)Servlet 용기 가 무엇 입 니까?
Servlet 은 웹 서버 나 응용 서버 에서 실행 되 는 프로그램 입 니 다.
Servlet 용 기 는 말 그대로 Servlet 대상 이 저장 되 어 있 습 니 다.우 리 는 왜 웹 서버 를 통 해 매 핑 된 URL 로 자원 에 접근 할 수 있 습 니까?프로그램 처리 요청 을 써 야 합 니 다.주요 3 가지 과정:요청 을 받 아들 이 고 요청 을 처리 하 며 요청 에 응답 합 니 다.
3.Servlet 의 유형 구조

HttpServlet 계승 을 통 해 Servlet 인터페이스 구현
일반적으로 실제 프로젝트 개발 에 서 는 HttpServlet 류 를 계승 하 는 방식 으로 Servlet 프로그램 을 실현 합 니 다.
(1)HttpServlet 클래스 를 계승 하기 위해 클래스 를 작성 합 니 다.
(2)업무 수요 에 따라 doGet 또는 doPost 방법 을 다시 쓴다.
(3)웹.xml 에 설 정 된 servlet 프로그램의 접근 주소
4.ServletConfig 클래스
ServletConfig 는 현재 Servlet 의 웹.xml 설정 정 보 를 대표 합 니 다.

 String getServletName(); ---    Servlet web.xml      
 
    ServletContext getServletContext();---    Servlet            
 
    String getInitParameter(String var1);---    Servlet               
 
    Enumeration<String> getInitParameterNames();---      web   ServletContext  
(1)역할:
1.Servlet 프로그램의 별명 Servlet-name 값 을 가 져 올 수 있 습 니 다.
2.초기 화 매개 변수 init-param 가 져 오기
3.ServletContext 대상 가 져 오기

 @Override
    public void init(ServletConfig servletConfig) throws ServletException {
//        1、    Servlet     Servlet-name  
        System.out.println(servletConfig.getServletName());
//        2、       init-param
        System.out.println(servletConfig.getInitParameter("username"));
//        3、  ServletContext  
        System.out.println(servletConfig.getServletContext());
        System.out.println("2、       ");
    }
5.ServletContext 류
(1)ServletContext 가 무엇 입 니까?
1.ServletContext 는 하나의 인터페이스 로 Servlet 컨 텍스트 대상 을 표시 합 니 다.
2.하나의 웹 프로젝트,하나의 ServletContext 대상 인 스 턴 스 만 있 습 니 다.
3.ServletContext 는 도 메 인 대상 입 니 다.
4.ServletContext 는 웹 프로젝트 배치 가 시 작 될 때 만 들 고 웹 프로젝트 가 중 단 될 때 소각 합 니 다.
도 메 인 대상 은 무엇 입 니까?
도 메 인 대상 은 맵 처럼 데 이 터 를 액세스 할 수 있 는 대상 으로 도 메 인 대상 이 라 고 합 니 다.
이 도 메 인 은 데이터 액세스 작업 범위,전체 웹 프로젝트 를 말 합 니 다.
데이터 저장
Map put() get() remove()
도 메 인 대상 setAttribute()getAttribute()removeAttribute()
(2)ServletContext 류 의 네 가지 역할
1.웹.xml 에 설 정 된 컨 텍스트 매개 변수 context-param 가 져 오기

public class ContextServlet extends HttpServlet {
    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
 
    }
 
    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
    //1、   web.xml        context-param
        ServletContext servletContext = getServletConfig().getServletContext();
        String username = servletContext.getInitParameter("username");
        System.out.println("context-param   username"+username);
 
    }
}
웹 xml 에서

<!--    context-param       (      web  )-->
    <context-param>
        <param-name>username</param-name>
        <param-value>context</param-value>
    </context-param>
2.현재 프로젝트 경로 가 져 오기,형식:/프로젝트 경로
3.프로젝트 배 치 를 가 져 온 후 서버 하 드 디스크 에 있 는 절대 경로
(3)ServletContext 는 맵 처럼 데 이 터 를 액세스 합 니 다.

public class ContextServlet1 extends HttpServlet {
    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
 
    }
 
    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        //  ServletContext  
        ServletContext context = getServletContext();
        System.out.println("    :Context1   key1   :"+context.getAttribute("key1"));
        context.setAttribute("key1","value1");
        System.out.println("Context1      key1   :"+context.getAttribute("key1"));
 
    }
}

    :Context1   key1   :null
Context1      key1   :value1
Context2      key1   :value1
6.Servlet 의 생명주기

public class HelloServlet implements Servlet {
    public HelloServlet() {
        System.out.println("1、       ");
    }
 
    @Override
    public void init(ServletConfig servletConfig) throws ServletException {
        System.out.println("2、       ");
    }
 
    @Override
    public ServletConfig getServletConfig() {
        return null;
    }
 
    //service               
    @Override
    public void service(ServletRequest servletRequest, ServletResponse servletResponse) throws ServletException, IOException {
        System.out.println("3、hello servlet     ");
    }
 
    @Override
    public String getServletInfo() {
        return null;
    }
 
    @Override
    public void destroy() {
        System.out.println(" 4、      ");
    }
}
실행 결과
1.구조 기 방법 을 집행 한다.
2.초기 화 방법 실행
3.hello servlet 이 방문 되 었 습 니 다.
3.hello servlet 이 방문 되 었 습 니 다.
3.hello servlet 이 방문 되 었 습 니 다.
3.hello servlet 이 방문 되 었 습 니 다.
3.hello servlet 이 방문 되 었 습 니 다.
3.hello servlet 이 방문 되 었 습 니 다.
3.hello servlet 이 방문 되 었 습 니 다.
3.hello servlet 이 방문 되 었 습 니 다.
3.hello servlet 이 방문 되 었 습 니 다.
G:\softWareInstall\apache-tomcat-9.0.45\bin\catalina.bat stop
Using CATALINA_BASE:   "C:\Users\Administrator\AppData\Local\JetBrains\IntelliJIdea2020.1\tomcat\Unnamed_Servlet"
Using CATALINA_HOME:   "G:\softWareInstall\apache-tomcat-9.0.45"
Using CATALINA_TMPDIR: "G:\softWareInstall\apache-tomcat-9.0.45\temp"
Using JRE_HOME:        "C:\Program Files\Java\jdk1.8.0_60"
Using CLASSPATH:       "G:\softWareInstall\apache-tomcat-9.0.45\bin\bootstrap.jar;G:\softWareInstall\apache-tomcat-9.0.45\bin\tomcat-juli.jar"
Using CATALINA_OPTS:   ""
03-may-2021 14:33:11.909 기℃[main]org.apache.catalina.core.StandardServer.wait 杩 杩 掮 掮 板 추출 계 호 주
03-May-2021 14:33:11.909 치℃[main]org.apache.coyote.AbstractProtocol.pause ProtocolHandler["http-nio-8080"]
03-may-2021 14:33:12.289 기℃[main]org.apache.catalina.core.StandardService.stopInternal 주 e ㄥ 주 2[Catalina]
 4.소각 방법 을 집행 한다
(1)Servlet 구조 기 방법 실행
(2)init 초기 화 방법 실행
첫 번 째,두 번 째 단 계 는 첫 번 째 방문 때 Servlet 프로그램 을 만 들 면 호출 됩 니 다.
(3)서비스 수행 방법
세 번 째 단 계 는 방문 할 때마다 호출 됩 니 다.
(4)destroy 소각 방법 집행
STEP 4:웹 프로젝트 가 중 단 될 때 호출
7.Get,Post
get,post 요청 은 모두 서비스 방법 으로 갑 니 다.그러면 get,post 요청 을 어떻게 구분 합 니까?

    //service               
    @Override
    public void service(ServletRequest servletRequest, ServletResponse servletResponse) throws ServletException, IOException {
        System.out.println("3、hello servlet     ");
        HttpServletRequest httpServletRequest=(HttpServletRequest)servletRequest;
        String method = httpServletRequest.getMethod();
        if ("Get".equals(method)){
            
        }
        if ("POST".equals(method)){
            
        }
    }
여기 서 빠 른 속도 로 시작 할 수 있 는 Servlet 에 관 한 이 글 은 여기까지 소개 되 었 습 니 다.더 많은 관련 Servlet 상세 한 내용 은 우리 의 이전 글 을 검색 하거나 아래 의 관련 글 을 계속 조회 하 시기 바 랍 니 다.앞으로 많은 응원 바 랍 니 다!

좋은 웹페이지 즐겨찾기