Servlet 입문

7847 단어 servlet
Servlet 은 동적 웹 자원 개발 에 사용 되 는 기술 인 ServletAPI 는 Request-Response 모델 을 기반 으로 하고 Http 도 Request-Response 모델 을 기반 으로 하기 때문에 Serlvet 는 HTTP 기반 웹 응용 프로그램 을 개발 하 는 데 사용 할 수 있다.자바 EE API 에 servlet 인터페이스 가 있 습 니 다.동적 웹 자원 을 개발 하 는 것 은 자바 프로그램 을 개발 하여 브 라 우 저 에 데 이 터 를 출력 하 는 것 입 니 다.2 단계 1 을 완성 하고 자바 류 를 작성 하여 servlet 인터페이스 2 를 실현 하 며 개 발 된 자바 류 를 웹 서버 에 배치 하여 eclipse 에서 의 프 리 젠 테 이 션 1,웹 procject 2 를 만 듭 니 다.클 라 스 계승 HttpServlet//HttpServlet 클래스 는 Servlet 인터페이스의 하위 클래스 로 추상 클래스 이 며 Http 프로 토 콜 에 사용 되 는 Servlet 기술 3 입 니 다.웹.xml 에 Servlet 프로그램의 가상 접근 경 로 를 설정 하여 브 라 우 저 에서 동적 자원 을 관리 하 는 Serlvet 프로그램 에 접근 할 수 있 도록 합 니 다.웹.xml 에탭 을 추가 합 니 다.이라는 이름 으로 프로그램의 모든 클래스 이름 을탭 에 기록 하고 마지막 으로을 추가 하여 가상 경 로 를 설정 합 니 다.
<servlet>//  servlet  
  <servlet-name>HelloServlet</servlet-name>
  <servlet-class>HelloServlet</servlet-class>
  <load-on-startup>1</load-on-startup>//       servlet               ,           。                。
</servlet>
<servlet-mapping>//      
  <servlet-name>HelloServlet</servlet-name>//      servlet     
  <url-pattern>/hello</url-pattern>//    /  
