반응형

#17강 사용자 입력을 통한 GET 요청

- 반복 횟수를 사용자로부터 입력 받으려면 입력폼을 준비해야 한다.

- 사용자로부터 입력폼을 받아 전달 시 hell?cnt=3 으로 요청될수 있도록.

- 입력폼을 적용하기 위해서는 반드시 폼 태그 구조 안에서 작성을 통해 이루어져야 한다. (html 문서에 작성)

- (input type : 사용자로부터 입력받는 태그)

- (<form action="hi"> : 폼 태그, 입력 시 http://.../hi로 요청) 

- (<input type="text" name="cnt" /> : 입력된 인풋에 대한 네이값을 통해 http://.../hi?cnt=3로 요청)

- (<input type="submit" value="출력" /> : 입력된 값의 요청을 전달하는 태그)

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
	<div>
		<form action="hi"> 
			<div>
				<label>"안녕하세요"를 몇 번 듣고 싶으세요?</label>
			</div>
			<div>
				<input type="text" name="cnt" />
				<input type="submit" value="출력" />
			</div>
		</form>
	</div>
</body>
</html>

 

#18강 입력할 내용이 많은 경우는 POST 요청

- POST 요청은 입력할 내용이 많을 경우 처음에는 입력폼을 받기 위한 get요청을 진행하고 해당 결과를 바탕으로 일정한 양식을 통해 한번에 입력받아 일괄로 요청하는 것

- html 문서와 서블릿을 동일하게 맞춰줘야 한다. (html 문서 작성 후 해당하는 서블릿 작성)

- GET 요청을 통해 내용을 요청 받아 전달 시 주소창에 들어가져 전달되며, 큰 내용을 전달시 서버에 끊김이 발생된다. 그리고 url로 전달되기 때문에 아이디, 패스워드 입력에 따른 보안상 유출이 발생할 수 있게 된다.

- method="post" 로 요청 시 문서의 요청 바디안에 내용이 전달된다. (요청 바디는 크기에 제한이 없어 서버에서는 끊김 없이 내용을 받아 전달할 수 있다.)

//html 문서
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
	<div>
		<form action="notice-reg" method="post"> 
			<div>
				<label>제목 :</label><input name="title" type="text" >
			</div>
			<div>
				<label>내용 :</label>
				<textarea name="content"></textarea>
			</div>
			<div>
				<input type="submit" value="등록" />
			</div>
		</form>
	</div>
</body>
</html>
//서블릿 문서
package com.newlecture.web;

import java.io.IOException;
import java.io.PrintWriter;

import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse; 

@WebServlet("/notice-reg")
public class NoticeReg extends HttpServlet {
	@Override
	protected void service(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
		
		resp.setCharacterEncoding("UTF-8");
		resp.setContentType("text/html; charset=UTF-8");
		
		PrintWriter out = resp.getWriter();
		
		String title = req.getParameter("title");
		String content = req.getParameter("content");
		
		out.println(title);
		out.println(content);
		
	}
}
반응형

+ Recent posts