기본 구조)
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 |
댓글