'Code'에 해당되는 글 161건

Code/Servlet & JSP

JSP 예제_errorPage, isErrorPage

반응형

1. jsp에서 에러페이지 연결

- page 지시어 errorPage와 isErrorPage 이용

 

 

[Main.jsp]  -> 10/0 (0으로 나누어 에러 발생하게 함)

<%@ page errorPage = "에러파일.jsp"%> -> 에러 발생 시 호출 페이지 지정



 

[ErrorServlet.jsp] -> 에러 발생 시 연결되도록 함

<%@ page isErrorPage ="true" %> -> 에러만 처리하는 페이지 지정

 

 

 

 

[web.xml]

 

 

 

[에러페이지 이미지]

반응형

'Code > Servlet & JSP' 카테고리의 다른 글

JSP 선언, 표현식, 스크립트릿  (0) 2019.06.21
액션(ACTION)  (0) 2019.06.21
Scope  (0) 2019.06.20
HTTP 응답 상태  (0) 2019.06.20
JSP 예제_includeAction  (0) 2019.06.20
Code/HTML & CSS & JAVASCRIPT

GET/POST 데이터 디코딩

반응형

서버측의 데이터 디코딩

 

- 클라이언트로부터 전달된 폼 양식을 서버에서 디코딩하는 과정이 필요

 


(1) GET 메소드에 의해 전달된 데이터 디코딩

 

- GET 메소드에 의해 얻어진 데이터들은 환경변수 QUERY_STRING에 저장 

- name=value의 쌍의 데이터

- 인코딩된 문자들을 인코딩과는 반대로 "+"는 공백으로, "%5B"는 "["등으로 바꾸어 주어야 함

-  QUERY_STRING에 저장된 문자열에 대해서 URL디코딩

-  name=value의 분리 :  "&"으로 구분 -> 문자열에서 `&'가 나타날 때까지 한 문자씩 복사한 후, `&'가 나타나면 그 때까지 복사한 문자열을 하나의 name=value쌍으로 저장 

- 이러한 과정을 거친 후 최종적으로 name=value의 쌍 구하고 분리

 

HTTP request 헤더에 Content-type이라는 헤더 필드는 필요하지 않음

- ASCll 캐릭터만 허용 / 바이너리 데이터 허용되지 않음 

 

 

 

(2) POST 메소드에 의해 전달된 데이터 디코딩


- name=value쌍의 디코딩 과정은 GET 메소드와 동일

- 폼 문에서 입력된 문자열을 표준 입력으로 얻음

- 그래서 파일을 다루는 모듈이 필요하다. 

 

사용자의 입력을 HTTP request 바디 부분에 넣어서 전송

  그래서  HTTP 요청 헤더에 Content-type 필드를 명시해야 함 . 

- 문자 한계 없음 > 바이너리 데이터 허용되기 때문에 입출력에 이용 

반응형

'Code > HTML & CSS & JAVASCRIPT' 카테고리의 다른 글

쿠키와 세션  (0) 2019.06.20
예제_회원가입  (0) 2019.06.20
예제_push,pop  (0) 2019.06.20
예제_input type 활용  (0) 2019.06.20
예제_계산기  (0) 2019.06.20
Code/Servlet & JSP

Scope

반응형

 

Scope : jsp 내장 기본 객체의 영역

- 객체의 유효기간이라고도 불리며,객체를 누구와 공유할 것인가를 나타냄

 

 

1. page 영역

- 한 번의 웹 브라우저(클라이언트)의요청에 대해 하나의 jsp페이지가 호출됨

- 웹 브라우저의 요청이 들어오면 이 때 한 개의 페이지만 대응 됨

- pageContext 기본 객체 사용

- jsp 파일에 <% %> 안에 변수 사용하면 이 변수는 해당 jsp 파일 내에서만 유효 

   -> page 스코프에 의해 정의된 객체기때문

- ex) jsp 내에서만 존재하기 때문에 servlet에서 만들 수 없음

- ex) jsp : <% pageContext.setAttribute("num1", 10); %> 

              ${pageScope.num1}

 

2. request 영역

- 한 번의 웹 브라우저(클라이언트)의 요청에 대해 같은 요청을 공유하는 페이지가 대응됨

- 요청을 받아서 응답하기까지 객체가 유효한 영역

