JSP&Servlet/기초정리

Servlet 기초 - 데이터 전송(요청)과 응답

줘니(•̀ᴗ•́)و 2023. 1. 26. 19:07
728x90

 

 

1. HTML 파일, Servlet 클래스 만들기

: 사용자에게 요청받을 웹을 구축하고(html)

  그 데이터를 Servlet으로 보내고 Servlet에서 요청에 대한 응답을 보내주는 메커니즘.

 

 

 

 

HTML 파일은 src파일 안 webapp에서 만들어야 한다.

밑에 INF는 보안관련 나중에 나오니 그냥 두고,

꼭 webapp을 클릭한 상태에서 만들어야 한다.

 

 

 

요청받은 데이터를 가져와 응답할 클래스로 사용할 Servlet을 만들어준다.(전 포스팅 참고) 

 

 

2. 데이터 전송하기

 

html문서에서 데이터를 전송할 내용을 작성하면 된다.(사용자에게 요청 받을 웹 구축)

- 데이터를 전송할 땐 무조건 form 태그가 필요하다

 

<form action="DataSend">
	질문 : <input type="text" name="data">
	<input type="submit">
</form>

 

* 데이터 전송 3가지 조건

1) 어디로 보낼건지 : action → Servlet의 URL mapping값을 작성('/' 빼고)

2) 어떤 값을 보낼건지 : name → 보내고 싶은 데이터에게 이름표를 부착하는 개념

3) 언제 보낼건지 : submit → 버튼을 누르면 전송하게끔

 

 

 

위의 코드를 작성하고 실행하면 이와 같이 웹 페이지에 출력된다.

이 상태에선 입력창에 무엇을 써도 

 

 

 

입력된 데이터를 받는 곳, 응답할 곳이 없기 때문에 이렇게 오류가 발생한다.

(페이지를 찾을 수 없을 때)

 

action에 아무것도 작성하지 않으면(URL Mapping값을 작성하지 않으면)

제출을 눌러도 화면이 바뀌지 않고 그대로 새로고침만 된다.

 

 

3. 응답을 위해 요청받은 데이터 가져오기

 

: name값으로 요청받은 데이터를 가져온다.

 

request.getParameter("data");

 

 request.getParameter();로 가져온 데이터 정보들은 모두 무조건 String형태로 반환된다.

따라서 필요에 따라 형변환을 해주어야 한다는 뜻!

 

 

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

 

출력에 쓰기 위해 data라는 변수에 담아준다.

 

 

4. 화면에 출력하기

출력하는 건 전 포스팅 그대로 하면 된다!

 

 

1) 한글 인코딩 잡아주기

 

response.setContentType("text/html; charset=UTF-8");

 

2) 출력스트림 꺼내오기

 

PrintWriter out = response.getWriter();
out.print("<h1>");
out.print(data);
out.print("</h1>");

 

 

웹페이지에 "하이"라고 입력하고 제출버튼을 누르면(요청)

 

 

페이지에 "하이"가 출력되는 걸 볼 수 있다!(응답)

신기방기

728x90