Request(요청), Response(응답)이란?? 말 그대로 요청에 대한 응답을 말한다.. 솔직히 더 필요한가 싶다..
네트워크에 관해서 딮하게 배워서 멋있게 설명을 하고 싶다.. 근데 네트워크 진짜 진짜 너무 어렵다. 코딩을 하면서 천천히 해볼 생각이긴한데 정말 네트워크라는 과목을 배우기 위해서는 큰 결심이 필요하다. 근데 너무 중요하단건 알고있다. 그래도 간단하게라도 알아보자.
저는 아직 스프링을 배우지 않아 서블릿과jsp를 사용했습니다.
예시코드
<div class="container">
<div class="row d-flex justify-content-center">
<div class="col-8">
<h2 class="mb-5 mt-5">게시판</h2>
<form action="../board/write-process" method="post">
<input type="hidden" name="loggedID" value="${loggedID }">
<input type="hidden" name="loggedName" value="${loggedName }">
<div class="mb-3">
<label for="title" class="form-label">title</label> <input
type="text" class="form-control" id="title" name="title"
placeholder="제목을 쓰세요">
</div>
<div class="mb-3">
<label for="content" class="form-label">content</label>
<textarea class="form-control" id="content" name="content" rows="8"></textarea>
</div>
<div class="mb-3">
<label for="password" class="form-label">password</label> <input
type="password" class="form-control" id="password" name="password"
placeholder="비밀번호">
</div>
<div class="d-flex justify-content-center mt-5 mb-5">
<button class="btn btn-primary">등록</button>
<button type="reset" class="btn btn-secondary mx-1">취소</button>
</div>
</form>
</div>
</div>
</div>
위 코드는 수업시간에 사용했던 코드를 가져왔습니다. 간단하게 설명을 위해서 등록 버튼을 누르게 되면 form태그의 action에 연결된 주소로 데이터들이 날라가게 되었으며 각 태그 안에 name을 통해 그 주소로 요청데이터를 넘길 수 있습니다.
그럼 서블릿 요청 받는곳의 코드를 보겠습니다.
예시코드
@WebServlet("/board/write-process")
public class BoardWriteProcess extends HttpServlet {
private static final long serialVersionUID = 1L;
public BoardWriteProcess() {
super();
}
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
String password = request.getParameter("password");
String title = request.getParameter("title");
String content = request.getParameter("content");
System.out.println(content);
Board boardDto = new Board();
HttpSession session = request.getSession();
boardDto.setId((String)session.getAttribute("loggedID"));
boardDto.setName((String)session.getAttribute("loggedName"));
boardDto.setTitle(title);
boardDto.setContent(content);
boardDto.setPassword(password);
BoardDao boardDao = new BoardDao();
int result = boardDao.insertBoard(boardDto);
if(result>0) {
response.sendRedirect("../board/list");
} else {
ScriptWriter.alertAndBack(response, "서버오류입니다.");
}
}
}
위 코드를 보면 request안에 getParameter로 어떤식으로 데이터들이 넘어 오는지 확인이 됩니다. request안에는 더 많은 정보들이 담겨있습니다. 가장 쉽게 보는것은 f12에 네트워크 안에서 볼 수 있습니다. 그리고 request안에 있는 데이터를 사용하여 그 결과를 response안에 담아서 request가 온 곳에 다시 전달을하면 끝이난다. 스프링을 안배운 저는 여기서 어떻게 return 값을 줄까 이게 좀 많은 고민이였습니다. 여기서는 나온건 아니지만 setattribute를 사용해서 return 값을 전달해줬습니다. 그냥 return이거면 될 줄 알았습니다.. 이렇게 return값을 성공인지 실패인지 담아서 요청이 온 곳에 주면 거기서 사용을 하게된다.
이것 request객체와 response객체 안에 포함된 것들의 표이다.!
이 표를 보면 request와 response의 메서드들을 확인할 수 있으며 또한 이것을 활용하여 그안에 데이터를 활용할수있게된다.!!