Chillax in dev

[JSP&Servlet]JSP : 내장 객체 "request" 정리하기. 본문

Java 공부/JSP&Servlet

[JSP&Servlet]JSP : 내장 객체 "request" 정리하기.

Seong Story 2020. 8. 15. 16:27
728x90

[JSP&Servlet] JSP : 내장 객체 "request" 정리하기. 

객체(object)는 관련있는 데이터와 이들 데이터를 읽기, 변경, 조작 등등 을 위한 기능을 하나로 묶어 놓은 것이다. 이러한 객체는 생성하여 그 안의 멤버 변수나, 멤버 함수를 사용함이 일반적이지만 JSP는 특별한 선언 없이 사용할 수 있는 9개의 객체를 지원하는데 이러한 객체를 내장 객체(Implicit object)라고 한다.

 

<9개의 기본 객체>

1.request: 웹브라우저 즉 클라이언트의 요청 정보를 저장한다.

2.response : 웹 브라우저 즉 클라이언트의 요청에 대한 응답 정보를 저장한다.

3. out : JSP 페이지에서 출력할 때 사용되는 출력 스트림 객체이다.

4. session : 하나의 브라우저 내에서 정보를 유지하기 위한 HTTP 세션 정보를 저장한다.

5.page : JSP페이지 를 구현한 자바 클래스 객체이다.

6.pageContext : JSP페이지에 대한 정보를 저장하는 객체이다.

7. application : 웹 애플리케이션의 Context 정보를 저장한다.

8.config : JSP 페이지에 대한 설정 정보를 저장한다. 9.exception : jsp에서 예외가 발생할 때 사용하는 객체이다.

 

 1. request 객체

- request 객체는 JSP에서 가장 많이 사용하는 객체라고 할 수 있다 그 이유는 웹 브라우저에서 JSP로 전달되는 요청과 관련이 있는 객체이기 때문이다. 웹 브라우저에서 웹사이트의 주소를 입력하고 실행하니 서버로 해당 정보다 전송된다. 이것을 관여하는 것이 request 객체이다.

 

- request 가 제공하는 기능을 정리해보면 다음과같다.

  • 웹 브라우저 즉 클라이언트와 관련된 정보를 읽을 수 있는 기능.
  • 웹 서버와 관련된 정보를 읽을 수 있는 기능.
  • 웹 브라우저 즉 클라이언트가 전송한 요청 파라미터 정보를 읽는 기능.
  • 웹 브라우저 즉 클라이언트가 정송 한 요청 헤더의 정보를 읽는 기능.
  • 웹 브라우저 클라이언트가 전송한 쿠키 정보를 읽을 수 있는 기능.
<형식>
request.getParameter("userid");

- 다양한 기능이 있지만 결국 요지는 위 의형식에 맞게 필요한 메서드와 파라미터를 입력하여 잘 다져다 사용하면 된다는 것이다.

- 몇몇 읽어오는 기능 예시

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
<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Request</title>
</head>
<body>
 
 
<!--컨텍스트 패스 : /WEB07_JSP_SERVLET  -->
컨텍스트 패스 : <%=request.getContextPath() %> <br>
<!--요청방식 : GET  -->
요청방식 : <%=request.getMethod() %><br>
<!--요청한 URL : http://localhost:8090/WEB07_JSP_SERVLET/02/06_RequestObject.jsp  -->
요청한 URL : <%=request.getRequestURL() %><br>
<!--요청한 URI : /WEB07_JSP_SERVLET/02/06_RequestObject.jsp  -->
요청한 URI : <%=request.getRequestURI() %><br>
<!--서버의 이름 : localhost  -->
서버의 이름 :  <%=request.getServerName() %><br>
<!--프로토콜 : HTTP/1.1  -->
프로토콜 : <%=request.getProtocol() %><br>
 
</body>
</html>
cs

- <form> 태그 : 웹 프로그램에서 서버로 값을 전달하는 방법 중에서 가장 많이 사용되는 방법은 폼 태그의 사용이다. 페이지의 이동은 특히 <form> 태그의 action을 이용한다. 결국 사용자가 입력 한 정보를 서버로 전달하는 역할을 하는 HTML 태그이다.

ex) test.jsp

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
<form method="post" action="test2.jsp" >
전송버튼을 누르면 form태그에 action으로 지정한 파일로이동합니다.<br>
<input type="submit" value="전송">
</form>
 
</body>
</html>
cs

ex) test2.jsp

1
2
3
4
5
6
7
8
9
10
11
12
<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
안녕하세요.
</body>
</html>
cs

- <form>에 입력된 문자 읽기: jsp 프로그램에서 form에 값을 입력하고 그 값을 처리하는 것. 예를 들어 회원가입 화면에서 입력된 회원의 정보를 서버로 전송할 때 입력한 회원 정보는 요청 파라미터로 서버에 전송된다. 이럴 때 서버의 전송된 정보를 읽기(참조) 하기 위해서 request 객체의. getParameter("네임 값") 메서드를 사용한다.

<%=request.getParameter("userid") %>

-> 반환형 String인 파라미터 변수의 "name" 값을 참조한다. 

예시)

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=UTF-8"
    pageEncoding="UTF-8"%>
    
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
<form method="post" action="test2.jsp">
전송버튼을 누르면 form태그에 action으로 지정한 파일로이동합니다.<br>
아이디:<input type="text" name="userid" size=10>
<input type="submit" value="전송">
</form>
 
</body>
</html>
cs
1
2
3
4
5
6
7
8
9
10
11
12
13
<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
    <%request.setCharacterEncoding("utf-8"); %>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
안녕하세요.<%=request.getParameter("userid"%>님.
</body>
</html>
cs

- 만약 null 이나 왔다면?

null 이란 아무것도 없는 의미로 사용되었는데. 여기서의 null의 의미는 form에 있는 입력 태그의 name과 getParameter에서 입력한 name이 일치하지 않는다는 것을 의미한다! 또한 이후 데이터베이스에서 읽어올 경우에 특정 열의 값이 null이면 그 열에 아무것도 없음을 의미한다. 그러니 null 이나 오거나 nullpointerexception 에러 등이 생기는 빈번한 상황에 대해 이해하고 문제를 파악할 수 있어야 한다!

 

- 입력받은 한글정보를 깨지지 않게 하려면?

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

위의 캐릭터 셋 이 꼭 필요하다. 이력 된 정보의 캐릭터 셋의 인코딩을 한국 표준어인 utf-8로 설정하는 것을 의미한다.

참고)

- character Set : (문자 집합)은 정보를 표현하기 위한 글자 또는 기호들의 집합을 정의한 것.
- 인코딩: 이러한 문자를 컴퓨터에 저장, 통신에 사용할 목적으로 부호화하는 것.
- 디코딩: 인코딩 된 문자 부호를 다시 본래의 문자 또는 기호로 표현하는 것.

 

 

- 정리 : JSP의 내장 객체 request를 활용해 클라이언트의 정보를 받아서 읽어오는 기본적인 내용을 확인해 보았다. 앞으로 회원가입의 구현을 위해 좀 더 여러 태그를 사용하여 다채로운 화면 예시를 추가하고자 합니다.

728x90
LIST
Comments