20.03 ~ 20.08 국비교육/JSP

내부객체1. request, response, out

찹키리 2020. 4. 23. 16:21

<request>

 

: 요청 정보를 담고 있는 객체

 

 

<get.Parameter 예제>

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
    <h1>Request Example1</h1>
    <form method="post" action="request1.jsp">
    성명: <input name = "name"><br/>
    학번: <input name = "studentNum"><br/>
    성별: 여자 <input type = "radio" name = "gender" value = "woman" checked>
        남자<input type = "radio" name = "gender" value = "man"><br/>
    전공: <select name = "major">
        <option selected value = "국문학과">국문학과</option>
        <option value = "영문학과">영문학과</option>
        <option value = "수학과">수학과</option>
        <option value = "정치학과">정치학과</option>
        <option value = "체육학과">체육학과</option>
        </select><br/>
        <input type = "submit" value = "보내기">
        </form>
</body>
</html>
http://colorscripter.com/info#e" target="_blank" style="color:#e5e5e5text-decoration:none">Colored by Color Scripter

 

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
<%@ 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>
    <%
    request.setCharacterEncoding("UTF-8");
    String name = request.getParameter("name");
    String studentNum = request.getParameter("studentNum");
    String gender = request.getParameter("gender");
    String major = request.getParameter("major");
    
    if(gender.equals("woman")) {
    gender = "여자";
    } else {
    gender = "남자";
    }
    %>
    
    <h1>Request Example1</h1>
    성명: <%= name %><p/>
    학번: <%= studentNum %><p/>
    성별: <%= gender %><p/>
    학과: <%= major %>
</body>
</html>
http://colorscripter.com/info#e" target="_blank" style="color:#e5e5e5text-decoration:none">Colored by Color Scripter

 

get.Parameter 명령을 통해 form의 데이터를 '요청'

 

 

 

 

-결과

 

 

 

 

 

 

 

 

<웹 브라우저와 웹 서버의 정보 request>

 

 

 

 

 

 

 

 

 

<response>

 

-메소드

void setHeader(name, value)

: 응답에 포함될 Header를 설정

 

void setContentType(type)

: 출력되는 페이지의 contentType을 설정

 

String getCharacterEncoding()

: 요청에 사용된 Query문장을 반환

 

void sendRedirect(url)

: 리디렉트. 지정된 URL로 요청을 재전송

 

 

 

-Redirect

 

:재전송

다른 페이지로 이동한다는 점에서 forward와 공통점이 있지만, 주소는 그대로인 상태로 화면만 바뀌는 forward와 달리

1)주소와 화면 모두가 바뀌고

2)이전 페이지와는 별개의 영역으로 request 영역을 공유하지 않는다.

 

 

 

 

 

 

 

<예제>

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
<%@ 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>
    <h1>Response Example1</h1>
    <%
    response.sendRedirect("response1_1.jsp");
    %>
</body>
</html>
http://colorscripter.com/info#e" target="_blank" style="color:#e5e5e5text-decoration:none">Colored by Color Scripter

 

redirect 요청 페이지

 

 

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
<%@ 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>
    <%
    response.setHeader("Pragma""no-cache");
    if(request.getProtocol().equals("HTTP/1.1")) {
    response.setHeader("Cache-Control""no-store");
    }
    %>
    
    <h1>Response Example1</h1>
    http://localhost/myapp/ch07/response1.jsp가<p/>
    http://localhost/myapp/ch07/response1_1.jsp로 변경이 되었습니다.
</body>
</html>
http://colorscripter.com/info#e" target="_blank" style="color:#e5e5e5text-decoration:none">Colored by Color Scripter

 

redirect 요청 페이지

 

*no-cache: 뒤로가기 불가...

 

 

 

 

 

<out>

 

: 출력 객체, jsp 페이지가 클라이언트에게 보내는 모든 정보는 out 객체를 통해 전달된다. java.io.Writer 클래스를 상속받은 javax.servlet.jsp.JspWriter 클래스 타입의 객체이다.

 

 

<예제>

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"
    buffer = "5kb"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
    <%
    int totalBuffer = out.getBufferSize();
    int remainBuffer = out.getRemaining();
    int useBuffer = totalBuffer - remainBuffer;
    %>
    
    <h1>Out Example1</h1>
    <b>현재 페이지의 Buffer 상태</b><p/>
    출력 Buffer의 전체 크기: <%= totalBuffer %>byte<p/>
    남은 Buffer의 크기: <%= remainBuffer %>byte<p/>
    현재 Buffer의 사용량: <%= useBuffer %>byte<p/>
</body>
</html>
http://colorscripter.com/info#e" target="_blank" style="color:#e5e5e5text-decoration:none">Colored by Color Scripter

 

 

 

-실행

 

'20.03 ~ 20.08 국비교육 > JSP' 카테고리의 다른 글

내부객체3. page, config, exception  (0) 2020.04.24
내부객체2. session, application, pageContext  (0) 2020.04.24
내부 객체(Implicit Object)  (0) 2020.04.23
액션(Action)  (0) 2020.04.23
지시자(Directive)  (0) 2020.04.22