객체를 하나 또는 두 개의 페이지 내에서 공유할 수 있음

- include 액션 태그, forward 액션 태그를 사용하면 request 기본 객체를 공유하게 되어서 같은 request 영역이 됨

- 페이지 모듈화에 사용됨

- servlet에서는 request.setAttribue("이름","객체"); 로 전달

  jsp에서는 Object obj = request.getAttribute("이름"); 으로 받음

  이때 사용한 request 객체가 request 영역임

- ex) servlet : request.setAttribute("num2", 20);

- ex) jsp : ${ requestScope.num2 } 

 

3. session 영역

- 하나의 브라우저 당 1개의 session 객체가 생성됨

- 같은 브라우저 내에서 요청되는 페이지들은 같은 객체를 공유하게 되는데, 이를 세션영역이라 함

- 세션 종료되면 객체 반환

- request.getSession() 메소드를 호출하여 세션 영역의 객체를 얻을 수 있음

ex) servlet : request.getSession().setAttribute("num3"30);

- ex) jsp : ${ sessionScope.num3 }

 

4.application 영역

- 하나의 애플리케이션 당 1개의 application 객체가 생성됨

- 같은 애플리케이션 내에서 요청되는 페이지들은 같은 객체를 공유하게 되는데 이를 애플리케이션영역이라 함

애플리케이션 종료되면 객체 반한 

- request.getServletContext() 메소드를 호출하여, 애플리케이션 영역의 객체를 얻을 수 있음

ex) servlet :request.getServletContext().setAttribute("num4", 40);

ex) servlet : ${ applicationScope.num4 }

 

 

scope 범위를 보면 page < request < session < application 순

다른 영역에 같은 이름을 갖는 애트리뷰트가 있다면 

스코프 범위에 따라, 애트리뷰트 명은 좁은 범위의 영역부터 큰 범위로 탐색됨. -> 탐색되면 더 큰 범위로 탐색 진행 하지 않음

 

 

 

 

사용 예제 - 하단에 사이트 보고 하기!

 

*<%= i %> : jsp에서의 값 표기법, i는 변수

 ${ i } : el에서의 값 표기법, i는 이름

 

ex) <%= request.getParameter("a") + 100  %>    =      ${ param.a + 100 }

 

 

 

 

 

참고 사이트 : https://victorydntmd.tistory.com/155

반응형

'Code > Servlet & JSP' 카테고리의 다른 글

액션(ACTION)  (0) 2019.06.21
JSP 예제_errorPage, isErrorPage  (0) 2019.06.20
HTTP 응답 상태  (0) 2019.06.20
JSP 예제_includeAction  (0) 2019.06.20
JSP 예제_include  (0) 2019.06.20
Code/HTML & CSS & JAVASCRIPT

쿠키와 세션

반응형

쿠키와 세션 사용하는 이유 ; http프로토콜의 특징이자 약점을 보완하기 위해서 사용

 

http 프로토콜의 특징

 

1. 비연결지향 : http는 먼저 클라이언트가 request를 서버에 보내면, 서버는 클라이언트에게 요청에 맞는 response를 보내고 접속을 끊는 특성이 있다.

2. 상태정보유지안함 : 연결이 끊는 순간 클라이언트와 서버의 통신이 끝나면 상태 정보는 유지하지 않는 특성이 있음

 

이 두가지 특성을 보완하기 위해 쿠키와 세션을 사용하게 된다.

 

 

쿠키(Cookie) : 클라이언트 로컬에 저장되는 키와 값이 들어있는 작은 데이터 파일

 

- 쿠키 내용 : 이름, 값, 만료날짜(쿠키 저장기간), 경로 정보

- 쿠키는 일정 시간동안 데이터 저장할 수 있음(로그인 상태 유지에 활용)

- 클라이언트의 상태 정보를 로컬에 저장했다가 참조

- 사용 : 자동 로그인, 팝업에서 오늘 '오늘 더이상 보지 않음' 체크, 쇼핑몰 장바구니

- 쿠키 프로세스 : 

 1. 브라우저에서 웹페이지 접속

 2. 클라이언트가 요청한 웹 페이지를 받으면서 쿠키를 클라이언트 로컬에 저장

 3. 클라이언트가 재 요청시 웹페이지 요청과 함께 쿠키값도 전송 

 4. 지속적으로 로그인 정보를 가지고 있는 것처럼 사용

