본문 바로가기

JSP

[JSP|JAVA]JSP빨리 알아보기_3(request,response)

반응형

이번 챕터에서는 request,response객체에 대해 글을 써 볼려고한다.


REQUEST 객체

웹 브라우저를 통해 서버에 어떤 정보를 요청하는것을 request 라고한다.

이러한 요청정보는 request객체가 관리

아래는 request관련 메소드 예제이다.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
<html>
<head>
<meta charset="UTF-8">
</head>
<body>
<h2>Request객체</h2>
<h4>사용자 접속IP : <%=request.getRemoteAddr() %></h4>
<h4>사용자의접속포트 : <%=request.getRemotePort() %></h4>
<h4>사용자의접속방식 : <%=request.getMethod() %></h4>
<h4>서버이름: <%=request.getServerName() %></h4>
<h4>서버포트: <%=request.getServerPort() %></h4>
<h4>사이트구분 : <%=request.getContextPath() %></h4> <!-- 한 서버에서 여러 사이트를 운영할때 이용 -->
<h4>현재접속페이지 경로 : <%=request.getRequestURI() %></h4> <!-- 통계 구할때 많이 사용 -->
String = request.getParameter(String name)
String[] = request.getParameterValues(String name) 사용자가 입력한 값이 여러개일경우 사용!
</body>
</html>

request 관련 메소드

request.getServerName() : 서버이름을 얻는다.

request.getServerPort() : 해당 포트를 얻는다.

 request.getMethod() : get방식과 post방식을 구분

 request.getProtocol() : 해당 프로토콜을 얻는다.

 request.getRequestURL() : 요청 url을 얻는다.

request.getRequestURI() : 요청 uri를 얻는다.


Parameter 메소드

jsp 페이지를 제작하는 목적이 데이터 값을 전송하기 위해서 이므로 parameter 관련메소드는 중요.

getParameter(String name) : name에 해당하는 파라미터 값을 구함.

getParameterNames(): 모든 파라미터 이름을 구함.

getParameterValues(String name) : name에 해당하는 파라미터값들을 구함.

다음 아래예제는 parameter메소드를 이용한 예제이다.


form.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
28
29
30
31
32
33
<!DOCTYPE html>
<html>
<head>
<meta charset="EUC-KR">
<title>Insert title here</title>
</head>
<body>
   
   <form action="requestparam.jsp" method="post">
      이름 : <input type="text" name="name" size="10"><br/>
      아이디 : <input type="text" name="id" size="10"><br/>
      비밀번호 : <input type="password" name="pw" size="10"><br/>
      취미 : <input type="checkbox" name="hobby" value="read">독서
      <input type="checkbox" name="hobby" value="cook">요리
      <input type="checkbox" name="hobby" value="run">조깅
      <input type="checkbox" name="hobby" value="swim">수영
      <input type="checkbox" name="hobby" value="sleep">취침<br/>
      전공 : <input type="radio" name="major" value="kor">국어
      <input type="radio" name="major" value="eng" checked="checked">영어
      <input type="radio" name="major" value="mat" >수학
      <input type="radio" name="major" value="des" >디자인<br/>
      <select name="protocol">
         <option value="http">http</option>
         <option value="ftp" selected="selected">ftp</option>
         <option value="smtp">smtp</option>
         <option value="pop">pop</option>
      </select><br/>
      <input type="submit" value="전송">
      <input type="reset" value="초기화">
   </form>
   
</body>
</html>

request.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
26
27
28
29
30
31
32
33
34
35
<%@page import="java.util.Arrays"%>
<%@ 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 http-equiv="Content-Type" content="text/html; charset=EUC-KR">
<title>Insert title here</title>
</head>
<body>
<%!
   String name, id, pw, major, protocol;
   String[] hobbys;
%>
<%
   request.setCharacterEncoding("EUC-KR");
   
   name = request.getParameter("name");
   id = request.getParameter("id");
   pw = request.getParameter("pw");
   major = request.getParameter("major");
   protocol = request.getParameter("protocol");
   
   hobbys = request.getParameterValues("hobby");
%>
이름 : <%= name %><br />
아이디 : <%= id %><br />
비밀번호 : <%= pw %><br />
취미 : <%= Arrays.toString(hobbys) %><br />
전공 : <%= major %><br />
프로토콜 : <%= protocol %><br />
</body>
</html>

Response 객체

웹브라우저의 요청에 응답하는것을 response 라고하며, 이러한 응답 정보를 가지고있는 객체를 response객체라고 한다.

Response 객체 관련 메소드

getCharacterEncoding() ; 응답할 때 문자의 인코딩 형태를 구함

addCookie(Cookie) : 쿠키를 지정

sendRedirect(URL) : 지정한 URL로 이동


예제

request.html

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
<!DOCTYPE html>
<html>
<head>
<meta charset="EUC-KR">
<title>Insert title here</title>
</head>
<body>
   <form action="request_send.jsp">
      당신의 나이는 : <input type="text" name="age" size="5">
      <input type="submit" value="전송">
   </form>
</body>
</html>



request_send_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
26
27
28
29
<%@ 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 http-equiv="Content-Type" content="text/html; charset=EUC-KR">
<title>Insert title here</title>
</head>
<body>
<%!
   int age;
%>
<%
   String str = request.getParameter("age");
   age = Integer.parseInt(str);
   
   if( age >= 20){
      response.sendRedirect("pass.jsp?age=" + age);
   } else {
      response.sendRedirect("ng.jsp?age=" + age);
   }
%>
<%= age %>
</body>
</html>


ng.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 http-equiv="Content-Type" content="text/html; charset=EUC-KR">
<title>Insert title here</title>
</head>
<body>
<%!
   int age;
%>
<%
   String str = request.getParameter("age");
   age = Integer.parseInt(str);
%>
미성년자 입니다. 주류구매가 불가능 합니다.
<a href="requestex.html">처음으로 이동</a>
</body>
</html>


pass.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 http-equiv="Content-Type" content="text/html; charset=EUC-KR">
<title>Insert title here</title>
</head>
<body>
<%!
   int age;
%>
<%
   String str = request.getParameter("age");
   age = Integer.parseInt(str);
%>
성인 입니다. 주류구매가 가능 합니다.
<a href="requestex.html">처음으로 이동</a>
</body>
</html>


반응형