servlet 워크샵 22번은 많이 사용하는 로그인 형식이니 숙지해두자.
클라이언트에서 서블릿으로 요청하고 응답을 처리할 때, 서블릿이 요청 받기 전과 응답 처리 전에 임의의 특정 작업을 수행할 수 있도록 Filtel API를 사용할 수 있다.
즉, 서블릿이 실행되기 전의 선처리작업과 응답 전의 후차리 작업이 가능하다.
필터클래스에서 post방식시 필요한 한글 처리 등을 해줄 것이다.
필터 임플먼트시 임포트
서블릿 끝
단점 : html 작성이 어려움
jsp를 보고 나머지 다시 진행
JSP(Java Server Page)는 서블릿과 마찬가지로 동적인 웹 어플리케이션을 개발할 때 사용 가능한 웹 컴포넌트이다.
jsp 태그가 먼저 실행(1)되고 출력결과가 html에 추가(2)되어 사용자는 jsp코드를 제외한 html 결과물만을 볼 수 있게 됨.
처리코드는 html위에다가 되도록 작성하고 진짜 출력해야하는 것들만 html태그 내에 작성하는 것을 권장.
단점 : 실행될 때 서블릿으로 변경되어 실행되므로 오류 발생시 서블릿 파일 기준으로 오류를 알려주어서 jsp파일 내의 어기서 발생했는지 알기가 어렵다.
JSP는 다음과 같은 3단계를 거쳐서 실행된다.
요청된 JSP 파일은 파일명_jsp.java 파일명을 가진 서블릿으로 변환되어진다. 앞에서 배웠던 서블릿과 100% 일치되는 형태는 아니지만 내부적으로 서블릿으로 동작된다.
변환된 서블릿을 컴파일하는 단계이다. JSP 파일에 문법적으로 에러가 있으면 컴파일 에러가 발생되어 변환되지 않으며 파일명_jsp.class 형식을 갖는다.
컴파일된 파일을 실행시키는 단계이다. 실행된 결과는 HTML 형식으로 응답되어진다. 웹 브라우저에 예외를 출력하는 화면이 나오면 실행시 예외(Runtume Exception)가 발생된 것이다. 따라서 JSP 코드를 디버깅해야된다.
다음은 JSP에서 사용 가능한 태그 목록이다.
다음은 JSP 스크립팅 요소로서 JSP페이지가 서블릿으로 변환시 JSP 엔진에 의해서 처리되며 <% ~ %> 형식을 갖는다.
임포트 주로 함
<% page 속성명="속성 값" 속성명="속성 값" %>
JSP의 현재 페이지에서 다른 html 및 JSP 페이지를 정적으로 삽입할 수 있는 방법이다.
<%@include file="포함할 페이지" %>
JSP에서 외부 라이브러리로 만든 태그를 지정할 때 사용하는 방법이다.
대표저그로 JSTL(JSP Standard Tag Library)이 제공된다.
<%@ taglib url="TLD파일 URL prefix="네임스페이스명" %>
JSP 선언 태그는 JSP페이지에서 자바의 멤버 변수와 메서드를 선언할 때 사용된다.
서블릿으로 변환될 때 자동으로 서블릿의 멤버로 변환시키기 때문에 JSP페이지의 어느 위치에서도 참조가 가능하다.
<%! %>
JSP에서 가장 중요한 태그로서, 서블릿의 doGet 또는 doPost 메서드에서 처리했던 로직을 JSP페이지에서 사용 가능하게 지원하는 방법이다.
대표적인 로직으로 사용자 입력 파라미터 얻기, 요청 포워드/리다이렉트, DB연동 등과 같은 핵심 기능 처리를 담당한다.
<% %>
html어디에 있어도 문제되지 않음
서블릿에서 doGet, doPost 메서드에서 처리했던 로직을 jsp에서 사용가능하게 해준다.
리턴값이나 변수를 브라우저에 출력할 때 사용
주의점 : 세미콜론; 생략
<%= %>
JSP에서 for 0~10까지 짝수만 출력
<!-- for 0~10까지 짝수만 출력 -->
<%
for(int i=0; i<=10; i++){
if(i%2==0){%>
i= <%=i %><br>
<%}} %>
<hr>
<!-- out.print()활용 -->
<%
for(int i=0; i<=10; i++){
if(i%2==0){
out.print("i="+i+"<br>");
}} %>
워크샵 25~26 - jsp전까지 연습