'왜' 써야하는지, '왜' 이런 형식으로 쓰이는지 

개발을 하면서 피해야 할 것 중 하나는 모든 것을 "다 이해하고 넘어가려고 하지마라" 는 조언이 대다수였지만,

오류를 해결하거나 문제를 맞닥트릴 경우, 조금 더 생산적으로 해결해나가기 위해서는 반드시 이해해야하는 부분이 있다. 그 중 기초가 형식이라고 생각한다. 눈으로 익히고 감으로 익히는 것 만이 방법은 아닐 것이므로 오늘에서야 조금씩 뜯어볼 여유가 생긴다. 

 

1. 시작하는 형식

 


페이지 형식에 대해 알아보자!

 

1. <%@ page> 의 형식은 무엇이고, 

contetType = "text/html; charset= UTF-8" 

pagnEncoding ="UTF-8" 

import = "java.util.*" 은 무엇인가.

 

page 디렉티브 (지시자)

<%page%>는 jsp페이지에 들어갈 정보를 입력하기 위해서 사용되며, 이 디렉티브를 사용하면 jsp페이지가 

"어떤 문서를 생성하고"

"어떤  자바클래스를 사용하고""세션에 참여하는지""출력 버퍼의 존재여부" 등jsp가 실행됨에 있어 형식과 내용을 제한할 수있다. 

 

1. contentType

먼저 contentType은 page디렉티브의 contentType속성은 JSP페이지가 생성할 문서의 타입을 지정한다. "text/html","text/xml","text/plain" 보통의 경우 이 세가지로 많이쓰이며, "text/html" 가 기본으로 쓰인다.

2. import

import 는 말그대로 '호출'한다는 의미로, java class를 호출할때 사용된다. JSP의 페이지는 자바를 기반으로 하고있으며 자바언어가 제공하는 클래스들을 사용할수 있다. 이때 JSP페이지에서 자바의 클래스를 사용하기 위해서는 실제 자바가 있는 위치의 경로를 지정해줄 수 있으며, [.*]를 표시해준다면 패키지 내 전체를 호출하는 효과를 가진다. 

덧붙여서는 java.util 의 속성을 지닌 다양한 클래스를 불러올 수 있다. (DATE 등)

 

3.pageEncoding ( 이 부분은 이해가 잘 안가서 쉬운 설명이 어렵다. 아시는 분 계시다면 댓글 부탁드려요)

 


                                        다음은 request캐릭터 인코딩 메소드 형식에 대해 알아보자!

reqeust.setCharacterEncoding("UTF-8");
response.setCharacterEncoding("UTF-8");
response.setContentType("text/html;charset=utf-8");

1. reqeust.setCharacterEncoding("UTF-8");//전송시 사용 
: 한글을 입력하여 값을 전송할때는 한글일 경우 깨지지 않도록 처리하기위해 전달하는 방식 (get과 post방식을 모두 사용하며). 폼을 전송시 사용한다고 하면 이해가 빠르겠다.

2.response.setCharacterEncoding("UTF-8"); //출력시 사용 
'서블릿'화면에서 데이터 출력을 하기 위해서 out.println을 사용하는데 위의 코드 없이 out.print("");
로 출력한다면, ?? 이렇게 출력된다. 이것을 해결하기 위한방법이 위와같은 방법이다.

3. response.setContentType("text/html;charset=utf-8"); 
브라우저마다 문자코드를 해석하는 defult 기본값이 다르다. 그러므로 utf-8을 사용할 것이니 이걸로 사용해줘
라는 메세지를 브라우저로 전달하는 문잔ㅇ이 바로 위의 문장이다. 

 


 

경로메소드를 알아보자

request.getContextPath()는 프로젝트의 Context path명을 반환한다.

요청 : http://localhost:8080/example/test.jsp 

리턴값 : /example




request.getRequestURI()는 웹전체 경로(프로젝트명+ 파일 경로)까지 반환한다.

요청 : http://localhost:8080/example/test.jsp

리턴값 : /example/test.jsp 

 

 

출처: 

https://cbw1030.tistory.com/62

7. page 디렉티브(속성,contentType, charset, import,pageEncoding) : 네이버 블로그 (naver.com)

 

+ Recent posts