Request,Response

momomoki·2023년 11월 5일
0

Request, Response?


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의 메서드들을 확인할 수 있으며 또한 이것을 활용하여 그안에 데이터를 활용할수있게된다.!!

profile
얍얍엽엽욥욥

0개의 댓글