-
jsp jsp~
1)
나이를 입력하면 성인인지, 미성년자인지 가름할 수 있는 페이지를 만들어 보려고 했다.
우선, 나이를 입력하는 폼을 만들어 주고,
<%@ page language="java" contentType="text/html; charset=UTF-8"pageEncoding="UTF-8"%><%int age = Integer.parseInt(request.getParameter("age"));//age를 정수로 변환해서 가지고 온다.if(age >= 20) {//내장객체 response가 제공하는 sendRedirect()메소드를 통해//원하는 페이지로 강제 이동할 수 있습니다.//괄호 안에 이동시킬 페이지의 URL을 적으면 됩니다.response.sendRedirect("res_basic_ok.jsp");}else{response.sendRedirect("res_basic_no.jsp");}%>"res_basic_ok.jsp" 에는 당신은 성인입니다, 를 res_basic_no.jsp에는 당신은 미성년자입니다를 입력해 주었다.
2)
태그에 내부 스타일 시트 방식으로 디자인을 적용하는 방법!
-선택자(selector)를 사용하여 지목해야 합니다.
(위에서 미리 디자인을 지정해 놓고, 선택자를 이용해서 부여하는 방식)
- 클래스 선택자: .클래스이름 -> 공통된 디자인을 적용할 때 사용.
- 아이디 선택자: #아이디이름 -> 고유한 디자인을 적용할 때 사용.
- 태그 선택자: 태그이름 -> 해당 태그에 모두 디자인을 적용할 때 사용.예전에 배운 CSS 개념도 확실하게 다시 정리!
*CSS (Cascade Style Sheet)
- CSS는 HTML에 디자인 요소를 적용하는 언어입니다.
- CSS를 HTML에 적용하는 방법은 크게 3가지가 있습니다.
1. 인라인 스타일 시트 - 태그 내부에 해당 태그에만 적용되는 스타일을 지정.
2. 내부 스타일 시트 - 태그의 스타일을 HTML문서의 head태그에 따로 지정.
3. 외부 스타일 시트 - 외부에 .css파일을 따로 만들어서 디자인 소스만 모두 지정한 뒤
나중에 HTML 문서 내부에서 링크를 통해 로딩.실습은 이런 방식으로!
- 아이디가 'aaa1234', 비밀번호는 'aaa1111'이라고 가정합니다.
- 아이디가 일치하지 않는 경우 "res_id_fail.jsp"로 리다이렉팅해서
"존재하지 않는 회원입니다." 를 브라우저에 출력하시고 다시 로그인 폼으로 돌아갈 수 있는
링크를 제공하세요.
- 아이디가 일치할 경우, 비밀번호도 확인해서 비밀번호가 틀렸을 경우
"res_pw_fail.jsp"로 리다이렉팅해서, "비밀번호가 틀렸습니다." 를 출력 후
폼 링크를 제공하세요.
- 아이디, 비밀번호가 모두 일치하는 경우 "res_welcome.jsp"로 리다이렉팅해서
"회원님 반갑습니다!" 를 출력하세요.<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%
String id = request.getParameter("id");
String pw = request.getParameter("pw");
if(id.equals("aaa1234")) {
if(pw.equals("aaa1111")) {
response.sendRedirect("res_welcome.jsp");
} else {
response.sendRedirect("res_pw_fail.jsp");
}
} else {
response.sendRedirect("res_id_fail.jsp");
}
%>res_welcome.jsp 페이지는 로그인 성공 시 들어가는 페이지로, <%=id%> 님 환영합니다! 가 뜨게 했다.
res_pw_fail.jsp 페이지에는 비밀번호가 틀렸을 때 들어가는 페이지로, 비밀번호가 올바르지 않습니다! 가 뜨게 했다.
res_id_fail.jsp 페이지에는 로그인 실패 시 들어가는 페이지로 존재하지 않는 아이디입니다. 가 뜨게 했다.
3) cookie!
인터넷 브라우저는 사용자가 방문한 웹주소를 지우지 않고 기억했다가 다음에 사용자가 이전에 방문한 주소를 몇 자 입력하면 나머지를 기억하여 모두 나타내어 사용자가 나머지 주소를 입력하지 않아도 되도록 한다. 그렇게 기억된 이전에 방문했던 주소를 쿠키라고 하고, 쿠키를 통해 다시 방문할 때는 주소를 다 입력하지 않아도 되며, 아이디나 비밀번호도 치지 않아도 되는 것이다.쿠키 생성 방법1. 쿠키 객체를 생성합니다. 생성자의 매개값으로 쿠키의 이름과 저장할 데이터를 입력합니다. (String)<% String id = "abc1234";Cookie nameCoo = new Cookie("name_cookie", "홍길동");Cookie idCoo = new Cookie("id_cookie", id);//2. 쿠키 클래스의 setter 메소드로 쿠키의 속성을 설정합니다.nameCoo.setMaxAge(60 * 60); //쿠키의 유효 시간 설정(초): 1시간 -> 60 * 60idCoo.setMaxAge(20);//3. http 응답시 response 객체에 생성된 쿠키를 탑재하여 클라이언트로 전송합니다.response.addCookie(nameCoo);response.addCookie(idCoo);%>클라이언트에서 전송된 쿠키를 가져오는 것을 설계.
<%@ page language="java" contentType="text/html; charset=UTF-8"pageEncoding="UTF-8"%><%Cookie[] cookies = request.getCookies();boolean flag = false; //쿠키의 존재 유무를 파악할 변수입니다.if(cookies != null){for(Cookie c : cookies){if(c.getName().equals("id_cookie")){out.print("<h3>아이디 쿠키가 존재합니다.</h3>");String value = c.getValue(); //쿠키 내부의 값을 얻어오는 메소드 getValue()out.print("쿠키의 값: " + value);flag = true;break;}}if(!flag){out.print("<h3>아이디 쿠키가 존재하지 않습니다.</h3>");}}%>- 생성된 login_cookie 쿠키를 검색하여 쿠키가 이미 존재한다면 로그인 폼 대신 브라우저에 "이미 로그인한 사용자입니다." 를 출력 후 welcome 페이지로 이동할 수 있는 링크를 제공했다.- login_cookie가 없는 사용자는 로그인 입력창이 등장하도록 구성했다.<%@ page language="java" contentType="text/html; charset=UTF-8"pageEncoding="UTF-8"%><%Cookie[] cookies = request.getCookies();boolean flag = false;String userId = "";if(cookies != null) {for(Cookie c : cookies) {if(c.getName().equals("login_cookie")) {flag = true;break;}if(c.getName().equals("remember_id")){userId = c.getValue();//로그인 쿠키와 별개입니다.}}}%><%@ page language="java" contentType="text/html; charset=UTF-8"pageEncoding="UTF-8"%><%request.setCharacterEncoding("utf-8");String id = request.getParameter("id");String pw = request.getParameter("pw");if(id.equals("abc1234") && pw.equals("aaa1111")){Cookie loginCoo = new Cookie("login_cookie", id);loginCoo.setMaxAge(5);response.addCookie(loginCoo);if(request.getParameter("id_remember") != null){ //null이 중요한 것이 아니고, '아이디 기억하기'를 체크를 했는지가 궁금하기 때문에.Cookie idMemory = new Cookie("remember_id", id);idMemory.setMaxAge(30);response.addCookie(idMemory); //<- idMemory 쿠키를 태우겠다!//response 명령에 태워서 응답이 나갈 때 보내버리겠다.}response.sendRedirect("cookie_welcome.jsp");}else{response.sendRedirect("cookie_login.jsp");}%>이렇게 해 주고, cookie_welcome.jsp도 만들어 주었다.<%@ page language="java" contentType="text/html; charset=UTF-8"pageEncoding="UTF-8"%><%Cookie[] cookies = request.getCookies();String userId = null;if(cookies !=null){for(Cookie c : cookies) {if(c.getName().equals("login_cookie")){userId = c.getValue();break;}}}%><!DOCTYPE html><html><head><meta charset="UTF-8"><title>Insert title here</title></head><body><%-- 요청과 함께 쿠키도 넘어갑니다.--%><% if(userId != null) { %><p><%=userId %>님 환영합니다! <br><a href="cookie_login.jsp">로그인 화면으로!</a></p><% } else {%><p>시간이 지나 자동 로그아웃 처리되었습니다.<a href="cookie_login.jsp">로그인 화면으로!</a></p><% } %></body></html>