개발 공부/WEB

jsp / Servlet

공부하는개발자_ 2023. 7. 12. 19:17

 

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을 포함

 

 

 

'개발 공부 > WEB' 카테고리의 다른 글

session / MVC  (1) 2023.07.14
Session Tracking : 상태 정보 유지기술  (0) 2023.07.13
redirect / forward  (1) 2023.07.11
Servlet  (0) 2023.07.10
Jackson library 설치  (0) 2023.07.07