개요
- 이전에는 기초적인 Java,Servlet,xml을 활용한 매핑 구성 방식에 대해 알아 보았다.
- 오늘은 클라이언트 - 서버구조의 컨트롤러의 역할을 수행시켜보자
게시글 생성 프로젝트
파일을 먼저 만들어주자


- 음 일단 잘 나오는모습이다
- 화면을 좀 꾸며주도록 하자
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<title>게시글 생성 페이지</title>
<link rel="stylesheet" type="text/css" href="css/style.css">
</head>
<body>
<div class="container">
<div class="card">
<h1>📌 게시글 생성</h1>
<p>게시글을 작성하려면 아래 내용을 입력하세요.</p>
<form action="board-post" method="post">
<label for="title">제목</label>
<input type="text" id="title" name="title" placeholder="제목을 입력하세요" required>
<label for="content">내용</label>
<textarea id="content" name="content" placeholder="내용을 입력하세요" required></textarea>
<button type="submit">게시글 생성</button>
</form>
</div>
</div>
</body>
</html>

web.xml
<servlet>
<servlet-name>boardPost</servlet-name>
<servlet-class>com.example.legacyjavapractice.servlet.BoardServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>boardPost</servlet-name>
<url-pattern>/board/board-post</url-pattern>
</servlet-mapping>
- url-pattern시 상대경로가 아닌 항상 절대경로로 표시해주어야한다
- /board/board-post의 URL로 post 메서드가 요청되었을떄, 서블릿은 서블릿 class의doPost()를 찾아서 요청하기 떄문에, 하나의 클래스안에 doPost()가 두개 존재할 수 없다.

클라이언트로부터의 데이터를 받아보자
- 사실 간단하다, 이미 doPost에서 req,res Servlet을 인자로 받고있기때문에 이를 활용하면된다
public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
request.setCharacterEncoding("UTF-8");
response.setContentType("text/html;charset=utf-8");
String title = request.getParameter("title");
String content = request.getParameter("content");
System.out.println(title);
System.out.println(content);
}

public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
request.setCharacterEncoding("UTF-8");
response.setContentType("text/html;charset=utf-8");
String title = request.getParameter("title");
String content = request.getParameter("content");
PrintWriter out = response.getWriter();
out.println("<h1> " + title + "</h1>");
out.println("<p> " + content + "</p>");
}

TMI
- 상대경로
- 절대경로
- 자신이 지정한 경로로만 가능하게함
- 현재 URL과 상관없이 자신이 지정한 URL로 고정된 값이 들어감
다음시간
- 다음 시간에는 JDBC, MyBatis를 활용하여 데이터베이스에 저장하는 작업을 해보자