JSP

JSP의 내장 객체 - Request 객체

Kiwisae 2022. 8. 25. 15:26

Request 객체

 

–클라이언트(웹 브라우저)와 관련된 정보 읽기 기능
–서버와 관련된 정보 읽기 기능
–클라이언트가 전송한 요청 파라미터 읽기 기능
–클라이언트가 전송한 요청 헤더 읽기 기능
–클라이언트가 전송한 쿠키 읽기 기능
–속성 처리 기능

 

 

 

 

 

 

자주 사용하는 메소드

 

void setCharacterEncoding (String env) 한글 인코딩 처리
String getParameter (String name) name에 해당되는 파라미터 값을 구한다
String[] getParameterValues (String name) checkbox같은 여러 개의 파라미터 값을 구한다 
(값을 배열로 구해온다)
String getRemoteAddr ()  클라이언트의 IP주소를 구한다
String getRequestURI ()  요청 URI를 구한다
String getContextPath ()  컨텍스트 패스(project명) 를 구한다

 

 

 

 

 

form에서 한글값이 post 방식으로 전송될 때 UTF-8로 인코딩을 시켜주는 역할을 하는 

setCharacterEncoding

 

<%
	request.setCharacterEncoding("utf-8");
%>

 

 

다음과 같은 코드가 있을 때,

post 방식으로 값을 넘기고 한글 인코딩 코드를 주석 처리 했다.

 

 

 

 

그러면 한글이 제대로 출력되지 않는다.

 

 

 

 

 

그러나 get 방식일 때에는 톰캣이 자동으로 utf-8 인코딩을 해주기 때문에 오류가 발생하지 않는다.

 

 

 

 

 

라디오 버튼으로 성별을 양자택일 하도록 되어 있는데,

getParameterValues 를 써보기 위해 새롭게 '취미' 란을 만들었다.

(유효성 검사는 생략)

name값은 hobby로 지정.

 

이 getParameterValues는 배열의 값을 받아온다.

그래서 getParameter 처럼 스트링 객체에 값을 저장하려고 하면 오류가 발생한다.

 

체크박스hobby 의 값을 받아올 배열 h,

다중 선택 값을 차례대로 배열 h에 저장할 for문,

값을 저장할 변수 result

 

 

 

결과

 

 

 

 

 

 

getRemoteAddr () 클라이언트 IP를 구해준다.

getRequestURI () 현재 로딩중인 프로젝트~문서의 절대 경로를 구해준다.

getContextPath () 현재 로딩중인 프로젝트의 이름을 구해준다.

 

 

 

 

 

일전에 작성한 게시판 폼 파일인

board.html에서 글 작성 버튼을 누르면 board.jsp 파일로 넘어가서 작성한 내용을 그대로 출력하도록 했는데,

이 때, 내용이 의도한 대로 출력되지 않는다.

 

 

 

 

 

작성한 그대로 줄바꿈 처리 되어서 출력되게 하는 방법에는 2가지가 있다.

 

 

1)

 

내용 : <pre><%=content%></pre>

 

 

 

 

2)

 

<%
	String content = request.getParameter("content");	
	String contents = request.getParameter("content").replace("\n", "<br>");
%>

내용2 : <br> <%=contents%>

 

게시판 폼에서 엔터를 친 것을 \n 으로 인식하는데,

이 \n을 <br> 태그로 바꿔준다는 내용의 코드를 추가한 것이다.