- 쿠키의 제한 : 클라이언트에 300개까지 쿠키 저장 가능, 하나의 도메인당 20개의 값만 가질 수 있고 하나의 쿠키값은 4KB까지 저장

- 사용자가 따로 요청하지 않아도 브라우저가 Request시 Request Header를 넣어서 자동으로 서버에 전송함

 

 

세션(Session) : 일정 시간동안 같은 브라우저로부터 들어오는 일련의 요구를 하나의 상태로 보고 그 상태를 유지하는 기술

즉, 웹 브라우저를 통해 웹 서버에 접속한 이후로 브라우저를 종료할 때까지 유지되는 상태

- 세션 ID : 클라이언트가 Request를 보내면, 해당 서버의 엔진이 클라이언트에게 유일한 ID를 부여

- 사용 : 로그인 정보 유지

- 세션 프로세스 : 

 1. 클라이언트가 서버에 접속 시 세션 ID 발급

 2. 서버에서는 클라이언트로 발급해준 세션ID를 쿠키를 사용해 저장

 3. 클라이언트는 다시 접속할 때, 이 쿠키를 이용하여 세션ID값을 서버에 전달

 

즉, 세션을 구별하기 위해 ID가 필요하고 그 ID만 쿠키를 이용해서 저장

쿠키는 자동으로 서버에 전송되니까 서버에서 세션ID에 따른 처리를 할 수 있음

예를 들면 게시판 글 작성 시 작성 버튼 누르면 세션에 있는 ID 참조해 작성자를 지정함

 

 

 

쿠키와 세션의 차이

 

     
 저장 위치 클라이언트에 파일로 저장  서버에 저장 
 보안 변질되거나 Request에서 스나이핑 당할 우려 있어서 보안에 취약                                  쿠키 이용해서 sessionID만 저장하고 그것으로 구분해서 서버에 처리하기때문에 비교적 보안 좋
 라이프 사이클   만료시간 있지만 파일로 저장되기 때문에 브라우저 종료해도 계속해서 정보 남아있을 수 있음  만료기간 정할 수 있지만, 브라우저가 종료되면 만료시간 상관없이 삭제
 속도   정보가 남아있기 때문에 서버에 요청시 속도 빠름   정보가 서버에 있기 때문에 처리가 요구되어 비교적 느린 속도 





왜 쿠키 사용하나? 

- 세션은 서버의 자원을 사용하기 때문에 무분별하게 만들다보면 서버의 메모리가 감당할 수 없어질 수가 있고 속도가 느려질 수 있기 때문에

 

 

 

*캐시는 무엇인가?

캐시는 이미지나 css, js파일 등이 사용자의 브라우저에 저장이 되는 것

이를 이용해 자원이 아껴지는 것, 한번 캐시에 저장되면 브라우저를 참고하기 때문에 서버에서 변경이 되어도 사용자는 변경되어 않게 보일 수 있는데 이런 부분을 캐시를 지워주거나 서버에서 클라이언트로 응답을 보낼 때 header에 캐시 만료시간을 명시하는 방법 이용할 수 있


 

-출저 : https://jeong-pro.tistory.com/80

반응형

'Code > HTML & CSS & JAVASCRIPT' 카테고리의 다른 글

GET/POST 데이터 디코딩  (0) 2019.06.20
예제_회원가입  (0) 2019.06.20
예제_push,pop  (0) 2019.06.20
예제_input type 활용  (0) 2019.06.20
예제_계산기  (0) 2019.06.20
Code/Servlet & JSP

HTTP 응답 상태

반응형

HTTP(하이퍼텍스트 전송 프로토콜) 응답 상태

 

5개의 클래스로 구분

상태코드의 첫번째 숫자 : 응답의 클래스 정의

 

 1XX (요청)  요청을 받았으면 프로세스를 계속한다.
 2XX (성공)  요청을 성공적으로 받았으면 인식했고 수용하였다. 
 3XX (리다이렉션)   요청 완료를 위해 추가 작업 조치가 필요하다. 
 4XX (클라이언트 오류)  요청의 문법이 잘못되었거나 요청을 처리할 수 없다. 
 5XX (서버 오류)  서버에 명백히 유효한 요청에 대해 충족 실 



