JSP&Servlet 활용 14

Servlet (4) Filter

서블릿 필터(Servlet Filter) Client 로 부터 Server 로 요청이 들어오기 전에 Servlet 을 거쳐서 필터링 하는 것을 서블릿 필터라고 한다. HttpServlet 을 상속 받지 않고 Filter 인터페이스를 구현하며 doFilter 메서드를 Override 한다 HttpServlet 에서 사용하던 메서드와 다르게 doFilter는 ServletRequest, ServletResponse 객체를 인자로 받는다 @WebFilter(" 필터링 할 url ") 어노테이션을 사용한다 하나의 url 에 여러개의 필터를 추가할 수 있다 naming 한 순서대로 filter 우선순위를 가진다 1. Filter Mapping ( Annotation ) /login url 에 위 2개의 필터를 적..

Servlet (2) doGet, doPost

HttpServletRequest, HttpServletResponse 는 ServletRequest 와 ServletResponse 를 상속 받는다 service 메서드는 모든 요청에 대하여 항상 실행되어 doGet, doPost 등의 메서드가 호출 되지 않는다 1. doGet 메서드 브라우저에서 url 로 접속 혹은 form 에서의 get 요청 등에 실행되는 메서드이다 필요한 로직을 수행하고 난 뒤 다른 페이지로 forwarding 혹은 redirection 할 수 있다 2. doPost 메서드 form 에서 post 요청 등에 실행되는 메서드이다 필요한 로직을 수행하고 난 뒤 다른 페이지로 forwarding 혹은 redirection 할 수 있다 3. redirection & forwarding ..

Servlet (1) Url Mapping

HttpServlet 메서드 기능 void service(ServletRequest req, ServletResponse res) 요청 (새로고침 등) 마다 호출된다 void destroy() Servlet 내용 수정 (코드 수정), 프로그램 종료, 재시작 마다 destroy() 가 호출된다 void init() 처음 Servlet 이 만들어질 때 최초 1회만 동작한다 destroy()가 호출된 이후 다시 요청을 받을 시 호출된다 1. Annotation @WebServlet("url") 을 사용하여 Url Mapping 을 하는 방식이다 HttpServlet 을 상속받는다 service(), destroy(), init() 메소드를 Override 한다 클래스에 @WebServlet(" url ") 을..

JSP (11) 로그인, 로그아웃 실습

실습에 사용되는 파일은 크게 4가지이다 login.jsp : 로그인 화면 페이지 loginProc.jsp : 로그인 처리 logoutProc.jsp : 로그아웃 처리 main.jsp : 로그인 성공후 화면 페이지 1. login.jsp 로그인 form은 id와 password를 입력받은 input 태그와 버튼 태그로 구성되어있다 입력받은 데이터는 request 내장객체에 저장되어 loginProc.jsp 로 전달된다 전송 방식은 post 방식으로 설정했다 위 스크립트는 loginProc.jsp 에서 로그인 처리 이후 session에 저장한 msg가 있다면 경고창을 띄워주기위해 작성했다 메시지 중복 조회를 방지하기 위해 경고창을 띄운 후 Session에서 msg를 제거해주었다 경고창 또한 메시지가 있을때만..

JSP (10) Download

response의 Header 정보를 수정하여 클라이언트가 파일을 다운받을수 있게 설정할 수 있다 1. 04download_01.jsp (단일 파일 다운받기) pageContext.getServletContext().getRealPath("/")를 통해 현재 프로젝트의 경로를 구하고, 다운로드할 파일의 폴더 경로를 추가한다 FileInputStream 객체를 이용하여 다운로드할 파일을 읽는다 response.getOutputStream() 을 통해 ServletOutputStream 객체를 반환받아 파일을 전송할 출력 객체를 만든다 response Header 변경 application/octet-stream;charset=utf-8 에서 application/octet-stream 은 응답 데이터가 바..

JSP (9) Servlet 내장객체

1. PageContext PageContext는 JSP 페이지 내에서 사용 가능한 객체들의 집합을 나타내는 인터페이스이다 JSP 페이지 내에서 다른 객체들에 접근하고 데이터를 공유하는 데 사용된다 주로 JSP 페이지에서 스크립트 요소나 표현 언어 (EL) 등을 이용하여 다른 Java 객체나 속성에 접근할 때 사용된다 메서드 기능 getRequest() Request 객체를 꺼내온다 getSession() Session 객체를 꺼내온다 getServletContext() ServletContext 객체를 꺼내온다 getServletContext().getContextPath() 프로젝트 경로를 꺼내온다 EL 방식의 Project Path 얻는법 ${pageContext.request.contextPath..

JSP (7) JspToJs, JsToJsp

1. JspToJs Jsp에서 Scriptlet을 통해 선언된 변수를 Javascript에서 사용하는 방법이다 태그 내에서 표현식 을 사용하여 해결한다 EL 방식으로는 작성하지 못한다 2. JsToJsp Javascript에서 설정된 데이터를 Jsp에서 사용하는 방법이다. script 태그 내에서 form을 통하여 페이지를 이동 시킨다 (submit) 페이지가 이동하면서 전달받은 데이터를 request 내장 객체를 사용하여 접근한다

JSP (8) Forwarding, Redirect

1. Forwarding request.getRequestDispatcher(경로).forward(request, response) Request는 유지한 채 또 다른 URI 경로로 이동한다 주소창의 URL 경로는 최초 요청시의 URL로 유지된다 Request 객체의 내용은 최초 요청 내용이 유지된다 forward를 하여 03 PAGE로 이동했지만 url에는 02Page.jsp 로 표기되어있다 request와 response 값이 유지되어 이동되었다 이동한 Servlet, jsp에서 request에 저장한 속성 값도 같이 전달되었다 forward 처리를 모두 수행한 후 response를 전달한다 2. Redirect response.sendRedirect(경로) 새로운 request 요청 경로를 전달함으..

JSP (6) Get, Post 요청

1. Get button을 클릭하면 request 내장 객체에 데이터가 담겨서 jsp 파일에 전달된다 request 내장 객체의 getParameter를 통해 전달받은 데이터에 접근한다 name 속성 값을 인자로 넘겨준다 결과 Get 요청 방식은 전달하려는 데이터가 url에 파라미터로 노출된다 결과 상세 조회 (2) 실습 결과 전달받은 "red" 를 통해 body 요소의 bgcolor가 red로 설정되었다 2. Post 방식 이전과 같은 내용이지만 html 파일의 form 태그 action이 C02Result.jsp로 수정되었다 결과 Post 요청 방식은 데이터가 url에 파라미터 형태로 명시되지 않았다 3. EL 표현식 ${ param. ...} 방식으로 사용된다 ( %는 오타이다 )

JSP (5) Scriptlet

1. Scriptlet Scriptlet ( ) JSP -> Servlet 으로 변환될 때 Servlet 내의 Service 라는 메서드안에서 처리되는 로직이다 Service 는 요청될 때 마다 호출되는 메서드 Service 라는 함수 내에서 동작하기 때문에 지역변수나 반복/분기 처리가 가능하다 하지만 함수를 벗어나면 지역 변수는 소멸되기 때문에 요청 시 (ex. 새로고침) 되면 상태값이 초기화된다 Service 메서드 내에 작성되는 로직으므로 for문이 작성가능하지만 메서드를 따로 선언할 수는 없다 2. 실습 (1) 콘솔로 입력받은 값을 브라우저에 출력하기 (2) 콘솔로 입력받은 값으로 테이블 만들기 Scriptlet ( ) 을 중간에 끊어서 html 태그를 추가하여 작성할 수 있다