패키지

데이터 송수신 테스트 본문

Server-Side/JSP

데이터 송수신 테스트

업단업업 2015. 8. 15. 22:34

데이터 송수신 테스트

1. 클라이언트가 작성한 데이터를 서버로 전송하고, JSP 프로그램을 통해서 수신하는 과정.

2. POST, GET 방식 전송 방법중 하나를 선택.




 ** post 전송 방식

 ** get 전송 방식


편지를 보내는 방식과 비슷하다. 편지 내용은 편지 봉투 안에 밀봉되어 있고, 보내고 받는 주소만 확인할 수 있다. 


 엽서를 보내는 방식과 비슷하다. 내용이 노출되어 있다는 것이 특징이다. 

 
 - form 태그에서 method="" 속성을 post로 지정.

- <form action="jsp페이지주소" method="post">

<input type="text" name="식별자">
<input type="submit" value="회원가입">

</form>

 a 태그에서 href="" 속성에 요청 주소 작성시  "요청주소?식별자=데이터&식별자=데이터 ..." 형식으로 작성.

? 이후 문자열에는 특수문자나, 공백등을 삽입하면 수신하는 과정에서 인식 불가.

GET 방식으로 전송된 데이터를 서버에서 데이터 수신시 식별자를 사용한다.

=> String 변수 = request.getParameter("식별자");

JSP 페이지(요청주소에 지정한 JSP 페이지)에서 데이터를 수신하려면 내장 객체인 request 를 사용.

<%

String 변수 = request.getParameter("식별자");

//수신된 데이터를 임시변수에 저장하고 나서 그 내용을 데이터베이스에 저장하는 과정을 진행하게 됩니다.//-> JDBC 이용

%>

 다량의 데이터 전송시 사용.
한글 데이터 전송시 이 방법을 사용해야 올바르게 전송 및 수신할 수 있다.
 양에 대한 제한이 있어서 다량의 데이터를 보낼 수 없다(한계).


action="" 속성에서 JSP 페이지 주소 기입시 두 가지 방법이 있다.

상대 URL -> 현재 JSP 페이지를 기준으로 상대적 위치를 표시하고 요청 주소를 적는 것.

예를 들어,

현재 JSP 페이지와 요청 주소 페이지가 같은 디렉토리에 존재한다면

action="요청페이지.jsp"

(현재 JSP 페이지와 요청 주소 페이지가 다른 디렉토리에 존재한다면

action="/디렉토리구조/요청페이지.jsp")


절대 URL -> 현재 JSP 페이지와 무관하게 절대적 위치를 표시하고 요청 주소를 적는 것.

예를 들어,

action="http://URL/디렉토리구조/요청페이지.jsp"



name="식별자" 속성은 서버에서 데이터 수신시 식별자로 사용한다. 

예를 들어,

String 변수 = request.getParameter("식별자");

<input type="submit"> 클라이언트가 입력한 데이터를 서버로 전송하는 액션 전용 버튼.

 대체 수단으로 Javascript에서 submit() 메소드를 이용할 수 있다.



-----------------------------------------

이름 전송 및 수신 테스트 (YourName.jsp + Hi.jsp)
//YourName.jsp -> 실행 페이지

<%@ 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>

<div>

<!-- 데이터 송신 페이지 -->

<!-- 

form 태그에 의한 POST 방식 전송 

또는

a 태그에 의한 GET 방식 전송 선택

-->

<!-- 

1. 사용자가 원하는 데이터를 폼에 입력

2. 서브밋 버튼을 클릭

3. form 태그에 지정한 요청주소(Hi.jsp)를 서버에 요청한다.

4. 요청시 폼에 입력한 데이터도 같이 전송된다.

5. 서버에서는 Hi.jsp가 자동 호출되면서 나머지 액션 진행.

 -->

<!-- 요청 주소(action 속성) 필수. 전송 방식(method 속성) 선택. -->

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

<!-- 

사용자가 데이터를 입력(선택)할 수 있도록 폼 구성.

프로그램 진행을 위해서 식별자(name 속성) 필수

 -->

<input type="text" name="name">


<!-- 서버로 전송하기 위해서는 submit 기능 필수 -->

   <input type="submit">


</form>

</div>

</body>

</html>




//Hi.jsp -> 자동 실행 (브라우저에서 직접 요청하지 않는다)

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

    pageEncoding="UTF-8"%>

