본문 바로가기

TIL/Servlet

(7)
[Servlet] mvc-2 상단에서 입력한 것 처럼 상대경로를 입력해주면 다른 경로에 있으면 접근할 수 없다. 그래서 pageContext.ServletContext.contextPath로 작성해준다. 전체 직원 조회용 서블릿 생성 service클래스에 메소드 생성 dao클래스에 메소드 생성. 전체 조회용이니 넘어가는 파라미터 값이 없다. 매퍼 EmployeeDAO에 sql구문 작성 먼저 출력문으로 확인해보자. 주소창을 확인해보면 employee/list 서블릿 매핑된 것 잘 확인되고, 출력문에서도 전체 직원이 조회된다. 화면에 출력할 employeeList.jsp 생성 단, 반복적으로 출력하기 위해 jstl의 core라이브러리가 가지고 있는 foreach기능을 사용한다. jstl라이브러리는 기존에 추가돼있고, 맨 위에 선언해줘야..
[Servlet] mvc-1 EMPLOYEE 테이블에서 EMP_ID를 이용하여 사원 정보 조회해오기 log4j, jstl, mybatic, ojdbc 필요한 것들 다 복사해서 붙여준다. Java Build Path - Source탭에서도 log4j폴더 추가 web하위 폴더에 index.jsp 생성 jsp 표준 액션 태그를 요청해서 요청은 인덱스 요청이 들어오지만 실제 화면은 다른 곳으로 이동시키는 작업 상단에서 설정해준 똑같은 경로인 main.jsp 생성 메인에 페이지를 하나 include(포함)시켜준다. 위와 동일한 경로인 header.jsp 생성 header.jsp main.jsp SelectOneEmpByIdServlet생성 1. 전달한 파라미터 꺼내기 값이 잘 넘어왔는지 확인 2. 비즈니스 로직 호출 - 사번을 이용해 사원 ..
[Servlet] forward, redirect, cookie 먼저 html에 폼을 만들어 놓자. forward 아이디 : 로그인 비밀번호 : 1. 서블릿에서 아이디와 비밀번호 값을 얻는 메소드를 작성한다. 위에서 요청 정보를 받았고 모든 비즈니스 로직은 성공이라는 가정 하에 user01을 입력 시 해당 아이디를 user01님 환영합니다 라는 메시지를 출력해주는 화면을 만들자 이러한 처리를 해줄 PrintLoginSuccessServlet으로 위임하기 위해서는 RequestDispatcher 인스턴스 생성 후 이 때 다른 서블릿으로 요청하기 위한 데이터는 request에 setAttribute로 전달하여 받는 쪽에서는 getAttribute를 이용해 꺼내서 사용한다. forward받은 서블릿(PrintLoginSuccessServlet)에서도 요청 방식이 get이면..
[Servlet] response, exception-handler 서블릿이 하는 역할은 크게 3가지라고 볼 수 있다. 1. 요청 받기(HTTP method GET/POST 요청에 따른 parameter로 전달 받은 데이터를 꺼내올 수 있다) 2. 비즈니스 로직 처리(DB 접속과 CRUD에 대한 로직 처리 -> 서비스를 호출하는 쪽으로 해결(MVC)) 3. 응답하기 (문자열로 동적인 웹(HTML 태그)페이지를 만들어서 스트림을 이용하여 내보내기) 사용자 브라우저에 응답하기 위해 HttpServletResponse가 가지는 getWriter() 메소드로 PrintWriter 인스턴스를 반환 받는다. PrintWriter는 BufferedWriter와 형제격인 클래스이지만 더 많은 형태의 생성자를 제공하고 있어서 실제로는 범용성으로 인해 더 많이 사용 된다. 문자열을 이용해..
[Servlet] Parameter(getParameter..) index.html 먼저 작성 Request Parameter GET 방식의 요청 form 태그를 이용한 get 방식의 요청 이름 : 나이 : 생일 : 성별 : 남자 여자 국적 : 한국 중국 일본 기타 취미 : 영화 음악 취침 내가 넣은 값에 주소값에 출력된다. 대신 404오류페이지가 뜬다. 서블릿 생성 mapping은 위에서 html구문에서 작성해준 action값과 동일하게 작성한다. doGet만 필요하니 나머지 선택체크하고 Finish 이후에 다시 값을넣고 실행하면 오류페이지는 안 뜬다. (빈 페이지) HttpServlet 클래스의 service 메소드가 요청 방식에 의해 GET 요청은 doGet() 메소드를 호출하며 request와 response를 전달해준다. service로부터 전달받은 Http..
[Servlet] annotation, service method 이전 게시글에서 xml 매핑에 대해서 알아봤다. 더 편하고 간단한 annotation 매핑에 대해서 알아보자. public class LifeCycleTestServlet extends HttpServlet { // 메소드 호출 횟수를 카운트하기 위한 용도의 필드 private int initCount = 1; private int serviceCount = 1; private int destroyCount = 1; // 서블릿의 요청이 최초인 경우 한 번 동작하는 메소드 @Override public void init(ServletConfig config) throws ServletException { System.out.println("annotation 매핑 init() 메소드 호출 : " + in..
[Servlet] CGI, WAS, 톰캣 다운로드, 서블릿 라이프 사이클 CGI(Common Gateway Interface) - 웹서버가 직접적으로 웹 프로그램을 실행하는 것을 말한다. 동일한 프로그램에 대한 요청이 있을 때마다 각각 프로그램을 실행. 요청과 프로그램이 1:1 매칭되어 실행 WAS - 웹 서버가 웹 애플리케이션 서버에 요청하면 웹 애플리케이션 서버가 해당되는 프로그램을 실행하는 방식, 한 프로그램에 여러 요청이 있는 경우 한 개의 프로그램을 실행하여 그 프로그램을 다수 요청을 처리(동적) Ex) 동시에 여러명이 똑같은 요청을 하더라도 병렬적으로 처리하는 행위 구분 장점 단점 Web Server - 빠른 처리 속도 -> 요청에 대한 결과 페이지만 전송 - 구현이 쉬움 -> HTML같은 단순한 문서만으로 구성 - 한정적인 서비스 -> 만들어진 정보만 보여주기 때..