티스토리 뷰

Spring&Spring Boot/JSP

JSP request, response

on1ystar 2019. 1. 20. 17:01
728x90
반응형
본 글의 목적은 제가 공부한 내용을 바탕으로 정리하면서 저와 같이 공부하시는 분 들을 위함입니다. 때문에 부족한 부분이 있을 수 있고, 잘못된 부분이 있을 수 있습니다. 만약 있을 경우, 생각을 고칠 수 있도록 저에게 알려주시면 정말 감사하겠습니다 !!



JSP 역시 Servelt과 마찬가지로 request와 response 객체가 존재합니다. 쓰이는 메소드나 개념은 동일하기 때문에 바로 실습을 해보면서 공부해 보겠습니다. (참고 : HttpServlet)


request.getParameter(), request.getParameterValues()

두 메소드 모두 내장객체로, 클라이언트의 입력 정보를 가져오는 메소드입니다.

formSign.jsp
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=EUC-KR"
    pageEncoding="EUC-KR"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="EUC-KR">
<title>Insert title here</title>
</head>
<body>
 
    <form action="singUp.jsp" method ="get">
        id : <input type="text" name="user_id"><br>
        password : <input type="password" name="user_pw"><br>
        hobby : sport<input type="checkbox" name="user_hobby" value="sport">,
                cooking<input type="checkbox" name="user_hobby" value="cooking">,
                travel<input type="checkbox" name="user_hobby" value="travel"><br>
                <input type="submit" value = "signUp">
                
    </form>
</body>
</html>
cs


signUp.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
<%@ page language="java" contentType="text/html; charset=EUC-KR"
    pageEncoding="EUC-KR"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="EUC-KR">
<title>Insert title here</title>
</head>
<body>
    <%!
    String user_id;
    String user_pw;
    String[] user_hobby;
    %>
    
    <%
    user_id = request.getParameter("user_id");
    user_pw = request.getParameter("user_pw");
    user_hobby = request.getParameterValues("user_hobby");
    %>
    
    user_id :<%= user_id%> <br>
    user_pw :<%= user_pw%> <br>
    user_hobby :
    <%
    for(int i=0; i<user_hobby.length; i++) {
    %>
        <%= user_hobby[i] %>
    <%
    }
    %>    <br>
</body>
</html>
cs


signUp.jsp를 보면 저번 시간에 공부한 것을 이용해 코드를 보면 먼저 <%! %>를 이용해 멤버 변수들을 선언해 주었습니다.

그 멤버 변수들에 <% %>태그로 java코드를 이용해 데이터를 넣어주겠습니다.

클라이언트가 입력한 정보를 String 객체에 담고 있는데, 그 때 사용되는 메소드가 request.getParameter("name") 입니다. 인자 값으로는 form태그의 name 속성 값을 주면 됩니다.

user_hobby의 경우 type이 checkbox 이므로 배열로 저장해 주어야 합니다. 따라서 호출하는 메소드도 request.getParameterValues("value")로 바뀌고 인자 값으로 value 속성 값을 줍니다.

데이터가 잘 들어갔는지 확인하기 위해 변수 값을 출력해주는 <%= %> 태그를 사용합니다.

단, user_hobby는 배열이기 때문에 for문을 이용해 출력해 주도록 합니다. (자세한 문법 내용은 생략하겠습니다.)



원하는 데로 값이 입력되고 출력됩니다. 참고로 입력 방식을 GET으로 했기 때문에 URL에 변수와 값이 그대로 나오는 것을 볼 수 있습니다. password같은 민감한 정보도 있기 때문에 이는 POST방식으로 해주는 게 좋겠죠 ?


response.sendRedirect()

이 메소드는 클라이언트를 인자 값에 들어가는 페이지로 이동시켜 주는 메소드입니다.

firstPage.jsp
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
<%@ page language="java" contentType="text/html; charset=EUC-KR"
    pageEncoding="EUC-KR"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="EUC-KR">
<title>Insert title here</title>
</head>
<body>
 
    <p>first page !</p>
    
    <%
        response.sendRedirect("secondPage.jsp");
    %>
</body>
</html>
cs

secondePage.jsp
1
2
3
4
5
6
7
8
9
10
11
12
13
<%@ page language="java" contentType="text/html; charset=EUC-KR"
    pageEncoding="EUC-KR"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="EUC-KR">
<title>Insert title here</title>
</head>
<body>
 
    <p>Second Page !</p>
</body>
</html>
cs


firstPage.jsp를 보시면 아무 조건 없이 response.sendRedirect("secondPage.jsp")가 호출됩니다. 따라서


URL에 firstPage.jsp를 요청하지만,


firsPage는 안보이고 바로 sencondPage.jsp로 이동되는 것을 볼 수 있습니다.

728x90
반응형

'Spring&Spring Boot > JSP' 카테고리의 다른 글

Servlet 데이터 공유  (1) 2019.01.22
JSP 내장객체  (0) 2019.01.21
JSP 스크립트  (0) 2019.01.19
doGet, doPost  (3) 2019.01.18
Servlet Lifecycle  (0) 2019.01.18
댓글