제목 이어서
checkbox와 getParameterValues, 목록상자, JSP 기본 다루기, 컨택스트 패스, 두 수의 합 JSP, JSP 처리과정, JSP가 서블릿에 비해 처리속도가 느리지 않은 이유, JSP 페이지의 구성요소, jsp 기본태그, 선언문, 변수의 위치, 표현시그
[서블릿에서 요청 시 한글 처리]
1. get 방식
1) server.xml 파일에서 <Connector> 태그에 URIEncoding="UTF-8" 속성 추가
2. post 방식
1) doPost() 메소드에 request.setCharacterEncoding("UTF-8"); 추가
get방식
post 방식, 서블릿 코드 동일
(학원에선 잘 됏는데... 왜 안되는지 모르겠네요..)
[<textarea>와 radio button]
[smartediotr]
이것도 오류때문에 안되네요.. 신택스에러가 21번째 라인 bUseToolbar : true, 에서 걸리는데 안고쳐집니다..
[체크박스와 request의 getParameterValues]
1. 동일한 이름으로 여러 개의 값을 읽어오는 방법
1) String items[] = request.getParameterValues("item");
2) 예 : 체크박스, Select 등
[목록상자]
[JSP 기본 다루기]
1. JSP 로 시작하는 웹 프로그래밍
1) 인터넷을 사용하는 사용자에게 정보를 제공하기 위해서 HTML 태그를 사용하여 웹 브라우저 내에 정보를 표시
2. JSP에서는 HTML 태그를 사용할 수 있음, 웹 애플리케이션의 프리젠테이션 역할 담당
3. JSP에서만 사용 가능한 태그(예, 스크립트릿)를 이용하여 쉽게 웹 프로그래밍을 할 수 있도록 함
[JSP와 url 관계]
http://localhost:8080/jsp-study/01_hello.jsp
jsp-study : context path
01_hello.jsp : 세부 jsp 요청
1. context path : 프로젝트(응용 애플리케이션)를 구분하는 구분자
1) 프로젝트 생성할 때 정의(default로 프로젝트 명과 동일)
2) tomcat 서버의 server.xml에 등록해야 함
3) 이클립스는 프로젝트 구동 시 자동으로 수행
[프로젝트 폴더와 컨택스트 패스의 관계]
1. 프로젝트 폴더 : 개발자 입장에서 개발을 위해서 생성된 파일들을 관리하기 위한 폴더
2. 컨텍스트 패스 : 응용 애플리케이션에 접근하기 위한 경로, 프로젝트 폴더 명과 다를 수 있으며 ,변경 가능
[두 수의 합을 출력하는 JSP]
1. 서블릿은 생성하지 않고 jsp만 만들었을 때, jsp 파일은 톰캣 서버가 번역하여 그 결과를 HTML 태그로 변환한 후 웹 브라우저로 내려보낸다.
[JSP의 처리과정]
1. JSP의 처리 결과
1) 서블릿과 다를 것이 없음 : HTML 코드를 만든다.
2) 웹 컨테이너가 jsp를 서블릿으로 변환하고 서블릿은 HTML 코드를 생산
2. JSP의 필요성
1) 서블릿으로 HTML 코드를 만드는 작업이 복잡함 : 자바 코드 안에 HTML 코드를 삽입
2) 브라우저로 결과를 출력하는 부분은 jsp로 대체하고, 순수 자바 처리 부분은 서블릿으로 처리
3) jsp는 HTML 코드를 내포하고, 스크립트릿에 의하여 자바 코드 부분을 내포 ->
JSTL(Jsp Standard Tag Library) 및 EL(Expression Language)를 사용하여 자바코드를 대체 ->
디자이너가 자바를 모르더라도 작업을 할 수 있음.
3. 서블릿 위치
workspace\.metadata\.plugins\org.eclipse.wst.server.core\tmp0
\work\Catalina\localhost\jsp-study-03\org\apache\jsp
1) 브라우저에서 jsp를 호출하기 전에는 서블릿이 생성되지 않다가
2) 브라우저에서 jsp를 호출하면 서블릿으로 변환하고 .class 파일이 생성됨
[JSP가 서블릿에 비해 처리속도가 느리지 않은 이유]
즉, JSP가 서블릿으로 변환하는 과정은 처음 실행할 때만이고 그 후부터는 변환하지 않아도 되므로 속도가 비슷하다.
[JSP 페이지의 구성요소]
1. 디렉티브(Directive)
1) JSP 페이지에 대한 설정 정보를 지정할 때 사용
2) 형식 : <%@ 디렉티브 이름 속성1="값1" 속성2="값2"...%>
3) 디렉티브 종류
(1) page : JSP 페이지에 대한 정보를 지정
JSP가 생성하는 문서의 유형, 출력 버퍼의 크기, 에러 페이지, import 등
(2) taglib : JSP 페이지에서 사용할 태그 라이브러리를 지정
(3) include : JSP 페이지의 특정 영역에 다른 문서를 포함
2. 스크립트 요소 : JSP = 스크립트 언어
1) 표현식 (Expression) : 값을 출력
2) 스크립트릿 (Scriptlet) : 자바코드를 실행
3) 선언부 (Declaration) : 자바 변수, 메소드를 정의
3. 기본 객체(Implicit Object)
1) request, response, out, page, config, session, application, pageContext, exception
4. 표현 언어(Expression Language)
1) 값을 표현하는데 사용하는 스크립트 언어 : 표현식 보다 간결
2) ${param.a*param.b} 형식
5. 정적인 데이터 : HTML, CSS, Javascript
6. 표준 액션 태그(Action Tag)
1) JSP 페이지에서 특별한 기능을 수행 : include, forward, useBean 등
2) 형식 : <jsp:액션태그이름>
7. 커스텀 태그(Custom Tag)와 표준 태그 라이브러리(JSTL)
1) 커스텀 태그 : JSP를 확장시키는 기능 -> 개발자가 직접 개발
2) JSTL(JSP Standard Tag Library) : 커스텀 태그 중 많이 사용되는 것을 별도로 표준화한 것
[JSP 기본 태그]
종류 | 사용 용도 | 형식 |
스크립트릿(scriptlet) | 자바코드를 기술 | <% %> |
선언(declaration) | 변수와 메소드를 선언 | <%! %> |
표현식(expression) | 계산식이나 함수를 호출한 결과를 문자열 형태로 출력 | <%= %> |
주석(comment) | jsp 페이지에 설명을 넣음 | <%-- --%> |
지시자(directive) | jsp 페이지의 속성을 지정 | <%@ %> |
1. jsp 스크립트릿 요소 : 자바를 사용
1) 스크립트릿(scriptlet), 선언문(declaration), 표현식(expression)
2. 선언문(declaration)
1) jsp 페이지에서 사용되는 변수나 메소드를 정의
2) 선언문의 위치는 아무곳이나 상관없지만 관례적으로 HTML 문서 맨 위에 위치
선언문(declaration)
변수의 위치
☞ local_cnt : _jspService() 메소드 내의 local 변수
☞ global_cnt : 서블릿의 필드(계속 값을 유지)
3. 표현식(expression)
1) jsp 에서 브라우저로 출력하기 위한 또 다른 방법
2) 변수의 값이나 계산식 혹은 함수를 호출한 결과를 문자열 형태로 웹 문서에 출력할 때 사용되는 태그
3) <%= %> 형식
<%= 변수 %>
<%= 수식 %>
<%= 메소드 호출 %>
4) 변수 출력하기 주의사항 : 표현식 안에는 ';'을 사용하지 않아야 함(값으로 출력됨)
☞ 웹 컨테이너는 <%= %>를 out.print() 로 변환하기 때문
표현식(expression)