" 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 |