본문 바로가기

web../servlet/jsp

HttpServletRequest 객체 & HttpServletResponse 객체


" HttpServletRequest 객체 "


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

String color = request.getParameterValues("color")[0]; //체크박스 같은 경우.

String[] color = request.getParameterValues("color"); //체크박스 같은 경우.

        > 클라이언트 플랫폼 정보 및 브라우저 정보 : String client = request.getHeader("User-Agent");

> Request에 관련된 쿠키 : Cookie cookies[] = request.getCookies();

> 클라이언트의 세션 정보 : HttpSession session = request.getSession();

> Request의 HTTP메소드 : String theMethod = request.getMethod();

> Request의 입력 스트림 : InputStream in = request.getInputStream();

        >      Request에 있는 입력스트림 사용시기:  대부분 몸체에서 뽑아내는 정보는 파라메터 관련정보이다. 

                                                                             하지만 문장이나 바이 너리 컨텐츠를 포함하고 있는 Request 

                                                                             몸체를 다루 는 서블릿도 가능하다.이를 위해서는 getReader이

                                                                             나 getInputStream 메소드를 사용하여야 한다. 

                                                                             물론 이들 스트림에는 Request헤더는 빼고 몸체만 들어 있다.





" HttpServletResponse 객체 "  


클라이언트에 데이터를 전송하기 위하여 사용. 이를 위하여 Response객체의 setContentType() 과 getWriter()메소드를 이용한다.

그 다음에 html을 작성하거나 다른 컨텐츠를 기록하거나 하는 I/O작업을 하면됨. 이 외에도 헤더 정보를 설정하거나 ,오류를 발생시키거나, 쿠키를 추가할 때도 Response 객체를 사용한다.

> jar파일을 전송한다면..

public class CodeReturn extends HttpServlet{

public void doGet(HttpServletRequest request, HttpServletResponse reponse) throws IOException{

response.setContentType("application/jar");    //MIME타입. 외우지말자

ServletContext ctx = getServletContext();

InputStream is = ctx.getResourceAsStream("/book.jar");  // 이 코트를 풀어보면 입력스트림으로  book.jar을 주세요.

                                                                                                // 인자값은 반드시 /로 시작.

OutputStream os = response.getOutputStream();

byte[] bytes = new byte[1024];

while(true){

int count = is.read(bytes);

out.write(bytes,0,count);

if(bytes == -1){

break;

}

}

os.flush();

os.close();

}


[참고] 웹 서버에 확장자를 등록해 두면 사용자가 링크만 클릭하면 다운이 된다. 하지만 이런짓을 하는 이유는

          데이터를 내려보내기 전에 뭔가 할일이 있을 경우에..


Response객체에 헤더를 추가할 수 있다. 

-> response.addHeader("foo","bar"); //값을 하나 더 추가할 때,

-> response.setHeader("foo","bar"); //이미 존재하는 값을 덮에 쓸 때,

-> response.setIntHeader("foo",42);


--> response.setContentType("text/html") 을 response.setHeader("content-type","text/html") 로 할 수도 있다. 

                                                            이런짓 하지말자.편 하게 살자. 


Response의 sendRedirect : 클라이언트에서 다른 페이지 호출 하도록 한다. response.sendRedirect("/foo/test.html");   

                                                                                                        //인자는 오직 String값만..URL값은 에러.



'web.. > servlet/jsp' 카테고리의 다른 글

ServletContextListener 란?  (0) 2013.01.09
ServletConfig & ServletContext  (0) 2013.01.09
서블릿의 생명주기 & 멱등  (0) 2013.01.09
HTML과 HTTP  (0) 2013.01.09
J2EE 란?? 컨테이너??  (0) 2013.01.08