JSP 정리 - 1일차

이원섭·2020년 2월 3일
2

JSP 공부

목록 보기
1/11
post-thumbnail

1. JSP 세팅

JSP 공부를 위한 준비

  • 자바 8버전 설치 -> 완료
  • 이클립스 설치 -> 완료
  • 톰캣 8.5버전 연동 -> 완료
  • 강인한 멘탈 -> 완료

2. 프로젝트 생성

  1. Dynamic Web Project 클릭
  2. 프로젝트명 입력 후 Finish (만들 때 마지막 web.xml 체크해주면 편함)
  3. Java Resource 부분에 .java 파일 생성

3. Servlet

3-1. Servlet 클래스는 HttpServlet 클래스를 상속받음

@WebServlet("/HelloWorld")
public class HelloWorld extends HttpServlet { // <- HttpServlet 클래스를 상속
  
}

3-2. 요청처리 및 응답처리 객체를 톰캣에서 받음.

protected void doGet(HttpServletRequest request, HttpServletResponce responce) throws ServletException, IOException {						  //요청처리                   //응답처리
  
}

protected void doPost(HttpServletRequest request, HttpServletResponce responce) throws ServletException, IOException {						  //요청처리                   //응답처리
  
}
  • GET & POST 방식 (위 코드)
  • GET 방식은 URL값으로 정보가 전송되어 보안에 약함.
  • POST 방식은 header를 이용해 정보가 전송되어 보안에 강함.

3-3. doGet()

HTML내 form태그의 method속성이 get일 경우 호출

protected void doGet(HttpServletRequest request, HttpServletResponce responce) throws ServletException, IOException {						  //요청처리                   //응답처리
  	responce.setContentType("text/html; charset=euc-kr"); // <- setContentType() 메소드를 호출하여 응답방식 결정
  	PrintWriter writer = responce.getWriter(); // <- getWriter() 메소드를 이용하여 출력 스트림을 얻음
  	writer.println("<html>"); // 출력스트림의 println() 메소드를 이용하면 웹 브라우저에 출력
  	writer.println("<head>");
	writer.println("</head>");
	writer.println("<body>");
	writer.println("<h1>Hello World ~~ </h1>");
	writer.println("</body>");
	writer.println("</html>");
  	
    writer.close(); // 출력객체 닫기
}

3-4. doPost()

HTML내 form태그의 method속성이 post일 경우 호출

protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		// TODO Auto-generated method stub
		System.out.println("doPost");
		
		response.setContentType("text/html; charset=euc-kr");
		PrintWriter writer = response.getWriter();
		writer.println("<html>");
		writer.println("<head>");
		writer.println("</head>");
		writer.println("<body>");
		writer.println("<h1>POST 방식 입니다. 따라서 doPost 메소드 호출 되었습니다.</h1>");
		writer.println("</body>");
		writer.println("</html>");
	}

3-5. 컨텍스트 패스(Context Path)

웹 어플리케이션을 구분하기 위한 path

3-6. Servlet 작동순서

  1. 웹 브라우저
  2. 웹 서버
  3. 웹 어플리케이션 서버
  4. Servlet 컨테이너
    1. 스레드 생성
    2. Servlet객체 생성

요청 응답의 가지수
1. client -> webserver -> db
1. client -> was -> db
1. client -> webserver -> was -> db
3번 : client가 요청을 보내면 webserver가 정적인부분 처리하고 was로 동적인 기능을 요청 was에서 servlet 객체 생성하고 객체마다 스레드를 할당한다. 그리고 스레드 안에서 서비스가 이루어지고 get 또는 post가 처리된다. 그 후 db에서 받고 반대로 응답을 진행한다.

3-7. Servlet 라이프사이클(생명주기)

  1. Servlet 객체생성 (최초 한번)
  2. init() 호출 (최초 한번)
  3. service()-> (doGet(), doPost()) 호출 (요청시 매번)
  4. destory() 호출 (마지막 한번, 자원 해제)

3-8. Servlet 선처리, 후처리

Servlet의 라이프사이클 중 init()과 destroy()메소드와 관려낳여 선처리(init()전)과 후처리(destroy()후) 작업가능
1. Servlet 객체생성
1. 선처리 : @PostConstruct
1. Init() 호출
1. service(), doGet, doPost() 호출
1. destory() 호출
1. 후처리 : @PreDestroy

profile
개발 공부 가즈아-!

0개의 댓글