Eggs Sunny Side Up
본문 바로가기
Web/JSP_Servlet

Servlet 요청과 응답

by guswn100059 2023. 4. 9.

기본 구조)

package ex0406;

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;

// url
// => 프로토콜://누구의 컴퓨터/무슨 폴더(Context Path)
// http://127.0.0.1(or localhost):8081/Servlet/WEB-INF/classes/ex0406/Ex01Servlet.class
// 위 주소는 길고 복잡해서 사용하는 방법 X
// 정확한 파일 경로가 보이면 보안에 취약해짐

// http://localhost:8081/Servlet/hello

// 어노테이션 : 이 클래스(메소드, 필드)를 어떻게 처리해야하는가?
@WebServlet("/hello") // URLMapping : 이 클래스를 호출하려면, /hello 라고 불러야한다.
public class Ex01Servlet extends HttpServlet {
	// Servlet
	// HttpServlet : Servlet을 만들 때 규격

	// Override : 부모클래스의 메소드를 자식클래스에서 재정의

	// init 메소드 : Servlet이 메모리에 등록됐을 때, 실행되는 메소드(1번만 실행됨)
	@Override
	public void init() throws ServletException {
		
		System.out.println("Servlet 클래스가 생성됨.");
		
	}
	
	// service 메소드 : 사용자가 요청했을 때, 실행되는 메소드
	@Override
	protected void service(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
		
		System.out.println("Servlet 클래스가 요청받음.");
		
	}

}

 

요청

package ex0406;

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;

//http://localhost:8081/Servlet/Ex02Request
@WebServlet("/Ex02Request")
public class Ex02Request extends HttpServlet{
	
	private static final long serialVersionUID = 1L; // 직렬화
	
	@Override
	protected void service(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		
	}
}

 

 

예제)

package ex0406;

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("/Ex031") // 클래스 이름은 영어로만! 한글은 에러가 날 확률이 높음.
public class Ex03예제1 extends HttpServlet {
	private static final long serialVersionUID = 1L;

	
	protected void service(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		
		String user = request.getRemoteAddr();
		System.out.println(user);
		
		response.setContentType("text/html ; charset=utf-8");
		
		PrintWriter out = response.getWriter();
		
		out.print("<html>");
			out.print("<body>");
			
				// 아래 주소로 들어오는 사용자한테만 응답
				if(user.equals("211.105.165.112")) {
					out.print("갈매기살 2인분 추가여~");
				} 
				// 위 주소가 아닌 사용자들한테 응답
				else {
					out.print("뽈살 2인분 추가여~");
					out.print("<img src = \"https://encrypted-tbn0.gstatic.com/images?q=tbn:ANd9GcSmtUFomCRwlHxzRYb-MEltZoDYB2OZQPqXgA&usqp=CAU\""
							+ "width = \"300px\">");
				}
				
				
			out.print("</body>");
		out.print("</html>");
		
		
	}

}

'Web > JSP_Servlet' 카테고리의 다른 글

MVC를 위한 Dynamic web project 생성  (0) 2023.04.10
Form  (0) 2023.04.09
Servlet 클래스 생성  (0) 2023.04.09
톰캣오류 - The selection cannot be run on any server  (0) 2023.04.07
JSP - Eclipse 기본설정  (0) 2023.04.06

댓글