HTML ( Hypertext Markup Language )
: 단순한 형태의 웹 언어
웹 서버에 HTML 문서를 저장하고 있다가
클라이언트가 특정 HTML 페이를 요청하면
해당 HTML 문서를 클라이언트로 전송하는 방법
ML ( Markup Language )
: 데이터 없이 표현하기 위해서 만든 언어
즉, 데이터를 화면에 띄우기 위함을 목적으로 함
XML ( extensible markup language )
: 데이터를 표현하는 것이 아닌
데이터를 주고 받기 위하여 만든 언어
java | c/c++ | python 등의 다양한 언어가 있으면
이 언어들끼리 주고 받을때
java가 넘겨주고 받는 예시로

1) 원래 WebContent 하위에 바로 생성했던 jsp파일을
/WebContent/WEB-INF 폴더에'home.jsp'생성
action을 생략하면 현재 페이지에 parameter를 전송
<form method="POST">
<p><input name="name" type="text" placeholder="이름" required></p>
<p><input name="age" type="number" placeholder="나이" required></p>
<button>전송</button>
</form>
2) /WebContent/WEB-INF 폴더에 'web.xml' 생성
많은 코드들이 있는데
<display-name>MVC2</display-name>
<welcome-file-list>
<welcome-file>home.jsp</welcome-file>
</welcome-file-list>
<web-app ~~~~~~> </web-app>
안에 내용을 바꿔주자
WEB-INF의 파일은
web.xml을 만들어야 접근이 가능하다
web.xml의 코드는 톰캣서버와 데이터를 교환하게 해주는 역할을 하는데
web.xml 파일의 <web-app> 안에 있는 내용들은
톰캣을 설정하기 위해 필요한 코드들이라 생각하면 좋다
3) 우리가 앞전에 beans를 만들었던
Java Resources의 src에 이번에는
controller 라는 패키지를 만들고
HomeServelt 이라는 자바페이지를 만들자
import 시켜줄 것이 많다
package controller;
import java.io.IOException;
import javax.servlet.RequestDispatcher;
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("/")
public class HomeServlet extends HttpServlet {
// doGet : 요청 메서드가 GET이면 아래 메서드를 수행한다
@Override
protected void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
RequestDispatcher rd = request.getRequestDispatcher("WEB-INF/home.jsp");
rd.forward(request, response);
}
// doPost : 요청 메서드가 POST면 아래 메서드를 수행한다
@Override
protected void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
// 필요한 로직을 처리한다
// - 나이에 따라서 성인/미성년자로 분류 처리
request.setCharacterEncoding("utf-8");
String name = request.getParameter("name");
int age = Integer.parseInt(request.getParameter("age"));
String msg = age >= 20 ? "성인" : "미성년자";
// request에는 데이터를 저장할 공간이 Attribute가 있다
request.setAttribute("msg", msg);
RequestDispatcher rd = request.getRequestDispatcher("WEB-INF/result.jsp");
rd.forward(request, response);
}
}
ㄴ 대충 설명 //
1)
@WebServlet("/")
주소창 끝에 / 가 들어오면 해당 페이지를 인식시킴
인식할 때 / 를 사용하면 하위폴더나 이름을 가려줄 수 있어서 좋음
주소창 홈의 최상위 MVC2 에서 / 를 붙여
MVC2/ 로 만들어주면 servlet이 / 를 인식해서
servlet을 입력시키고 실행시켜준다
servlet의 기록을 찾아서 controller( 지금 페이지? 위의 내용) 을 받아서 처리하게 된다.
제어의 역전 IoC라고 하는데
톰캣이 서블렛을 인식할 수 있도록 연결시켜주기 위한 것임
extenteds로 HttpServlet을 상속받아쓰면됨
2)
doGet과 doPost는
우클릭 - 소스 - 오버라이드 어쩌고 적힌거 눌려서 쓰면 됨
3)
RequestDispatcher는
home.jsp와 결과를 처리 할 result.jsp를
forward 시키기위해서
라이브러리에서 import시킨 함수이다.
4) 결과 출력
<ul>
<li><%=request.getParameter("name") %></li>
<li><%=request.getAttribute("msg") %></li>
</ul>
멘붕타는 구간이라는데
멘붕타는 구간 맞는거 같다...
알수없는 내용들이 내 머릿속으로 들어온다..
머릿속에 똑똑 하고 노크하더니
"누구세요" 묻는 와중에 경찰이라면서 문따고 들어와
집에 있는 물건들 다 뒤적거리고
총을 내 머리에 대면서 이게뭔지 아냐며
뭔가 적힌 종이를 내미는데
"아뇨 몰라요" 라고 대답하니
정말 모르는것같군 하면서 다 나가버리고
울면서 흩어진 내 물건들 주섬주섬... 정리하는 모습임