<%

//1. Hi.jsp는 사용자의 요청에 의해 자동 호출된다.

//   -> 주의) 사용자가 현재 페이지를 직접 호출하면 안된다.

//2. 사용자가 전송한 데이터를 수신하는 액션 필요.

//3. 수신된 데이터를 검증하거나, 결과 메시지를 출력하는 액션 작성.

//데이터 수신 명령 request.getParameter("식별자");

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

%>    

<!DOCTYPE html>

<html>

<head>

<meta charset="UTF-8">

<title>Insert title here</title>

</head>

<body>

<div>

<!-- 데이터 수신 페이지 -->

안녕하세요, <%=name%> 님!

</div>

</body>

</html>


-------------------------------------------------------

이름 전송 및 수신 테스트 - 데이터 검증 과정 추가 (YourName.jsp + Hi.jsp + MemberList.java)

//YourName.jsp -> WebContent 폴더 하위에 생성

<%@ 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>

<div>

<!-- 데이터 송신 페이지 -->

<!-- 

form 태그에 의한 POST 방식 전송 

또는

a 태그에 의한 GET 방식 전송 선택

-->

<!-- 

1. 사용자가 원하는 데이터를 폼에 입력

2. 서브밋 버튼을 클릭

3. form 태그에 지정한 요청주소(Hi.jsp)를 서버에 요청한다.

4. 요청시 폼에 입력한 데이터도 같이 전송된다.

5. 서버에서는 Hi.jsp가 자동 호출되면서 나머지 액션 진행.

-->

<!-- 요청 주소(action 속성) 필수. 전송 방식(method 속성) 선택. -->

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

<!-- 

사용자가 데이터를 입력(선택)할 수 있도록 폼 구성.

프로그램 진행을 위해서 식별자(name 속성) 필수

-->

<input type="text" name="name">


<!-- 서버로 전송하기 위해서는 submit 기능 필수 -->

<input type="submit">

</form>

</div>

</body>

</html>





//Hi.jsp -> WebContent 폴더 하위에 생성 (브라우저에서 직접 요청하지 않는다)

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

    pageEncoding="UTF-8"%>

<%@ page import="com.test.*" %>    

<%

//1. Hi.jsp는 사용자의 요청에 의해 자동 호출된다.

//   -> 주의) 사용자가 현재 페이지를 직접 호출하면 안된다.

//2. 사용자가 전송한 데이터를 수신하는 액션 필요.

//3. 수신된 데이터를 검증하거나, 결과 메시지를 출력하는 액션 작성.

//데이터 수신 명령 request.getParameter("식별자");

//사용자가 지정한 식별자를 동일하게 사용해야 수신 가능.

//-> 동일 자료, 동일 식별자 사용할 것

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

//데이터 검증 과정 추가

String result = "당신은 회원이 아닙니다.\r\n";

//데이터 검사 과정 -> 독립된 클래스의 public 메소드 

MemberList member = new MemberList();

if (member.memberCheck(name)) {

result = String.format("안녕하세요, %s 님!\r\n", name);

%>  

 

<!DOCTYPE html>

<html>

<head>

<meta charset="UTF-8">

<title>Insert title here</title>

</head>

<body>

<div>

<!-- 데이터 수신 페이지 -->

<%=result%>

</div>

</body>

</html>



//MemberList.java -> Java Resources 폴더 하위에 생성

package com.test;


public class MemberList {

public boolean memberCheck(String name) {

boolean result = false;

String[] array = {"HONG", "PARK", "KIM", "CHOI"};


//문제)

//외부에서 전달된 name 변수의 값이

//배열의 요소와 일치하는 이름이 있는지 확인

//-> 대소문자 구분없이 검사할 것

//-> 일치하는 이름이 있다면 result 변수에 true 저장.

for (String m : array) {

if (m.equalsIgnoreCase(name)) {

result = true;

}

}

return result;

}


}



더 공부해서 수정하겠습니다.~


아낌없이 지적해주신 꽃사슴께 ㄳㄳ 




'Server-Side > JSP' 카테고리의 다른 글

jsp 프로젝트 환경 설정 오류..  (0) 2015.08.16
JSP실행구조, 스크립트 요소  (0) 2015.08.14
JSP코딩 기본 틀  (0) 2015.05.11
Comments