728x90
Servlet 의 메서드 알아보기
doGet()
GET 방식은 클라이언트에서 서버로 데이터를 전달할 때,
URL 뒤에 쿼리 스트링(Query String)을 추가하여 전달하는 방식.
HTTP 헤더에 정보를 포함하여 빠르게 요청을 보낼 수 있으며, 웹에서 많이 사용된다.
GET 방식 특징
쿼리 스트링 사용 : URL 뒤에 ?파라미터명=값 형태로 데이터를 전달
속도가 빠름 : GET 방식은 간단한 데이터를 전달할 때 빠른 응답 속도를 제공
크기 제한 : URL에 포함되는 방식이므로 이미지 등 큰 데이터 전송에는 적합하지 않으며,
주로 짧은 텍스트 데이터를 전송하는 데 사용
보안성 부족: URL에 데이터가 그대로 노출되므로 민감한 정보 전송에는 적합하지 않음.
https://example.com/search?query=java
doPost()
POST 방식은 클라이언트가 서버로 데이터를 전달할 때, HTTP 요청 본문(body)에 데이터를 포함하여 전달하는 방식
이 방식은 주로 민감한 정보나 대용량 데이터를 안전하게 전송하기 위해 사용
POST 방식 특징
HTTP Body에 데이터 포함 : URL에 데이터를 추가하지 않고,
HTTP 요청 본문(body)에 데이터를 포함하여 전송
보안성 높음 : 데이터가 URL에 노출되지 않아 민감한 정보 전송에 적합
다만, 보안을 위해 HTTPS를 사용하는 것이 바람직하다.
데이터 사이즈에 제한이 적음 : 본문에 데이터를 포함하기 때문에 데이터 사이즈 제한이 거의 없다.
따라서 이미지, 파일 등 대용량 데이터 전송에 적합하다.
Servlet과의 연동 : POST 방식으로 서블릿을 호출할 때는 HTML의 <form> 태그를 사용하여
method="post" 로 설정
<form method="post" action="서블릿_URL">
<input type="text" name="data">
<button type="submit">Submit</button>
</form>
Servlet 실습
HTML로 서블릿 요청
<h2>** Servlet Get/Post Test **</h2>
<form action="/web01/getpost" method="post">
I D : <input type="text" value="apple" name="id"><br>
Name: <input type="text" value="스티브" name="name"><br>
Age : <input type="text" value="22" name="age"><br>
<input type="submit" value="전송">
</form>
HTML의 속성
id : 문서 내부 자바스크립트가 사용
name : 문서 외부에서 사용
쿼리 스트링으로 서블릿 요청
http://localhost:8080/web01/getpost?id=apple&name=스티브&age=22&password=123
name 을 삭제한 후 쿼리스트링을 작성한다면 ?
http://localhost:8080/web01/getpost?id=apple&name=&age=22&password=123
servlet
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
// 1. request 처리.
request.setCharacterEncoding("UTF-8"); // 한글 처리
String id = request.getParameter("id");
String name = request.getParameter("name"); // getParameter
String password = request.getParameter("password");
if(password!=null && password.length()>0) {
System.out.println("**password = "+password.toUpperCase());
}else {
System.out.println("**password is Null , password is Empty");
}
// 2 . response 처리.
response.setContentType("text/html; charset=UTF-8");// 한글 처리
PrintWriter out = response.getWriter();
out.print("<html><body>");
out.print("<h2 style='color:blue;'>** Get/Post Test **</h2>");
out.print("<h3> => 전달된 Parameter 확인</h3>");
out.print("<h3> => ID : " + id + "</h3>");
out.print("<h3> => Name : " + name + "</h3>");
out.print("</body></html>");
}//doGet
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
System.out.println("** do post **");
doGet(request, response);
}//doPost
클라이언트가 해당 GET 요청을 보냈을때 ,
서버의 파라미터를 받아처리하고 , 응답을 HTML 형식으로 작성하여 클라이언트에게 전달하는 구조
1. 파라미터의 한글처리 : request.setCharacterEncoding("UTF-8");
2. 파라미터 추출
3. 응답의 한글처리 : response.setContentType("text/html; charset=UTF-8"); : GET 요청에서는 생략가
4. 출력 객체를 활용하여 응답 전송
결과
'Developer > Spring eGov4.0 (Java11, Tomcat9)' 카테고리의 다른 글
Servlet 알아보기 3 ( 화면 간의 이동 처리 ) (0) | 2024.11.01 |
---|---|
Servlet 알아보기 3 (lifecycle) (0) | 2024.11.01 |
Servlet 알아보기 1 (servlet개념 , mapping Name) (0) | 2024.10.31 |
webProgramming이란 ? WAS란 ? (0) | 2024.10.31 |
Spring , AOP란 ? (0) | 2024.10.31 |