</servlet-mapping>

 
4.class 에서 doGet 과 doPost 방법 을 덮어 씁 니 다.
public class HelloServlet extends HttpServlet {
@Override
public void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
// TODO Auto-generated method stub
System.out.println("get  。。。");
resp.setContentType("text/html;charset=utf-8");//           

PrintWriter out = resp.getWriter();//           
out.println("<!DOCTYPE html>");
out.println("<html>");
out.println("<head>");
out.println("<meta charset=\"UTF-8\">");
out.println("<title>Insert title here</title>");
out.println("</head>");
out.println("<body>");
out.println("<h1>Hello        </h1>");
out.println("</body>");
out.println("</html>");

}

 
Servlet 동적 으로 웹 페이지 html 파일 을 생 성 하 는 과정 에서 사용 자 는 클 라 이언 트 에서 url 요청 으로 servlet 가상 경 로 를 방문 하고 servlet 프로그램 을 실행 합 니 다.get 방식 으로 제출 하면 doGet 방법 을 실행 합 니 다.post 방식 요청 이 라면 doPost 방법 을 실행 하고 html 파일 을 흐 르 는 동적 으로 브 라 우 저 에 인쇄 합 니 다.브 라 우 저 는 파일 을 분석 합 니 다.
Servlet 인터페이스의 생명 주 기 는 주로 아래 의 세 가지 방법 에 나타난다.init(ServletConfig config)서비스 초기 화(ServletRequest req,ServletResponse res)서비스 방법 destroy()는 웹 서버 에서 servlet 서 비 스 를 제공 하 는 용 기 를 소각 합 니 다.외부 노출 과 유사 한 인 터 페 이 스 는 servlet 서 비 스 를 받 습 니 다.클 라 이언 트 가 서버 에 접근 할 때 서버 는 servlet 용기 에 servlet 인 스 턴 스 서 비 스 를 구 축 했 습 니 다.init 초기 화 방법 과 service 서비스 방법 을 호출 했 습 니 다.그 후에 destory()방법 을 호출 하지 않 으 면 용기 에 servet 서비스의 인 스 턴 스 가 존재 합 니 다.다음 접근 은 service 방법 만 호출 합 니 다.WEB 응용 이 종료 되 거나 Servlet 용기 가 실행 을 중지 하거나 Servlet 용기 가 Servlet 새 인 스 턴 스 를 다시 불 러 올 때 Servlet 용 기 는 먼저 Servlet 의 destroy()방법 을 호출 합 니 다.destroy()방법 에서 Servlet 이 차지 하 는 자원 을 방출 할 수 있 습 니 다.
위 에서 알 수 있 듯 이 Servlet 은 다른 자바 프로그램(Servlet 엔진)에서 호출 할 수 있 는 자바 류 입 니 다.그 는 독립 적 으로 실행 할 수 없습니다.그 는 완전히 Servlet 엔진 제 어 를 실행 합 니 다.클 라 이언 트 의 여러 번 Servlet 요청 에 대해 서버 는 하나의 Servlet 실제 대상 만 만 만 들 고 Servlet 이 만 들 면 메모리 에 머 물 러 있 습 니 다.웹 용기 가 Servlet 인 스 턴 스 대상 을 종료 할 때 까지 후속 요청 서 비 스 를 사용 합 니 다.Servlet 의 전체 수명 주기 동안 Servlet 의 init 방법 은 한 번 만 호출 되 고 하나의 Servlet 에 대한 요청 은 매번 Servlet 엔진 이 Servlet 의 service 방법 을 호출 합 니 다.매번 방문 요청 에 대해 서 는...Servlet 엔진 은 새로운 Http 를 만 들 고 새로운 Http ServletRequest 요청 대상 과 새로운 Http ServletResponse 응답 대상 을 만 듭 니 다.이 행 위 는 HttpServlet 에서 물 려 받 은 것 이기 때문에 일반적으로 복사 할 필요 가 없다.또한 init 방법 에 대해 서 는 복사 가 필요 하 다 면 인삼 이 없 는 init 방법 만 복사 하면 됩 니 다.다시 불 러 오 는 인삼 init 방법 은 내부 에서 init()방법 을 호출 하고 doget 과 dopost 방법 도 서로 호출 하여 개발 을 간소화 할 수 있 으 나 순환 에 주의 하 십시오.
Servlet 경로 매 핑 클 라 이언 트 는 경 로 를 통 해 Servlet 류 에 접근 합 니 다.Servlet 의 경로 매 핑 은 웹.xml 의태그 요 소 를 통 해 이 루어 집 니 다.하나의 Servlet 는 여러 개의 접근 경로 URL 설정 형식 3 가지 1 을 설정 할 수 있 습 니 다.완전 경로 매 칭/시작,/대표 루트 디 렉 터 리 2,디 렉 터 리 매 칭/*로 끝 납 니 다.디 렉 터 리 의 모든 경 로 는 3 에 접근 합 니 다.확장자 일치(/로 시작 할 수 없습니다.*.로 시작 합 니 다)*.do 는 도 를 확장자 로 하 는 경 로 를 방문 합 니 다.클 라 이언 트 가 여러 개의 접근 경로 가 있 을 때 같은 Servlet 에 접근 할 때 우선 순위 1>2>3.
상대 경로 와 절대 경로 의 차이,상대 경 로 는 현재 페이지 의 경로 에 비해 현재 경로 에서+상대 경로 에 해당 하 며,절대 경 로 는 루트 디 렉 터 리 에서 시작 하 는 전체 경로 입 니 다.페이지 form 폼 을 제출 할 때 action 속성 이 접근 경 로 를 설정 할 때 상대 경로 로 설정 할 수도 있 고 절대 경로 로 설정 할 수도 있 지만 상대 경로 에서 서버 측 이 접근 할 자원 의 경로 인지 주의해 야 합 니 다.

좋은 웹페이지 즐겨찾기