프로토콜://호스트:포트번호/컨텍스트패스/URLMapping
http://localhost:9090/01_Servlet/HelloServlet
@WebServlet("/HelloServlet") // URL Mapping public class HelloServlet extends HttpServlet { // Servlet은 HttpServlet을 상속을 받으면 된다.
public HelloServlet() { super(); System.out.println("생성자"); }
public void init(ServletConfig config) throws ServletException { // TODO Auto-generated method stub System.out.println("init"); }
protected void service(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { // TODO Auto-generated method stub System.out.println("service"); // service 메소드가 존재하는 경우 doGET()/doPOST()가 자동으로 호출되지 않기 떄문에 // 코드를 직접 작성 // 요청 메소드 확인 : request.getMethod() switch(request.getMethod()) { case "GET" : doGet(request, response); // doGet() 메소드 호출 break; case "POST" : doPost(request, response); // doPost() 메소드 호출 break; } }
1) $.ajax({ 'type' : 'GET', 'url' : 'http://localhost:9090/01_Servlet/HelloServlet' }); 2) 〈a href="http://localhot/9090/01_servlet/HelloServlet">링크〈/a> 3) 〈form method="GET" action="http://localhot/9090/01_servlet/HelloServlet"> 또는 〈form> 4) location.href='http://localhot/9090/01_servlet/HelloServlet' open('http://localhot/9090/01_servlet/HelloServlet')
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { // response : 사용자에게 전달할 때 사용 response.getWriter().append("Served at: ").append(request.getContextPath()); }
(1) $.ajax({ 'type':'POST', 'url' : 'http://localhost:9090/01_Servlet/HelloServlet' }); (2) 〈form method="POST" action="http://localhost:9090/01_Servlet/HelloServlet">
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { // 요청과 응답 정보를 doGet() 메소드로 넘겨 버림 doGet(request, response); }
request.setCharacterEncoding("UTF-8");
String name = request.getParameter("name"); String strAge = request.getParameter("age"); // null 처리 int age = 0; if(strAge != null) { age = Integer.parseInt(strAge); }
response.setContentType("text/html");
response.setCharacterEncoding("UTF-8");
response.setContentType("text/html, charset=UTF-8");
PrintWriter out = response.getWriter();
out.println("〈html lang=\"ko\">"); out.println("〈head>"); out.println("〈meta charset=\"UTF-8\">"); out.println("〈title>"); out.println("나의 첫 번째 응답"); out.println("〈/title>"); out.println("〈/head>"); out.println("〈body>"); out.println("〈h1>안녕하세요. " + name + "님 반갑습니다 ♥〈h1>"); if(age >= 20) { out.println("〈h1>귀하는 " + age + " 살이므로 입장이 가능합니다.〈h1>"); } else { out.println("〈h1>" + age + "살? 애들은 다음에〈/h1>"); } out.println("〈/body>"); out.println("〈/html>"); out.flush(); // 출력 스트림에 남아 있는 모든 데이터 내보내기 (만약을 위해서) out.close(); }