본문 바로가기
STUDY/JSP

Jsp 4일차 - request & response

by Anne of Green Galbes 2019. 2. 14.
1. request & response

request

○ 클라이언트 IP = <%=request.getRemoteAddr() %>

○ 요청정보길이 = <%=request.getContentLength() %>

○ 요청정보 인코딩 = <%=request.getCharacterEncoding() %>

○ 요청정보 컨텐트 타입 = <%=request.getContentType() %>

○ 요청정보 프로토콜 =<%=request.getProtocol() %>

○ 요청정보 전송방식 =<%=request.getMethod() %>

   get/ post방식

○ 요청 URI = <%=request.getRequestURI() %>

○ 컨텍스트 경로 =<%=request.getContextPath() %>

○ 서버이름 =<%=request.getServerName() %>

○ 서버포트 = <%=request.getServerPort() %>

○ 한글  = request.setCharacterEncoding("UTF-8");


② response


2. submit

○ 무조건 action을 찾아간다.

○ action에다가는 값을 가지고 갈 페이지를 적는다 ("test4_ok.jsp")

○ su1과 su2를 가지고 test4_ok.jsp로 간다

○ 컬럼의 이름은 name의 이름과 같아야 한다.

○ 일반적으로 스크립트가 없을때 사용

○ 스트립트가 있을 때는 button사용


3. get방식 & post방식

post방식

주소 : http://localhost:8080/study/jsp1/test4_ok.jsp?

○ 데이터가 노출되지 않는다.

○ 사용자에게 데이터를 받을 때 사용한다.

○ 한글은 깨져서 데이터가 전송된다.

  ▶ request.setCharacterEncoding("UTF-8"); → post방식일때 한글깨짐 방지

○ window>preferences>web>jsp file>editor>templates>new jsp file(html)에 추가

get방식

주소 : http://localhost/study/jsp1/test4_ok.jsp?su1=13&su2=13&age=13

○ 주소창에 입력한 값이 보인다.

○ 데이터가 노출이 된다.

○ 프로그래머가 내부적으로 임의의값을 넘겨줄 때 사용한다.

○ form의 바깥부분에서 사용한다.

○ 영문과 한글 모두 데이터가 정상적으로 전송 된다.

  ▶ 그러나, 실제로 get방식에서도 한글은 전송X


4. 예제(1)

test4.jsp

<%@ page contentType="text/html; charset=UTF-8"%>

<!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=UTF-8">

<title>Insert title here</title>

</head>

<body>

<form action="test4_ok.jsp" method="post">

수1:<input type="text" name="su1"></br>

수2:<input type="text" name="su2"></br>

나이:<input type="text" name="age"></br>

이름:<input type="text" name="name"></br>

<input type="submit" value="결과"></br>

</form>

<a href="test4_ok.jsp?su1=100&su2=200&age=25&name=수지">Get방식</a>

</body>

</html>

결과

① 전송(submit)을 클릭 ▶ form의  action="test4_ok.jsp" 를 찾아감 ▶ test4_ok.jsp파일을 불러옴

② form양식에서 데이터를 보내는 것은 request.getParameter로 받는다.
클라이언트의 request값이 서버로 이동, 서버는 response에 test4_ok를 넣어서 보냄

test4_ok.jsp

<%@page import="javax.print.DocFlavor.STRING"%>

<%@ page contentType="text/html; charset=UTF-8"%>

<!-- 넘어온 값을 받는 작업 -->


<%

request.setCharacterEncoding("UTF-8"); //post방식일때 한글깨짐 방지

/*

String su1 = request.getParameter("su1");

//request에 있는 중에su1에 파라메터를 su1에 넣음

String su2 = request.getParameter("su2");

//받아오는 값은 항상 String

int s1 = Integer.parseInt(su1);

int s2 = Integer.parseInt(su2);

*/

int s1 = Integer.parseInt(request.getParameter("su1"));

int s2 = Integer.parseInt(request.getParameter("su2"));

String age = request.getParameter("age");

String name = request.getParameter("name");

int sum;

sum = s1 + s2;

%>

<!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=UTF-8">

<title>Insert title here</title>

</head>

<body>

합:<%=s1 %>+<%=s2 %>=<%=sum %></br>

나이:<%=age %>살</br>

이름:<%=name %>

</body>


</html>

결과

test4.jsp


결과 클릭시 ▶ test4_ok.jsp

post방식은 주소창에 데이터가 노출되지 않는다.


Get 방식 클릭시 ▶ test4_ok.jsp

get방식은 주소창에 데이터가 노출된다.


5. 예제(2)

배열로 데이터 값 받기

String hobby[] = request.getParameterValues("hobby");

▶ test5.jsp

<%@ page contentType="text/html; charset=UTF-8"%>

<%

request.setCharacterEncoding("UTF-8");

%>

<!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=UTF-8">

<title>Insert title here</title>

</head>

<body>

<form action="test5_ok.jsp" method="post">

이름:<input type="text" name="name"></br>

메모:<textarea rows="5" cols="30" name="memo"></textarea></br>

성별:<input type="radio" name="gender" value="여자" checked="checked">여자

<input type="radio" name="gender" value="남자">남자</br>

취미:</br>

<input type="checkbox" name="hobby" value="여행">여행</br>

<input type="checkbox" name="hobby" value="영화감상">영화감상</br>

<input type="checkbox" name="hobby" value="음악듣기">음악듣기</br>

<input type="checkbox" name="hobby" value="게임">게임</br>

<input type="checkbox" name="hobby" value="운동">운동</br>

전공:</br>

<select name="major" size="4" multiple="multiple"> <!-- ctrl키 누르고 선택 -->

<option value="수학과">수학과</option>

<option value="영어과">영어과</option>

<option value="물리학과">물리학과</option>

<option value="컴공">컴공</option>

</select></br>

<input type="submit" value="전송"></br>

</form>

</body>

</html>

test5_ok.jsp

<%@ page contentType="text/html; charset=UTF-8"%>

<%

request.setCharacterEncoding("UTF-8");


String name = request.getParameter("name");

String memo = request.getParameter("memo");

String gender = request.getParameter("gender");

String hobby[] = request.getParameterValues("hobby");

String major[] = request.getParameterValues("major");

memo = memo.replaceAll("\n", "</br>");

String str="";

if(hobby!=null){

for(String temp : hobby){

str += temp + ", ";

}

}

String str1="";

if(major!=null){

for(String temp : major){

str1 += temp + ", ";

}

}

%>

<!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=UTF-8">

<title>Insert title here</title>

</head>

<body>

이름:<%=name %></br>

메모:</br><%=memo %></br>

성별:<%=gender %></br>

취미:<%=hobby %></br> <!-- 주소가 출력 -->

취미:<%=str %></br>

전공:<%=str1 %></br>

</body>

</html>


결과
test5.jsp

test5_ok.jsp



'STUDY > JSP' 카테고리의 다른 글

Jsp 4일차 - submit & button  (0) 2019.02.15
Jsp 4일차 - jsp영역 안에서 html사용  (0) 2019.02.15
Jsp 4일차 - 이벤트  (0) 2019.02.14
Jsp 3일차 - CSS기본  (0) 2019.02.14
Jsp 2일차 - HTML기본  (0) 2019.02.13

댓글