RequestDispatcher

서울IT코드정리 /kyChoi·2021년 10월 28일
0

JSPMVC강의

목록 보기
1/3

클라이언트에게 받은 요청에 응답한다.
요청은 servlet으로 들어가는데, RequestDispatcher(interface) 객체를 만들고(request가 가짐) request.getRequestDispatcher("Login.jsp");로
객체가 어디로 향할지 저장한다

forward 메소드로 요청에 해당되는 .jsp 로 값을 넘겨준다

로직을 보면서 이해 하자

public void reqPro(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		String id = request.getParameter("id");
		String pass = request.getParameter("password");
		RequestDispatcher dis = request.getRequestDispatcher("LoginProc.jsp");
		request.setAttribute("id", id); //request 객체에 데이터를 저장
		request.setAttribute("pass", pass);
		dis.forward(request, response);
	}

위 로직은 Servlet으로 dopost 와 doget이 무조건 reqPro로 오게 만들었다
loginForm에서 만든 id랑 password를 받는다
request.setAttribute("id",id);
request.setAttribute("pass",pass);
request에 id랑 비밀번호를 저장하자
RequestDispatcher 객체를 request.getRequestDispatcher(".jsp")로 만든다
dis라고 하자. dis.forward(request,response);
라 하면 request에 저장된 id와 비밀번호가 dis에 저장된 .jsp로 간다

url 호출할때, .jsp 를 호출하는게 아니에요~ mvc model2 방법은 controller를 호출 합니다~

회원가입 폼

MemberJoin2.jsp

<center>

<h2>회원 가입 양식</h2>
<form action ="MProc2" method="post"> //web.xml에 ulr-mapping 수정
<table width="400" border="1">
	<tr height="40" align="center">
	<td  width="150" align="center">아이디</td>
	<td width="250"><input type="text" name="id"></td>
	</tr>
	<tr height="40" align="center">
	<td  width="150">패스워드</td>
	<td  width="250"><input type="password" name="password"></td>
	</tr>
	<tr height="40" align="center">
	<td  width="150">이메일</td>
	<td  width="250"><input type="email" name="email"></td>
	</tr>
	<tr height="40" align="center">
	<td  width="150">전화</td>
	<td  width="250"><input type="tel" name="tel"></td>
	</tr>
	<tr height="40" align="center">
	<td width="150">주소</td>
	<td  width="250"><input type="text" name="address"></td>
	</tr>
	<tr height="40  ">
	
	<td  colspan="2"><input type="submit" value="회원가입"></td>
	
	</tr>

</table>
</form>

</center>

클라이언트가 정보를 서버에 보냅니다

정보는 Controller에 와서 .jsp(뷰)로 뿌려 집니다

Controller

	protected void reqPro(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		MemberBean bean = new MemberBean();
		bean.setId(request.getParameter("id"));
		bean.setPassword(request.getParameter("password"));
		bean.setEmail(request.getParameter("email"));
		bean.setTel(request.getParameter("tel"));
		bean.setAddress(request.getParameter("address"));
		
		request.setAttribute("bean", bean);
		
		RequestDispatcher dis = request.getRequestDispatcher("MemberView.jsp");
		dis.forward(request, response);
	}

request.getParameter("id") 로 받아서 다시 setAttribute 하고 보내면
로직이 길어서 일괄처리 해줍니다.

MemberBean bean = new MemberBean() 을 만들어서
받은 정보를 setter에 넣어주고

request.setAttribute()로 bean 을 담습니다.
그리고 뷰 로 뿌려줍니다~

한글처리 안되어 있다면
//한글처리
request.setCharacterEncoding("utf-8");
넣어 주세요~

profile
건물주가 되는 그날까지

0개의 댓글