response 기본 객체
- 웹 브라우저에 전송하는 응답 정보 설정
- 주요 기능
1) 헤더 정보 입력
2) 리다이렉트 처리
- 기능 메서드
1) addDateHeader(String name, long date)
name 헤더에 date를 추가 처리 1970/1/1 기준으로 1/1000초 단위 설정
2) addHeader(String name, String value)
name 헤더에 value를 값으로 추가한다
3) addIntHeader(String name, int value)
name 헤더에 정수값 value를 추가한다
4) setDateHeader(String name, long date)
name 헤더의 값을 date로 지정한다. date는 1970년1월1일 이후 흘러간 시간을 1/1000초 단위로 나타낸다
5) setHeader(String name, String value)
name 헤더의 값을 value로 지정한다.
6) setIntHeader(String name, int value)
name 헤더의 값을 정수 값 value로 지정한다
- 리다이렉트
1) 특정 페이지로 이동하라고 웹 브라우저에 응답
2) 서버 안에서 명령문으로 특정 페이지로 이동 처리
response.sendRedirect(String lacation)
요청에 의해서 데이터를 전송하고 그 전송된 내용을 판단해서 페이지가 결정될 때
ex) 로그인, DB 내용에 따라 페이지 결정
cf) location.href="이동페이지" 브라우저에서 특정한 페이지로 이동처리
화면에 클릭하여 페이지 이동, 메뉴이동은 대부분 js의 a href로 처리
단계별 처리되는 내용
- a href, location.href
1) 페이지 이동
2) 클라이언트 단에서 페이지 이동 처리
- form 객체를 통해서 처리되는 내용
1) 페이지 이동
2) 요청값을 함께 전달 (클라이언트==>서버)
response.sendRedirect()
1) 페이지 이동 (서버 내부에서 조건에 따른 처리)
- session 범위에 따른 처리
1) session값과 함께 전송
cf) location.href="이동페이지" 브라우저에서 특정한 페이지로 이동처리 화면에 클릭하여 페이지 이동, 메뉴이동은 대부분 js, a href로 처리
ex) form화면에 아이디 패스워드를 입력해서 해당 서버로 이동.
DB에 저장된 아이디/비밀번호 일치하면 메인페이지 이동(a09_main.jsp), 그렇지 않으면 현재페이지에 있게 처리
<h3>로그인</h3>
<form>
아이디:<input type="text" name="id">
비밀번호:<input type="password" name="pass">
<input type="submit" value="login">
</form>
<%
String id = request.getParameter("id");
String pass = request.getParameter("pass");
boolean isFail = false;
if(id!=null&&pass!=null){
// 서버단 로직 처리
A06_PareparedDao dao = new A06_PareparedDao();
// 데이터가 있을 때만 이동 그 외는 이동 되지 않게 처리
if(dao.login(id, pass)){
// 서버단에서 db나 자바를 통해 데이터를 가져오는 경우는
// 페이지 이동시에 response.sendRedirect를 사용
response.sendRedirect("a09_main.jsp");
}else{
isFail=true;
}
}
%>
<script type="text/javascript">
var isFail = <%=isFail%>
if(isFail){
alert("로그인실패\n인증된 아이디가 아닙니다.")
}
</script>