[ jsp ] jsp - servlet 폴더 및 구동 설명 2 - MVC 모델2 방식
페이지 정보
작성자 웹지기 댓글 0건 조회 3,401회 작성일 21-01-11 17:36본문
*** 서블릿
서블릿은 model + view + controller = 모델 2방식
일반 자파 파일을 Servlet(서블릿)으로 바꾸기
extends HttpServlet
import javax.servlet.http.*;
main 메소드 를 service 메소드 로 바꾼다.
public static void main( ==>
public static void service(
웹은 요청과 응답이 한쌍이 필요함.
클라이언트에게 요청 > 응답은 html 코드
요청은 request
응답은 response
요청객체 => HttpServletRequest
응답객체 => HttpServletResponse
main(String[] args) ==> service(HttServletRequest req, HttpServletResponse res)
ip주소와 port와의 소통을 하게 됨.(111.111.111.111:9000 예를들어서 이런 요청이 들어오면 확인)
이부분이 req에 담아져서 가져오게 된다.
이가져온 부분을 가공해서 res로 보낼 때 다시 req에서 전달된 정보를 다시 응답한다.
서버가 통신을 하게 되면 무조건 res와 req의 한쌍이 만들어진다.
예외처리를 위해 마지막 부분에 추가 throws ServerException, IoException{
서블릿의 기본골격
import java.io.*;
import javax.servlet.*;
import javax.servlet.http.*;
public class HelloServlet extends HttpServlet{
public void service(HttpServletRequest req, HttpServletResponse res) throws ServletException, IOException{
}
}
요청이 오면 >>>>>
톰캣에서 HttpServletRequest IP,PORT를 메모리에 저장
톰캣에서 HttpServletResponse IP, PORT를 메모리에 저장
응답 :: PrintWriter out = res.getWriter();
서블릿의 이름은 3개가 된다.
진짜 이름, 가짜 이름, 찾아갈 때 이름
찾아갈 이름은 고유한 이름이 되어야 하므로 클래스 이름을 사용하게 되면
(<servlet-name>HelloServlet</servlet-name>)
127.0.0.1/iot/hs 를 브라우져에 넣으면 정상적으로 이동하게 된다.
<servlet>
//<servlet-class>/WEB-INF/classes/kr.controller.HelloServlet</servlet-class>
// WEB-INF/classes 는 기본 폴더이므로 생략가능
<servlet-name>HelloServlet</servlet-name>
<servlet-class>kr.controller.HelloServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>HelloServlet</servlet-name>
<url-pattern>/hs</url-pattern>
</servlet-mapping>
모델2방식 :
MVC 프레임워크를 이용하여 클라이언트의 요청을 진행하는 과정
서버에서 127.0.0.1/aaa/memList.do 를 요청하지만
실제 작업되어서 전달해주는 페이지는
memList.do 에서 포워딩해주는 member/memList.jsp 에서 보내주는 내용
controller 에서 request에 넣어두는 것을 객체 바인딩이라고 한다.
이 request를 넣는 것은 setAttribute 처리 -> request.setAttribute("list", list);
모델2방식에서 발전된 모양으로
frontController - pojo 형태로 업그레이드 된 형태에서의 흐름도
front controller
- client요청을 확인하는 작업( 요청 url = command )
pojo controller(Plain Old Java Object - 오래된 방식의 간단한 객체)
- 특별한 제한에 종속되지 않고, 클래스 패스(class path)를 필요로 하지 않는 일반적인 Java Object를 의미
- 주요 Java Object Model, 컨벤션 또는 프레임워크를 따르지 않는 Java Object를 나타냄
- java 언어 규약에 의해 강제된 것 이외의 제한에 구속되지 않는 Java Object
댓글목록
등록된 댓글이 없습니다.