JSP/Servlet
Servlet이란 Java코드안에 HTML코드(HTML+java.java)
Java - Model
JSP - View
Servlet - Controller
WEB-INF 경비실 - 브라우저에서 직접적으로 접근이 불가한 경로, Controller를 통해서만 이동가능!!
Servlet생명주기(Life Cycle)
클라이언트가 요청하면 바로 호출되지않고 객체생성->초기화작업->요청처리 하는 생명 주기를 가짐
Context등록 - context가 바뀌어도 변경하기 유용
Context path="/경로" docBase="propetise"
PrintWriter out=res.getWriter();
서블릿 클래스 작성시 데이터를 출력할 때 response.getWriter() 를 통해 PrintWriter를 얻기 위한 클래스
WEB-INF 안의 web,xml = 표지판 (<web-app></web-app>사이에)
MyBatis - 객체지향 언어인 자바의 관계형 데이터 베이스 프로그래밍을 도와주는 개발프레임워크
-
SQL 명령어를 자바코드에서 분리하여
-
XML파일을 따로관리
-
한두줄의 자바코드로 DB연동을처리
▲서블릿 기본골격
extends HttpServlet - 서블릿 상속(javax.servlet.http 패키지에서 제공하는 HttpServlet 클래스를 상속받아 구현해야함)
HttpServletRequest request
(요청)
HttpServletResponse response
(응답)
throws SeverException, IOException{
} ( throws - 예외 던지기) 예외가 발생하면 해당 클래스에서 벗어나게 됨
throws - 메소드나 생성자를 수행할 때 발생하는 excaption을 선언할때, 자신을 호출하는 메소드에게 책임을 전가
throw - 실제로 exception을 throw할때, 강제로 예외를 발생
service()메소드 - 클라이언트가 서블릿에 요청할때마다 서블릿 컨테이너는 서블릿의 service메소드를 호출한다.
▲mapping
web.xml에서 mapping - 클라이언트(브라우저)가 JavaServlet에 접근하기위해선 WAS(Tomcat)에 필요한 정보를 알려줘야 해당Servlet 호출 할 수 있음.
간결하게 하기위해, 보안문제로 mapping
/WEB-INF/classes/kr.controller.HelloServlet → /hs
▲요청 응답, redirect
/memberInsert.do(회원가입 페이지)에서 회원가입 성공하면 회원 리스트를 띄우도록
response. sendRedirect해서 /memList.do로 redirect해서 회원리스트 보여주고
실패시 Tomcat으로 예외던지기. (throw new ServletException("error");
redirect - 요청 받은 첫 번째 URL에서 클라이언트에 Redirect할 두 번째 URL을 리턴하고, 클라이언트는 전혀 새로운 요청을 생성하여 두 번째 URL에 다시 요청을 보낸다. (처음 보냈던 요청정보는 더이상 유효하지 않음)
get - 주소창을 타고넘어감(보안취약),255자이하
post - html header타고넘어감,255자이상 대용량가능