ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • jsp
    JSP 2021. 12. 9. 16:31

    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 * 60
    idCoo.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>

     

    'JSP' 카테고리의 다른 글

    jsp  (0) 2021.12.13
    jsp  (0) 2021.12.11
    jsp [2]  (0) 2021.12.09
    jsp 시작!  (0) 2021.12.08
Designed by Tistory.