1XX (조건부 응답) : 요청을 받았으면 작업을 계속함

100 (계속) : 요청자는 요청을 계속해야 함. 서버는 이 코드를 제공하여 요청의 첫 번째부분을 받았으며 나머지를 기다림. (여기서 첫번째는 각 페이지 맨 윗부분 자동으로 붙는 부분)

101 (프로토콜 전환) : 요청자가 서버에 프로토콜 전환을 요텅했으며 서버는 이를 승인하는 중

102 (처리) : 

 

2XX (성공) : 클라이언트가 요청하나 동작을 수신하여 이해했고, 승낙햇으며, 성공적으로 처리했음을 가르킴

200 (성공) : 서버가 요청을 제대로 처리했다는 뜻. 

201 (작성됨) : 성공적으로 요청되었으며, 서버가 새 리소스 작성함

202 (허용됨) : 서버가 요청을 접수했지만 아직 처리하지 않음

203 (신뢰할 수 없는 정보) : 서버가 요청을 성공적으로 처리했지만 다른 소스에서 수신 된 정보를 제공하고 있음

204 (콘텐츠 없음)  : 서버가 요청을 성공적으로 처리했지만 콘텐츠를 제공하지 않음

205 (콘텐츠 재설정) : 서버가 요청을 성공적으로 처리했지만, 콘텐츠를 표시하지 않는다. (204와 달리 이 응답은 요청자가 문서 보기 재 설정할 것을 요구한다)

206 (일부 콘텐츠) : 서버가 GET 요청의 일부만 성공적으로 처리함

207 (다중상태) : 

208 (이미 보고됨)

226 (IM Used)

 

3XX (리다이렉션 완료) : 클라이언트는 요청을 마치기 위해 추가 동작 취해야 함

300 (여러 선택항목) : 서버가 요청에 따라 여러 조치를 선택 할 수 있음. 서버가 사용자 에이전트에 따라 수행할 작업을 선택하거나, 요청자가 선택할 수 있는 작업 목록 제공

301 (영구 이동) : 요청한 페이지를 새 위치로 영구적으로 이동. GET 또는 HEAD 요청에 대한 응답으로 이 응답을 표시하면 다른 요청자가 자동으로 새 위치로 전달됨

302 (임시 이동) : 현재 서버가 다른 위치의 페이지로 요청에 응답하고 있지만 요청자는 향후 요청 시 원래 위치를 계속 사용해 함

303 (기타 위치 보기) : 요청자가 다른 위치에 별도의 GET 요청을 하여 응답을 검색할 경우 서버는 이 코드 표시

HEAD 요청 이외의 모든 요청은 다른 위치로 자동으로 전달

304 (수정되지 않음) : 마지막 요청 이우 요청한 페이지는 수정되지 않앗다. 서버가 이 응답 표시하면 페이지의 콘텐츠 표시하지 않음

305 (프록시 사용) : 요청자는 프록시를 사용하여 요청한 페이지만 액세스 할 수 있음. 

307 (임시 리다이렉션) : 현재 서버가 다른 위치의 페이지로 요청에 응답하고 있지만 요청자는 향후 요청 시 원래 위치를 계속 사용해야 함

308 (영구 리다이렉션) :

 

4XX (요청 오류) : 클라이언트에 오류가 있음

400 (잘못된 요청): 서버가 요청의 구문을 인식하지 못.

401 (권한 없음): 인증이 필요. 서버는 로그인이 필요한 페이지에 대해 이 요청을 제공할 수 있다. 상태 코드 이름이 권한 없음(Unauthorized)으로 되어 있지만 실제 뜻은 인증 안됨

402 (결제 필요): 결제가 필요

403 (Forbidden): 서버가 요청을 거부.

404 (Not Found, 찾을 수 없음): 서버가 요청한 페이지(Resource)를 찾을 수 없다. 

405( 허용되지 않는 방법): 요청에 지정된 방법을 사용할 수 없다. 

예를 들어 POST 방식으로 요청을 받는 서버에 GET 요청을 보내는 경우, 또는 읽기 전용 리소스에 PUT 요청을 보내는 경우에 이 코드를 제공한다.

