[Java] 백엔드 기초 - JSP & Servlet (1)

Java 역사

  • Applet 개념
    • 웹 브라우저에서 동작하는 프로그램을 만드는 것
    • ~.html
      <applet class="Board.class"></applet>
  • Servlet: 브라우저에서 실행
    • ~.java로 작성하지만 소스 안에 html, css, js 그대로 사용 가능
    • java의 문법을 모르는 디자이너와 협업하기에는 어려움
    • java 중심 코딩 + html, css, js
  • JSP의 탄생(Java Server Page): 브라우저에서 실행
    • ~.jsp 문서 안에 html, css, js 그대로 사용 가능하다
    • 마크업 중심 코딩 + java
  • 2010년 이후
    • 디자인 패턴: 설계도
    • MVC 구조 개념: Model 2방식
      1. Model: Java(BusinessLogic, Data Access Object, DTO...)
      2. View: HTML, CSS, JS, JSP
      3. Controller: Servlet
        • Model과 View 사이에서 클라이언트의 요청(request)를 받아 Model쪽으로 보내고 다시 그 결과 응답(response)를 브라우저로 전송

 

 

 

Servlet 작성

  1. HttpServlet를 상속받는다
  2. 반드시 public class로 선언한다.
  3. 기능 작성: 브라우저에서 출력될 내용이나 비즈니스 로직 실행
    • 메소드 재정의
    • init()
      • 객체가 생성된 후 최초에 딱 한 번 호출되며 생성되는 시점에 해야 할 일을 작성
    • service(HttpServletRequest request, HttpServletResponse response)
      • 사용자 요청(request)이 들어올 때 마다 호출된다.
      • 부모에 정의되는 service 메소드는 사용자 요청이 get방식이면 doGet을 호출하고 post방식이면 doPost를 호출한다.
    • doGet(HttpServletRequest request, HttpServletResponse response)
      • get 방식일 때 해야할 일 작성
    • doPost(HttpServletRequest request, HttpServletResponse response)
      • post 방식일 때 해야할 일 작성
    • destroy()
      • servlet이 종료될 때 해야 할 일 작성
  4. 작성한 servlet 문서가 브라우저에서 실행되기 위해서 생성 + 등록 과정이 필요
<!-- web.xml 문서에 등록하는 방법-->
<servlet> 
	<servlet-name></servlet-name> 
    <servlet-class></servlet-class> 
    <load-on-startup></load-on-startup> 
</servlet> 

<servlet-mapping> 
	<servlet-name></servlet-name> 
    <url-pattern>/lifeCycle</url-pattern> 
</servlet-mapping>

<!-- @annotation 방법 -->
@WebServlet(loadOnStartup = 1, urlPatterns = "/lifeCycle")

 

 

응답 코드: status

  • 200: 성공
  • 404: FileNotFoundException
  • 405: 요청 방식을 틀렸을 때
  • 400: bad request(parameter로 전달되는 요청에 오류)
  • 403: 인증은 하였으나 권한 부족
  • 500: 소스 오류