본문 바로가기

컴퓨터학원(복습)(수료)

자바(JAVA)기반 안드로이드 웹&앱 개발 54일차(서블릿 한글처리, 암호 입력상자, textarea와 radio button, smarteditor, checkbox와)

제목 이어서

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)