📌 개요 클라이언트의 요청을 받은 서블릿에서 다른 컴포넌트( 서블릿, JSP, html)로 요청을 위임할 수 있는 방법이다. 직접 요청 받은 서블릿에서 모든 작업을 처리하지 않고 위임한 컴포넌트에서도 특정 작업을 처리하여 모듈화가 가능하다. 📌 위임방법 2가지 1️⃣ HttpServletRequest 객체를 이용한 forward 방법. 맨 처음 요청 받은 서블릿에서 생성된 HttpServletRequest 객체를 재사용하여 위임 하는 방법으로 포워드(forward)라고 부른다. 하나의 HttpServletRequest 를 사용하기 때문에 forward 되었을 때 URL이 변경이 안된다. RequestDistatcher dis = request.getRequestDispatcher(target); dis...
📝 목록 중 내가 보고싶은 것만 선택 ✅ 내가 원하는 것을 클릭하면 그것이 나오는 서블릿 하나 만들어준다. (DeptRetrieveServlet) ✅ 결과 📝 삭제 결과 📝 수정 ✅ 부서위치 수정까지 추가 ✅ 수정 누르면 수정 후의 목록으로 submit 되도록 해준다. ✅ 다시 해보면 부서번호를 모르기 때문에 안된다. ✅ hidden으로 부서번호까지 넘겨주기 ✅ // 서비스연동 // 응답처리 ✅ 결과
✅ import 하기 📌 main 아키텍쳐 main클래스 ———> 서비스 ———> DAO ———> 오라클 2개의 jar를 build path 2개의 xml 파일 작성 ( com.config 패키지 ) Configuration.xml DeptMapper.xml com.dto.DeptDTO 작성 com.dao.DeptDAO 작성 com.service.DeptService com.service.DepServiceImpl 작성 DeptMain 작성 (main 메서드) 📌 web 아키텍쳐 서블릿 ———> 서비스 ———> DAO ———> 오라클 2개의 jar를 WEB-INF/lib 복사 하면 자동으로 build path 됨 2개의 xml 파일 작성 ( com.config 패키지 ) Configuration.xml ..
📌 용도 서블릿 호출전 (요청필터) 또는 호출후(응답필터)에 특별한 작업이 가능 요청필터는 일반적으로 POST의 한글처리가 대표적인 작업이고 응답필터는 특별히 없는데 압축, 암호화 작업이 가능하다. 📌구현방법 package 지정 필수 implements Filter 및 메서드 재정의 doFilter(ServletRequest request, ServletResponse response, FilterChain chain) { //요청필터 작업 chain.doFilter(request, response); //응답필터 작업 } 필터 맵핑 (web.xml 설정) 📝필터 맵핑 ( web.xml 설정 ) 📝 /* 📌 구현 방법 📌 POST의 한글 처리
Scope ( 범위, lifecycle ) 1️⃣ 개요 임의의 데이터를 특정 객체에 저장할 수 있다. 객체가 3가지 형태가 있고 lifecycle가 다르다. ★★ 2️⃣ 종류 3가지 ✅ HttpServletRequest ( request scope 라고 부른다. ) // Attributes are reset between requests // request.getParameter(key) 구별해야 된다. -저장방법: request.setAttribute(String key, Object value); -조회: request.getAttribute(key); 형변환 필요 -삭제: request.removeAttribute(key); ✅ HttpSession ( session scope 라고 부른다. ) H..
📌 javax.servlet.ServletConfig 서블릿 계층구조에서 본 것처럼 서블릿에 1:1 대응됨 ( 서블릿당 하나씩 생성 ) 다른 서블릿에서는 사용 불가 기능? a. 초기화 파라미터 조회 ( key/value 쌍 ) String s = getInitParameter(String name); 사용 ★ ⇒ web.xml에 서블릿을 맵핑할 때 key/value 쌍으로 값을 저장하고 필요 시 사용 ⇒ key/value 쌍을 자바에 저장하면 수정 시 재컴파일이 필요함 ⇒ 대표적인 예) 파일경로 ⇒ 스프링 프레임워크 사용한다 A dir_path c:\temp x y B b. ServletConext 반환 ServletContext ctx = getServletContext(); 📌 javax.servle..
🎯 서블릿의 핵심 기능(교안 p.40) 1️⃣ 요청처리 기능 html의 사용자 입력 태그에 값을 지정하고 submit 버튼을 선택하면 서버에 파라미터가 전달된다. 요청받은 서블릿은 HttpServletRequest 객체의 메서드를 사용하여 요청 파라미터 값을 얻을 수 있다. 📌 실행순서 1. 사용자 입력 태그를 가진 html (jsp) 작성 - loginForm.jsp - New jsp file 생성 코드 작성 2. 사용자 입력 값을 얻기 위한 서블릿 작성 - LoginServlet ( 서블릿맵핑: /login ) - method=”get” ⇒ doGet 으로 처리 - method=”post” ⇒ doPost 으로 처리 만약 일치하지 않으면 405 에러가 발생됨 2️⃣ 응답처리 기능 - html 작성해서..
🎯 서블릿 lifecycle tomcat 컨테이너가 서블릿의 life cycle 관리 ( 생성 ~ 소멸 ) 생성시 호출 메서드 : init () 메서드 콜백 호출 단 한번만 호출된다. 요청시 호출 메서드: service() 메서드(doGet, doPost) 요청할 때마다 호출된다. 삭제시 호출 메서드: destroy() ⇒ 콜백 메서드로 동작됨 (시스템이 특정 상황에서 호출하는 함수) 서블릿은 단 한번만 생성된다. 단 하나의 생성된 서블릿을 이용해서 많은 사용자(클라이언트)의 요청을 처리한다. 주의할 점 인스턴스 변수는 단 한번만 생성된다. 여러 사용자가 공유할 수 있다. ( thread-unsafe ) 만약 공유하고 싶지 않으면 반드시 로컬 변수로 작성해야 된다. ( thread-safe ) ⇒ 결론은..
1️⃣ 특징 main 없다. 요청한 서블릿이 시작점 역할 담당 Tomcat 컨테이너가 관리 (생성~소멸) 응답결과는 html이기 때문에 html 응답코드가 필요 2️⃣ 구현 방법 반드시 package 필수 extends HttpServlet ( javax.servlet.http.HttpServlet ) => 추상 클래스 💡 계층 구조 그림 (p.35) 💡 Java EE API 문서 ( java.oracle.com ) ServletContext (인터페이스, javax.servlet.ServletContext) ☑ ServletConfig의 getServletContext() 메서드를 사용해서 ServletContext를 얻는다. ex) 사용자 서블릿에서 ServletContext sc = getServl..