*예제
main.jsp 생성(로그인 여부에 따라 loginForm.jsp / select.jsp로 forward)
loginForm.jsp에서 submit하면 dologin.jsp로 이동
로그인 성공이면 쿠키에 정보 남기고 loginSucc.jsp
실패면 loginFail.jsp
select.jsp에서는 선택하고 submit하면
view.jsp, view.jsp에서는 선택된 값에따라 a,b,c.jsp로 forward
모든화면에는 처음으로 돌아가는 버튼 달기.
select.jsp에는 로그아웃버튼을 달아서 눌리면 쿠키의 정보를 삭제하고 다시
main.jsp로 이동.
말순서데로 예제를 만들어보면
*main.jsp
<body>
<%
String URL = "";
Cookie[] cookies = request.getCookies();
if(cookies != null && cookies.length > 0)
{
for(int i = 0; i < cookies.length; i++)
{
if(cookies[i].getName().equals("id"))
{
URL = "select.jsp";
break;
}
else
URL = "loginForm.jsp";
}
}
else
{
URL = "loginForm.jsp";
}
%>
<jsp:forward page="<%=URL %>"></jsp:forward>
</body>
주의할점은 경로 지정해주는것!
*loginForm.jsp
<body>
<table width="300" border="1">
id / pw 입력후 로그인 버튼을 누르세요.
<form action="/JSP_Basic_Ex2/ex/dologin.jsp" method="post">
<tr>
<td width="200">아이디 : <input type="text" name="id" size="10"><br>
비밀번호 : <input type="password" name="pw" size="10">
</td>
<td width="50"><input type="submit" value="login"><br>
<input type="reset" value="reset">
</td>
</tr>
</form>
</table>
<input type="button" value="처음으로"
onclick="location.href='/JSP_Basic_Ex2/ex/main.jsp'">
</body>
table 이나 tr td 이런건 조금이라도 꾸며보려고 발악한 것이니 무시하셔도됩니다.
*dologin.jsp
<body>
<%
request.setCharacterEncoding("UTF-8");
String id = request.getParameter("id");
String pw = request.getParameter("pw");
String url = "";
if(id != null && pw != null && id.equals(pw))
url = "loginSucc.jsp";
else
url = "loginFail.jsp";
%>
<jsp:forward page="<%= url %>"></jsp:forward>
</body>
*loginSucc.jsp
<body>
로그인 성공
<%
request.setCharacterEncoding("UTF-8");
String id = request.getParameter("id");
Cookie cookie = new Cookie("id", id);
response.addCookie(cookie);
%>
<input type="button" value="처음으로"
onclick="location.href='/JSP_Basic_Ex/ex/main.jsp'">
</body>
성공했을 시에는 쿠키에 저장해줘야 하기때문에 여기서 쿠키에 저장해주거나, 위에 if문에서 쿠키에 저장해주면 된다!
*loginFail.jsp 확인용으로 간단하게.
<body>
로그인 실패
<br>
<input type="button" value="처음으로"
onclick="location.href='/JSP_Basic_Ex/ex/main.jsp'">
</body>
*select.jsp
<body>
<form action="view.jsp">
보고싶은 페이지 선택<select name="code">
<option value="A">A페이지</option>
<option value="B">B페이지</option>
<option value="C">C페이지</option>
</select><input type="submit" value="이동">
</form>
<br>
<%
String name = "";
Cookie[] cookies = request.getCookies();
for(Cookie c : cookies)
{
if(c.getName().equals("id"))
name = c.getValue();
}
%>
<%= name %>님 안녕하세요?
<br>
<form action="/JSP_Basic_Ex/ex/deleteCookie.jsp" method="post">
<tr>
<td width="50"><input type="submit" value="로그아웃">
</td>
</tr>
</form>
<input type="button" value="처음으로"
onclick="location.href='/JSP_Basic_Ex/ex/main.jsp'">
</body>
이제 로그인을 성공하게 되면 쿠키에 저장되기때문에 main으로 가려고 해도 계속
select.jsp 로 오게 된다.
로그아웃 submit을 누르면 deleteCookie.jsp
A,B,C 중 아무거나 선택해서 submit 하면 view.jsp
*view.jsp
<body>
<%
String code = request.getParameter("code");
String viewPageURI = "";
if(code.equals("A"))
viewPageURI = "a.jsp";
else if(code.equals("B"))
viewPageURI = "b.jsp";
else if(code.equals("C"))
viewPageURI = "c.jsp";
%>
<jsp:forward page="<%= viewPageURI %>"></jsp:forward>
</body>
어떤걸 선택하냐에 따라 조건문을 걸어주고 forward 주소값을 넣어준다.
a,b,c 선택에 따라 forward된 a,b,c.jsp 는 간단하게 loginFail.jsp 처럼
a를선택하였습니다. 이런식으로 작성해주자. 매우 간단한 것이므로 생략하겠습니다.
*deleteCookie.jsp
<body>
<%
request.setCharacterEncoding("UTF-8");
Cookie[] cookies = request.getCookies();
if(cookies != null && cookies.length > 0)
{
for(int i = 0; i < cookies.length; i++)
{
if(cookies[i].getName().equals("id"))
{
Cookie cookie = new Cookie("id", "");
cookie.setMaxAge(0);
response.addCookie(cookie);
}
}
}
%>
로그아웃
<br>
<%
response.sendRedirect("/JSP_Basic_Ex/ex/main.jsp");
%>
</body>
* 쿠키를 삭제하는것이 아니고 원래 있던 K에 대해 유효시간이 0인 쿠키를 새로 발급하는것이다.
예제를 돌려보면서 실험해보자.
'[JSP]' 카테고리의 다른 글
[JSP]10월 28일 JSP에서 DB(데이터베이스)에 저장하기 예제. (0) | 2015.10.30 |
---|---|
[JSP]10월 28일 CookieBox 만들기예제 (0) | 2015.10.30 |
[JSP]10월 27일 쿠키(Cookie), 쿠키 만들기, 쿠키읽기, 쿠키삭제 예제 (0) | 2015.10.29 |
[JSP]10월 27일 forward,form을 이용한 로그인 예제 (0) | 2015.10.29 |
[JSP]10월 26일 자바 서블릿(JAVA Servlet)만드는방법, web.xml (0) | 2015.10.26 |