406 (허용되지 않음): 요청한 페이지가 요청한 콘텐츠 특성으로 응답할 수 없다.

407 (프록시 인증 필요): 401(권한 없음)과 비슷하지만 요청자가 프록시를 사용하여 인증해야 함.

408 (요청 시간초과): 서버의 요청 대기가 시간을 초과.

409 (충돌): 서버가 요청을 수행하는 중에 충돌 발생.

410 (사라짐): 서버는 요청한 리소스가 영구적으로 삭제되었을 때 이 응답을 표시.

411 (길이 필요): 서버는 유효한 콘텐츠 길이 헤더 입력란 없이는 요청을 수락하지 않는다.

412 (사전조건 실패): 서버가 요청자가 요청 시 부과한 사전조건을 만족하지 않는다.

413 (요청 속성이 너무 큼): 요청이 너무 커서 서버가 처리할 수 없다.

414 (요청 URI가 너무 긺): 요청 URI(일반적으로 URL)가 너무 길어 서버가 처리할 수 없다.

415 (지원되지 않는 미디어 유형): 요청이 요청한 페이지에서 지원하지 않는 형식으로 되어 있다.

416 (처리할 수 없는 요청범위): 요청이 페이지에서 처리할 수 없는 범위에 해당되는 경우 서버는 이 상태 코드를 표시한다.

417 (예상 실패): 서버는 Expect 요청 헤더 입력란의 요구사항을 만족할 수 없다.

