오늘의 노래 추천 🎤
- 아티스트
- 아이유
- 앨범
- The Winning
- 발매일
- 1970.01.01
DAY 4
ㅡ 랜덤뽑기 실습 ㅡ
Servlet 객체 생성부터 소멸 과정
<body align="center">
<h1>랜덤 당첨 게임</h1>
<form action="Ex03createInput.jsp">
<fieldset>
<legend>랜덤뽑기</legend>
<table align="center">
<tr>
<td><input type="number" min="1" max="5" name="num"></td>
</tr>
<tr>
<td><input type="submit" value="생성하기"></td>
</tr>
</table>
</fieldset>
</form>
</body>
<body align="center">
<% int n = Integer.parseInt(request.getParameter("num")); %>
<h1>랜덤 당첨 게임</h1>
<form action="Ex03randomOutput.jsp">
<fieldset>
<legend>랜덤뽑기</legend>
<table align="center">
<tr>
<td>주제</td>
<td><input type="text" name="topic"></td>
</tr>
<% for(int i=1; i<=n; i++){%>
<tr>
<td>아이템</td>
<td><input type="text" name="item"></td>
</tr>
<%} %>
<tr>
<td><input type="submit" value="랜덤뽑기"></td>
</tr>
</table>
</fieldset>
</form>
</body>
<body align="center">
<% String topic = request.getParameter("topic"); %>
<% String[] items = request.getParameterValues("item"); %>
<% Random ran = new Random(); %>
<% String ranItem = items[ran.nextInt(items.length)]; %>
<h1>랜덤 당첨 게임</h1>
<form action="Ex03randomOutput.jsp">
<fieldset>
<legend>랜덤뽑기결과</legend>
<table align="center">
<tr>
<td><%=topic %></td>
</tr>
<tr>
<td><%=ranItem %></td>
</tr>
</table>
</fieldset>
</form>
</body>
ㅡ HttpServletResponse ㅡ
Servlet 객체 생성부터 소멸 과정
response.sendRedirect ()
ㅡ> 현재 실행중인 JSP 페이지의 실행을 중단하고 다른 웹 페이지가 대신 호출되는 기능
<body>
<%
System.out.print("re1");
response.sendRedirect("http://www.naver.com");
System.out.print("re2");
%>
</body>
re1, re2 둘 다 실행
sendRedirect 는 요청과 응답이 2번
먼저 경로를 알려주고 두번째로 요청 경로로 연결해줌
ㅡ Redirect 선택 실습ㅡ
<body>
<form action="Ex06moveURL.jsp">
<select name="url">
<option value="naver">네이버
<option value="daum">다음
<option value="google">구글
</select>
<input type="submit" value="제출">
</form>
</body>
<body>
<%
String url = request.getParameter("url");
if(url.equals("naver")){
response.sendRedirect("https://www.naver.com");
}else if(url.equals("daum")){
response.sendRedirect("https://www.daum.com");
}else if(url.equals("google")){
response.sendRedirect("https://www.google.com");
}
%>
</body>
ㅡ Login jsp 실습ㅡ
<style>
fieldset{
border:1px dotted black;
width: 300px;
}
</style>
<body align="center">
<form action="Ex07Login.jsp">
<fieldset>
<legend>로그인</legend>
<table align="center">
<tr>
<td><input type="text" name="id" placeholder="아이디를 입력하세요"></td>
</tr>
<tr>
<td><input type="password" name="pw" placeholder="비밀번호를 입력하세요"></td>
</tr>
<tr><td><input type="submit" value="LOGIN"></td></tr>
</table>
</fieldset>
</form>
</body>
<body>
<%
String id = request.getParameter("id");
String pw = request.getParameter("pw");
if(id.equals("smart") && pw.equals("123")){
response.sendRedirect("Ex07LoginSuccess.jsp");
}else {
response.sendRedirect("Ex07LoginFail.jsp");
}
%>
</body>
RequestDispatcher : 클라이언트로부터 최초의 요청을 원하는 자원으로 넘기는 메서드 등을 가짐
foward : 다음페이지로 request, response 를 넘기는 역할 ( 요청이 1번 )
<body>
<%
String id = request.getParameter("id");
String pw = request.getParameter("pw");
if(id.equals("smart") && pw.equals("123")){
//response.sendRedirect("Ex07LoginSuccess.jsp");
// RequestDispatcher : 클라이언트로부터 최초에 들어온 요청을 원하는 자원으로 넘기는 메서드 등을 가짐
RequestDispatcher rd = request.getRequestDispatcher("Ex07LoginSuccess.jsp");
// forward : 다음페이지로 request, response 를 넘기는 역할
rd.forward(request, response);
}else {
response.sendRedirect("Ex07LoginFail.jsp");
}
%>
</body>
ㅡ sendRedirect 와 forward 의 차이ㅡ
* DB 에 변화가 생기는지 아닌지
ㅡ 쿠키(cookie)와 세션(session) ㅡ
연결을 계속 유지한다면 클라이언트가 늘어남에 따라 불필요한 서버자원 소모
ㅡ 쿠키(cookie) ㅡ
cookie : client (browser)에 저장되는 키와 값이 들어있는 작은 데이터 파일
Cookie cookie = new Cookie ( "test", "testCookie" )
ㅡ 쿠키 객체 생성, 만료 기간 설정, 클라이언트 응답 ㅡ
Cookie, setMaxAge, response.addCookie
1. 쿠키 객체 생성
2. 만료 기간 설정
3. 클라이언트로 쿠키 응답
ㅡ 쿠키 불러오기 name, value 출력 ㅡ
request.getCookie, for문
4. 생성된 쿠키 모두 가져오기
5. 각 쿠키의 name 과 value 확인
ㅡ 쿠키 삭제 ㅡ
setMaxAge, addCookie

BYE