// GET 방식
- 데이터를 URL에 붙여서 전송 > 인코딩 규칙: URL 규칙에 따름 > 보안에 약함
1. <form method="GET">
2. XMLHttpRequest(Ajax)
3. <a href="">
4. location.href
5. F5(새로고침)
6. URL 직접 입력
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
<form action="calculator" method="get">
<input type="submit" value="요청">
</form>
</body>
</html>
package com.sorrelcalc.web;
import java.io.IOException;
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("/calculator")
public class Calculator extends HttpServlet{
@Override
protected void service(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
if(req.getMethod().equals("GET")) { // html <body> <form method>가 get? (대문자 사용 필수)
System.out.println("GET 요청이 왔습니다.");
}
}
}
// doGet()
- html내 form 태그의 method 속성이 get일 경우 호출된다.
- 웹브라우저의 주소창을 이용하여 servlet을 요청한 경우에도 호출된다.
- 매개변수로 HttpServletRequest와 HttpServletResponse를 받는다.
- HttpServletResponse 객체의setContentType()를 호출하여 응답 방식을 결정한다.
response.setContentType("text/html; charset=UTF-8");
- HttpServletResponse 객체의 getWriter() 메서드를 이용하여 출력 스트림을 얻는다.
PrintWriter writer = response.getWriter();
- 출력 스트림의 println() 메서드를 이용하여 웹브라우저에 원하는 내용을 출력한다.
writer.println("<html>");
writer.println("<head>");
writer.println("<meta charset='UTF-8'>");
writer.println("</head>");
writer.println("<h1>데이터 보내기</h1>");
writer.println("<form method='GET' action='/servlet/ex04ok'>");
writer.println("<div>이름: <input type='text' name='name'></div>");
writer.println("<div></div>");
writer.println("<div></div>");
writer.println("<div><input type='submit' value='보내기'></div>");
writer.println("</form>");
writer.println("<a href='/servlet/ex04ok?name=hong'>Ok 페이지</a>");
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
<form action="calculator" method="get">
<input type="submit" value="요청">
</form>
</body>
</html>
package com.sorrelcalc.web;
import java.io.IOException;
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("/calculator")
public class Calculator extends HttpServlet{
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
System.out.println("doGET메서드가 호출되었습니다.");
}
}
// POST 방식
- 데이터를 패킷(header)에 넣어서 전송 > 인코딩 규칙: 인터넷 규칙에 따름 > 보안에 강함
1. <form method="POST">
2. XMLHttpRequest(Ajax)
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
<form action="calculator" method="post">
<input type="submit" value="요청">
</form>
</body>
</html>
package com.sorrelcalc.web;
import java.io.IOException;
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("/calculator")
public class Calculator extends HttpServlet{
@Override
protected void service(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
if(req.getMethod().equals("POST")) { // post? (대문자 사용 필수)
System.out.println("POST 요청이 왔습니다.");
}
}
}
// doPost()
- html내 form태그의 method 속성이 post일 경우 호출된다.
- HttpServletResponse 객체의setContentType()를 호출하여 응답 방식을 결정한다.
response.setContentType("text/html; charset=UTF-8");
- HttpServletResponse 객체의 getWriter() 메서드를 이용하여 출력 스트림을 얻는다.
PrintWriter writer = response.getWriter();
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
<form action="calculator" method="post">
<input type="submit" value="요청">
</form>
</body>
</html>
package com.sorrelcalc.web;
import java.io.IOException;
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("/calculator")
public class Calculator extends HttpServlet{
@Override
protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
System.out.println("doPOST메서드가 호출되었습니다.");
}
}
'서버 > Servlet-JSP' 카테고리의 다른 글
Servlet Parameter (0) | 2022.12.30 |
---|---|
Servlet 생명주기 (0) | 2022.12.29 |
이클립스로 Servlet 프로그래밍 시작 (0) | 2022.12.24 |
메모장으로 Servlet 프로그램 만들기 (0) | 2022.12.22 |
Servlet, JSP (0) | 2022.12.22 |