반응형
#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);
}
}
반응형
'프로그래밍 > 자바, JDBC' 카테고리의 다른 글
뉴렉처 학습(서블릿/JSP) 21강 ~ 22강(학습과제) (0) | 2020.05.12 |
---|---|
뉴렉처 학습(서블릿/JSP) 19강 ~ 20강 (0) | 2020.05.11 |
뉴렉처 학습(서블릿/JSP) 16강 (0) | 2020.05.09 |
뉴렉처 학습(서블릿/JSP) 15강 (0) | 2020.05.08 |
16진수 입력받아 8진수 표현 (0) | 2020.05.06 |