418 (I'm a teapot)

420 (Enhance Your Calm)

422 (처리할 수 없는 엔티티)

423 (잠김): 접근하려는 리소스가 잠겨 있다.

424 (실패된 의존성)

424 (메드 실패,)

425 (정렬되지 않은 컬렉션, 인터넷 초안)

426 (업그레이드 필요): 클라이언트는 업그레이드 헤더 필드에 주어진 프로토콜로 요청을 보내야 한다.

428 (전제조건 필요)

429 (너무 많은 요청): 사용자가 일정 시간 동안 너무 많은 요청을 보냈다.

431 (요청 헤더 필드가 너무 큼)

444 (응답 없음, Nginx)

449 (다시 시도, 마이크로소프트)

450 (윈도 자녀 보호에 의해 차단됨, 마이크로소프트)

451 (법적인 이유로 이용 불가, 인터넷 초안)

451 (리다이렉션, 마이크로소프트)

494 (요청 헤더가 너무 큼, Nginx)

495 (Cert 오류, Nginx)

496 (Cert 없음, Nginx)

497 (HTTP to HTTPS, Nginx)

499 (클라이언트가 요청을 닫음, Nginx)

 

5XX (서버 오류) : 서버가 유효한 요청을 명백하게 수행하지 못했음

500 (내부 서버 오류): 서버에 오류가 발생하여 요청을 수행할 수 없다.

501 (구현되지 않음): 서버에 요청을 수행할 수 있는 기능이 없다. 

502 (Bad Gateway, 불량 게이트웨이): 서버가 게이트웨이나 프록시 역할을 하고 있거나 또는 업스트림 서버에서 잘못된 응답을 받았다. 

503 (서비스를 사용할 수 없음): 서버가 오버로드되었거나 유지관리를 위해 다운되었기 때문에 현재 서버를 사용할 수 없다.

504 (게이트웨이 시간초과): 서버가 게이트웨이나 프록시 역할을 하고 있거나 또는 업스트림 서버에서 제때 요청을 받지 못했다. 

505 (HTTP 버전이 지원되지 않음): 서버가 요청에 사용된 HTTP 프로토콜 버전을 지원하지 않는다.

506 (Variant Also Negotiates)

507 (용량 부족,)

508 (루프 감지됨)

509 (대역폭 제한 초과, Apache bw/limited extension)

510 (확장되지 않음)

511 (네트워크 인증 필요,)

520 (Unknown Error, 알 수 없음)

598 (네트워크 읽기 시간초과 오류, 알 수 없음)

599 (네트워크 연결 시간초과 오류, 알 수 없음)

 

 

-위키백과(https://ko.wikipedia.org/wiki/HTTP_%EC%83%81%ED%83%9C_%EC%BD%94%EB%93%9C)

반응형

'Code > Servlet & JSP' 카테고리의 다른 글

JSP 예제_errorPage, isErrorPage  (0) 2019.06.20
Scope  (0) 2019.06.20
JSP 예제_includeAction  (0) 2019.06.20
JSP 예제_include  (0) 2019.06.20
JSP 예제_page  (0) 2019.06.20
Code/Servlet & JSP

JSP 예제_includeAction

반응형

include액션  : include 지시어와 유샇게 다른 페이지를 import함
파라미터 전달 가능 , 실행 시점에 해당 파일을 호출하고 결과 포함시킴



<jsp:param value="test@test.com" name="email"/>: 파라미터로 이메일 네임을 가진 값 전달

<%=request.getParameter("email")%> : 이메일 네임을 가진 파라미터 값 가져오기 

 

[footer.jsp]

1
2
3
4
5
6
7
8
9
10
11
12
13
<%@ page language="java" contentType="text/html; charset=EUC-KR"
    pageEncoding="EUC-KR"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="EUC-KR">
<title>Insert title here</title>
</head>
<body>
<%=request.getParameter("email")%>
<%=request.getParameter("tell")%>
</body>
</html>
http://colorscripter.com/info#e" target="_blank" style="color:#4f4f4f; text-decoration:none">Colored by Color Scripter
 

 

[IncludeAction.jsp]

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
<%@ page language="java" contentType="text/html; charset=EUC-KR"
    pageEncoding="EUC-KR"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="EUC-KR">
<title>Insert title here</title>
</head>
<body>
<h2>includeAction에서 footer 호출</h2>
<br>
<h2>includeAction에서 출력하는 메세지 입니다.</h2>
<jsp:include page="footer.jsp">
    <jsp:param value="test@test.com" name="email"/>
    <jsp:param value="010-0000-0000" name="tell"/>
</jsp:include>
</body>
</html>
http://colorscripter.com/info#e" target="_blank" style="color:#4f4f4f; text-decoration:none">Colored by Color Scripter
 
반응형

'Code > Servlet & JSP' 카테고리의 다른 글

Scope  (0) 2019.06.20
HTTP 응답 상태  (0) 2019.06.20
JSP 예제_include  (0) 2019.06.20
JSP 예제_page  (0) 2019.06.20
JSP 주석  (0) 2019.06.20
Code/Servlet & JSP

JSP 예제_include

반응형

 


include 지시어 

: 현재  jsp파일에 다른 jsp/html문서를 포함시킨다.

<%@include file="포함할 파일명" %>

 

[main.jsp]

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
<%@ page language="java" contentType="text/html; charset=EUC-KR"
    pageEncoding="EUC-KR"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta charset="EUC-KR">
<title>Insert title here</title>
<style>
    table {width:70%;}
</style>
</head>
<body>
<%@include file="title.jsp" %>
<%@include file="menu.jsp" %>
<center>
    <table>
        <tr>
            <td><%@include file="content.jsp" %></td>
            <td width="50px"> </td>
            <td><%@include file="content.jsp" %></td>
        </tr>
    </table>
</center>
</body>
</html>
http://colorscripter.com/info#e" target="_blank" style="color:#4f4f4f; text-decoration:none">Colored by Color Scripter
 

 

[title.jsp]

1
2
3
4
5
6
7
8
9
10
11
12
13
<%@ page language="java" contentType="text/html; charset=EUC-KR"
    pageEncoding="EUC-KR"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="EUC-KR">
<title>Insert title here</title>
</head>
<body>
    <h2 align="center">include 지시어 테스트</h2>
    <hr>
</body>
</html>
 
http://colorscripter.com/info#e" target="_blank" style="color:#4f4f4f; text-decoration:none">Colored by Color Scripter
 

 

[menu.jsp]

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
<%@ page language="java" contentType="text/html; charset=EUC-KR"
    pageEncoding="EUC-KR"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta charset="EUC-KR">
<title>Insert title here</title>
<style>
    div {width:100%; height:50px;text-align:center;}
    a {position:relative; font-size:20px;margin-right:20px; text-decoration:none;}
 
</style>
</head>
<body>
    <center>
        <div>
            <a href="" >[home]</a>
            <a href="" >[info]</a>
            <a href="" >[photo]</a>
            <a href="" >[list]</a>
        </div>
    </center>
</body>
</html>
http://colorscripter.com/info#e" target="_blank" style="color:#4f4f4f; text-decoration:none">Colored by Color Scripter
 

 

[content.jsp]

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
<%@ page language="java" contentType="text/html; charset=EUC-KR"
    pageEncoding="EUC-KR"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="EUC-KR">
<title>Insert title here</title>
</head>
<body>
<div >
    <h2>title</h2>
    <p style="border:1px black solid">여기는 내용이 들어갈것입니다.동해물과 백두산이 마르고 닳도록 하느님이 보우하사 우리나라만세</p>
</div>
</body>
</html>
 
 
http://colorscripter.com/info#e" target="_blank" style="color:#4f4f4f; text-decoration:none">Colored by Color Scripter
 
반응형

'Code > Servlet & JSP' 카테고리의 다른 글

HTTP 응답 상태  (0) 2019.06.20
JSP 예제_includeAction  (0) 2019.06.20
JSP 예제_page  (0) 2019.06.20
JSP 주석  (0) 2019.06.20
JSP 예제_계산기  (0) 2019.06.20
Code/Servlet & JSP

JSP 예제_page

반응형

 

page 지시어 

: jsp 페이지르 컨테이너에서 처리하기 위해 각종 속성 추가

<%@page 속성1 = "속성값"%>

 

language : 스크립트 언어 지정 default java
import :  jsp파일 내에서 사용할 외부 자바 ㅍ패키지나 클래스 지정
session :  세션 생성 여부 지정
Buffer :  버퍼크기 지정
autoFlush :  버퍼 내용 자동비움 지정
isThreadsafe : 스레드 동시에 제어 여부 지정
info : jsp 페이지 설정
errorPage :  에러 발생 시 호출 페이지 지정
isErrorpage :  에러만 처리하는 페이지 지정
contentType:  mime 형식과 캐릭터셋 설정

 

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
<%@ page language="java" contentType="text/html; charset=EUC-KR"
    pageEncoding="EUC-KR"%>
<!DOCTYPE html>
<%@page import = "java.text.SimpleDateFormat" %>
<%@page import = "java.util.*" %>
<html>
<head>
<meta charset="text/html;EUC-KR">
<title>Insert title here</title>
</head>
<body>
<h1>현재 시간은 <%=new SimpleDateFormat().format(new Date()) %></h1>
 
</body>
</html>
 
http://colorscripter.com/info#e" target="_blank" style="color:#4f4f4f; text-decoration:none">Colored by Color Scripter
 
반응형

'Code > Servlet & JSP' 카테고리의 다른 글

JSP 예제_includeAction  (0) 2019.06.20
JSP 예제_include  (0) 2019.06.20
JSP 주석  (0) 2019.06.20
JSP 예제_계산기  (0) 2019.06.20
JSP 예제_현재 시간 출력  (0) 2019.06.20
Code/Servlet & JSP

JSP 주석

반응형

jsp 문법


- html 주석 :  <!--주석--> -> 소스보기에서 보면 뜸
- jsp 주석 : <%-- 주석--%> -> 소스보기에서 보면 안뜸
- java 주석 : //주석   OR   /*주석 */

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
<%@ page language="java" contentType="text/html; charset=EUC-KR"
    pageEncoding="EUC-KR"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="EUC-KR">
<title>Insert title here</title>
</head>
<body>
<!-- html 주석 -->
주석 테스트
<%--jsp 주석 --%>
 
</body>
</html>
 
http://colorscripter.com/info#e" target="_blank" style="color:#4f4f4f; text-decoration:none">Colored by Color Scripter
 
반응형

'Code > Servlet & JSP' 카테고리의 다른 글

JSP 예제_include  (0) 2019.06.20
JSP 예제_page  (0) 2019.06.20
JSP 예제_계산기  (0) 2019.06.20
JSP 예제_현재 시간 출력  (0) 2019.06.20
Servlet 예제_현재 시간 출력  (0) 2019.06.20
Code/Servlet & JSP

JSP 예제_계산기

반응형

[calculator.html]

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta charset="EUC-KR">
<title>계산기 실습</title>
</head>
<body>
<CENTER>
    <h2>계산기</h2>
    <hr width="100%">
    <form name = "calculator" action="./result" method=post>
        <input type="text" name = "num1" size=5>
        <select name = "getOperator">
            <option value="+">+</option>
            <option value="-">-</option>
            <option value="*">*</option>
            <option value="/">/</option>
        </select>
        <input type="text" name = "num2"  size=5>
        <input type="submit" value="계산" name = "resultbtn">
        <input type="reset" value="다시입력" name = "resetbtn">
    </form>
    </CENTER>
</body>
</html>
 
 
http://colorscripter.com/info#e" target="_blank" style="color:#4f4f4f; text-decoration:none">Colored by Color Scripter
 

 

 

[JavaResources > Calc.java]

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
import javax.servlet.*;
import java.io.*;
 
public class CalcServlet extends HttpServlet{
     public void doGet(HttpServletRequest request, HttpServletResponse response) throws IOException{
             doPost(request,response);        //post 방식으로 데이터 전송
     }
     
     public void doPost(HttpServletRequest request, HttpServletResponse response) throws IOException{
        int num1, num2;
        int result;
        String op;
        
        //클라이언트 응답시 전달될 컨텐츠에 대한 기본 타입 설정
        response.setContentType("text/html");
        response.setCharacterEncoding("euc-kr");
        
        //클라이언트 응답을 위한 출력 스트릠 확보
        PrintWriter out = response.getWriter();
         
        num1 = Integer.parseInt(request.getParameter("num1"));    //num1로 되어 있는 값 int타입으로 가져와 저장
        num2 = Integer.parseInt(request.getParameter("num2"));    //num2로 되어 있는 값 int타입으로 가져와 저장
        op = request.getParameter("getOperator");                //연산자 받아 저장
        
        //result = calc(num1, num2, op);                        //메소드 호출
        Calc calc = new Calc(num1, num2, op);    
        result = calc.getResult();
        
        //html write
        out.write("<HTML><HEAD><TITLE>ServletTest</TITLE></HEAD>");
        out.write("<BODY><CENTER><H2>");
        out.write("계산결과</H2>");
        out.write("<hr width='100%'>");
        out.write(num1+" "+op+" "+num2+" = "+result);
        out.write("</CENTER></BODY></HTML>");
        out.close();
        
     }
 
    private int calc(int num1, int num2, String op) {
        int str=0;
        
        switch (op) {
        
            case "+":
                str = num1+num2;
                break;
            case "-":
                str = num1-num2;
                break;
            case "*":
                str = num1*num2;
                break;
            case "/":
                str = num1/num2;
                break;
                
            default:
                break;
        }
        return str;
    }
     
}
 
 
http://colorscripter.com/info#e" target="_blank" style="color:#4f4f4f; text-decoration:none">Colored by Color Scripter
 

 

[web.xml]

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
<?xml version="1.0" encoding="UTF-8"?>
id="WebApp_ID" version="4.0">
  <display-name>Calc</display-name>
  <welcome-file-list>
    <welcome-file>index.html</welcome-file>
    <welcome-file>index.htm</welcome-file>
    <welcome-file>index.jsp</welcome-file>
    <welcome-file>default.html</welcome-file>
    <welcome-file>default.htm</welcome-file>
    <welcome-file>default.jsp</welcome-file>
  </welcome-file-list>
  <servlet>
    <description></description>
    <display-name>CalcServlet</display-name>
    <servlet-name>CalcServlet</servlet-name>
    <servlet-class>CalcServlet</servlet-class>
  </servlet>
  <servlet-mapping>
    <servlet-name>CalcServlet</servlet-name>
    <url-pattern>/result</url-pattern>
  </servlet-mapping>
</web-app>
http://colorscripter.com/info#e" target="_blank" style="color:#4f4f4f; text-decoration:none">Colored by Color Scripter
 
반응형

'Code > Servlet & JSP' 카테고리의 다른 글

JSP 예제_page  (0) 2019.06.20
JSP 주석  (0) 2019.06.20
JSP 예제_현재 시간 출력  (0) 2019.06.20
Servlet 예제_현재 시간 출력  (0) 2019.06.20
Servlet 구현 환경  (0) 2019.06.20

푸터바

태그

알림

이 블로그는 구글에서 제공한 크롬에 최적화 되어있고, 네이버에서 제공한 나눔글꼴이 적용되어 있습니다.

카운터

  • Today :
  • Yesterday :
  • Total :