1. 기본 개념 정리
- Server(서버)
- Client(사용자)의 요청(request)에 맞는 서비스를 제공하는 것
- 요청(request) <-> 응답(response)
- httpd
- 클라이언트의 요청을 인식하는 프로그램
- 요청을 웹 서버에 전달
- 스레드 스케쥴링
- web
- 페이지 요청과 응답이 일어나는 장소
- 인터넷에 연결된 컴퓨터들을 통해 정보를 공유하는 공간
- web Server(http) : 아파치(Apache)
- 사용자의 요청이 정적인지 동적인지 판단
- 정적이면, 준비되어 있는 리소스(html, img, css, javascript, font).제공
- 동적이면, 웹 컨테이너에 요청을 보냄
- 웹 컨테이너(Servlet Container)
- 사용자의 동적 데이터를 servlet, jsp로 연산하거나 제어하며, DB 접속 등을 통해 정제된 데이터로 가공하여 응답
- WAS(Web Application Server) : 톰캣(Tomcat)
- 동적 데이터를 처리할 서블릿들을 메모리에 할당
- 서블릿에 대한 스레드 생성
- 요청, 응답 객체를 생성하여 서블릿에 전달
2. OrderServlet을 통해 파라미터 처리 연습

html 소스
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
<h1>안녕하세요 만수르입니다. </h1>
<hr>
<h2>라면 주문하기</h2>
<form action="/web/Order">
라면 개수 : <input type="text" name="ramen"><br>
개당 가격 : <input type="text" name="price"><br>
먹을 장소 : <input type="text" name="location"><br>
<input type="submit" value="신청하기">
</form>
</body>
</html>
실행화면

web/Order 이라는 form으로 name들의 데이터를 넘길 것이다.

package com.korea.servlet;
import java.io.IOException;
import java.io.PrintWriter;
import jakarta.servlet.ServletException;
import jakarta.servlet.annotation.WebServlet;
import jakarta.servlet.http.HttpServlet;
import jakarta.servlet.http.HttpServletRequest;
import jakarta.servlet.http.HttpServletResponse;
@WebServlet("/Order")
public class OrderServlet extends HttpServlet{
private final String RED = "\033[91m";
private final String GREEN = "\033[92m";
private final String END = "\033[0m";
protected void doGet(HttpServletRequest request,
HttpServletResponse response)
throws ServletException, IOException
{
System.out.println(RED + "[OrderServlet] Called" + END);
response.setContentType("text/html; charset = UTF-8");
// ramen, price, location 을 입력으로 받는다면
String food = request.getParameter("ramen");
int price = Integer.parseInt(request.getParameter("price"));
String loc = request.getParameter("location");
System.out.println(food + ": " + loc + ": " + price);
PrintWriter out = response.getWriter();
out.println("<html><body>");
out.println("<h1>손님께서 주문하신 내역</h1><hr>");
out.println("<h2> 라면 : " + food);
if(loc.equals("니네집")) {
System.out.println("니네집");
out.println("<h2>니네집은 공짜</h2>");
}
else if(loc.equals("융프라우")){
out.println("<h2>가격은 " + price * 10 + "원입니다.</h2>");
}
else {
out.println("<h2>안 팝니다.</h2>");
}
out.println("</html></body>");
}
}


'자바 공부 > [자바] 기본 공부' 카테고리의 다른 글
| [JSP 3일차] 디렉티브 태그와 인클루드 태그 (0) | 2024.11.21 |
|---|---|
| [JSP 2일차] 스크립트 태그 (1) | 2024.11.20 |
| [JSP 1일차] 서블릿의 Get, Post (0) | 2024.11.19 |
| [JSP 1일차] CGI와 서블릿 (1) | 2024.11.19 |
| [자바공부 4일차] 람다식 (0) | 2024.11.11 |