jsp / Servlet
Servlet? 웹 클라이언트의 요청을 처리할 수 있는 클래스. HttpServlet을 상속하여 만들어짐
jsp파일-> Servlet으로 동작
기존방식 - 클라이언트의 요청을 jsp파일로 받음
서블릿 - 클라이언트의 요청을 Servlet으로 직접 받음
MVC패턴
Model - Java
View - JSP파일 (보여지는 용도)
Controller - Servlet (요청을 처리하는 역할)
HTML/CSS/JS - 정적 사이트
JSP(Java) - 동적사이트
<form action="loginProc.jsp" method="post">
사용자의 입력을 위해 페이지가 필요하고, 입력한 내용이 처리되려면 특정 jsp파일로 요청을 해야만 함
<input type="text" name="userid"><br>
<input type="password" name="userpw"><br>
<input type="submit" value="로그인"><br>
jsp파일 하나가 사용자의 입력을 받을 수 있고, 입력받은 내용으로 서버에 전달하게 됐을때 입력받은 내용들을 서버로 요청하여 서버에서 이 데이터를 받아 어떻게 처리할지 결정하기 위한 프로세스 페이지가 따로 필요하다.
웹브라우저와 웹 어플리케이션 서버랑 요청을주고 응답받기 위해 jsp file이 매개체가 된다.
로그인 요청 -> 로그인 form을 보여줌 -> form에서 입력한 내용을 loginProc로 요청
loginProc는 클라이언트측에 보여주는 역할X. 요청을 받아서 어떻게 할건지만 결정을 함.
jsp -> 톰캣을 통해 자바코드로 변환 -> 컴파일 후 객체 생성 -> 생성된 객체가 init( ) 호출 -> 브라우저 요청에 대한 처리는 service( )로 브라우저에 응답!
브라우저에서 http://localhost:8888/backstudy/login.jsp 요청
폴더에 자바 파일이 생김 (컴파일)
JSP는 HTML문서 안에 css, java script,jap코드 등이 섞여 있어 유지 보수 작업 불편 (소규모 프로젝트에 적합)
Servlet
public class LoginServlet extends HttpServlet{
init() ,
destroy()
service(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException}
HttpServlet을 상속해서 내부에 필요한 메서드들을 재정의
브라우저에서 자바코드를 요청하게 된 상황.!
매개체 필요 (web.xml)
만든 서블릿을 등록해 주어야함
톰캣에 서블릿을 등록하는 과정
servlet-mapping
브라우저가 뭐라고 요청을 할 때 동작을 할 것인가?
브라우저에서 위와같이 요청이 들어오면 응답하겠다 톰캣에 등록해 주는 과정.
설정파일이 변경이 되면 톰캣을 재시작 해주어야 함!
jsp파일을 통해 응답이 돌아온 것을 확인 할 수 있다
브라우저에서 요청할때 jsp형식이 아니고, 요청 url과 매칭시켜 정의해놓은 자바클래스로 처리하겠다
그 자바클래스는 HttpServlet을 상속한 클래스만 가능하다
그 클래스가 갖고있는 오버라이딩된 메서드를 통해 서비스를 하게 되는 것이다.
여기서 jsp는 브라우저에 보여질 페이지를 정의 하는 역할!
Servlet? 웹 클라이언트의 요청을 처리할 수 있는 클래스. 이것이 서블릿이다.
자바 서블릿
자바를 사용하여 웹페이지를 동적으로 생성하는 서버측 프로그램
웹서버의 성능을 향상하기 위해 사용되는 자바 클래스의 일종
JSP는 HTML문서 안에 JAVA코드가 있음.
서블릿은 자바 코드 안에 HTML을 포함