aaa 5

Programming Learning Diary

RequestDispatcher 객체 //데이터의 교류

페이지 정보

작성일 19-11-19 20:36

본문


1.서블릿 간의 데이터 전송

RequestDispatcher 의 include는 

다른 클래스의 데이터를가져오는 해주는 기능을한다.  


RequestDispatcher dispatcher = request.getRequestDispatcher("/Today");

dispatcher.include(request, response);


다음 객체를 해석해보자면 'Root경로/Today 에 있는 파일들을 읽어서 보여줘'이다



2.서블릿 에서 jsp 파일로 데이터 전송

다음 예제는 서블릿에서 작성된 내용이다. 작성된 데이터를 지정한 파일에 보내달라는 요청이다.


int total=0;

for(int i=1;i<100;i++) {

total+=i;

}

request.setAttribute("result", total);

for(int i=1;i<200;i++) {

total+=i;

}

request.setAttribute("result2", total);

RequestDispatcher rd =request.getRequestDispatcher("sum100_01.jsp");

rd.forward(request, response);

jsp 파일에서는 ${'값'} 의 형식으로 받을 수 있다. 



3.jsp 파일에서 서블릿으로 데이터전송 


jsp 파일에서는 form 의 action 속성을 이용하여 데이터를 전송한다


<form action="response_01S" method="post">

  사이트명 : <input type="text" name="sitename">

  <input type="submit" value="확인">(ex:naver,daum,google)

</form>



해당 내용을 받은 response_01S 서블릿 파일에서는 다음과 같이 받을 수 있다


protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {

// TODO Auto-generated method stub

response.setContentType("text/html;charset=utf-8");

request.setCharacterEncoding("utf-8");

String sitename =request.getParameter("sitename");

switch(sitename) {

case "naver":

response.sendRedirect("https://www.naver.com");break;

case "daum":

response.sendRedirect("https://www.daum.net");break;

case "google":

response.sendRedirect("https://www.google.com");break;

default:

response.sendRedirect("https://www.yahoo.com");break;

}

}

form 의 method가 post 였기 때문에  서블릿의 doPost 메서드에서 받아준다 다음 request.getParamete() 메서드를 이용해 값을 전달받아 진행한다.

댓글목록

등록된 댓글이 없습니다.