-
07) 내장 객체 예제학교/JAVA 2023. 12. 15. 12:04
(login1.jsp)
<%@ page contentType="text/html" pageEncoding="utf-8" %> <%@ page import="java.util.Date" %> <%@ page import="java.text.SimpleDateFormat" %> <% // Date 클래스를 사용하여 현재 날짜 및 시간 정보 가져오고, // SimpleDateFormat을 사용하여 "yyyy-MM-dd" 형식으로 포맷 Date now = new Date(); SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd"); String date = df.format(now); // date 변수의 값이 11로 끝난 경우, "underCheck.jsp"로 리다이렉션 // response.sendRedirect()를 사용하여 새로운 페이지로 이동, // return; 통해 현재 페이지의 실행을 중단 if (date.endsWith("11")) { response.sendRedirect("underCheck.jsp"); return; } // 사용자가 입력한 아이디 받아와 출력 // 현재 날짜 및 시간 정보 문자열로 변환해 "로그인 시간" 출력 // 최종 결과물을 HTML 형식으로 구성하여 출력 String uid = request.getParameter("id"); String res = "<h3>사용자 아이디: " + uid + "</h3>"; res += "<br>로그인 시간: " + now.toString(); out.print(res); %> // "visitCount.jsp" 페이지를 현재 페이지에 include 하여 방문자 수 출력 // include 문 사용해 해당 파일의 내용을 현재 위치에 삽입 <br><br><%@ include file="visitCount.jsp" %>
--> 사용자 아이디를 받아 로그인 시간과 함께 출력하고, 현재 날짜가 11일인 경우 "underCheck.jsp"로 리다이렉션하는 기능을 가지고 있다.
또한, "visitCount.jsp" 페이지를 include하여 방문자 수를 출력하고 있다.
(underCheck.jsp)
<%@ page contentType="text/html" pageEncoding="utf-8" %> <% String res = "<h3>매월 12일은 시스템 점검일니다.</h3>"; res += "<br>12일 이후 다시 이용해주세요."; out.print(res); %>
(visitCount.jsp)
<%@ page contentType="text/html" pageEncoding="utf-8" %> <% // application 객체를 사용하여 웹 애플리케이션 범위에 저장된 속성 중 // counter라는 이름의 속성 값을 가져온다. String strcnt = (String) application.getAttribute("counter"); // counter 속성의 값이 null이면 0으로 초기화하고, // 그렇지 않으면 해당 값을 정수로 변환하여 count 변수에 저장 int count = (strcnt == null) ? 0 : Integer.valueOf(strcnt); out.print("방문자수: " + count); // 방문자 수를 1 증가시킨 후, 다시 counter 속성으로 설정하여 웹 애플리케이션 범위에 저장한다. // 이렇게 하면 다음 사용자가 페이지를 요청할 때마다 방문자 수가 업데이트 된다. application.setAttribute("counter", String.valueOf(++count)); %>
--> 매 페이지 요청마다 방문자 수를 증가시키고 그 값을 출력하는 예제
--> 페이지가 로드될 때마다 application 객체를 사용하여 방문자 수를 추적하고 업데이트
int count = (strcnt == null) ? 0 : Integer.valueOf(strcnt); (삼항연산자)
--> strcnt이가 null이면: count에 0 할당
--> 그렇지 않으면: Integer.valueOf(strcnt)를 통해 문자열 형태의 숫자를 정수로 변환하여 count에 할당
application.setAttribute("counter", String.valueOf(++count));
--> 증가된 count값을 문자열로 변환. 이렇게 하면 정수값을 문자열로 변환하여 저장 가능
--> counter라는 이름의 속성에 증가된 방문자 수를 문자열로 변환한 값 저장
+ setAttribute
void setAttribute(String name, Object value);
--> name: 설정할 속성의 이름. 일반적으로 문자열로 지정되며, 이 이름 통해 해당 속성을 나중에 검색 가능
--> value: 설정할 속성의 값. 어떤 타입의 객체든 상관없이 받을 수 있음
--> 지정된 이름과 값으로 속성 저장, 이 메서드 호출하면 객체 내부에 지정된 이름으로 속성 저장
--> 이후에는 같은 이름으로 getAttribute 메서드 사용하여 해당 속성 가져올 수 있음
(login.jsp)
<%@ page contentType="text/html" pageEncoding="utf-8" %> <% String uid = request.getParameter("id"); if (uid == null) { out.print("로그인 정보가 없습니다."); } else { // 전달받은 아이디가 null이 아닌 경우(사용자가 아이디 입력한 경우), // 세션 객체를 사용하여 사용자 아이디 세션에 저장 // 세션은 사용자의 브라우저와 웹 애플리케이션 간에 상태 정보를 유지하는 데 사용됨 session.setAttribute("id", uid); // 사용자가 로그인 후에 메인 페이지로 이동하게 됨 response.sendRedirect("main.jsp"); } %>
(main.jsp)
<%@ page contentType="text/html" pageEncoding="utf-8" %> <% // 세션 객체를 사용하여 id라는 이름의 속성을 읽어옴. (이전에 로그인한 사용자의 아이디) String uid = (String) session.getAttribute("id"); if (uid == null) { out.print("로그인 정보가 없습니다."); } else { out.print("메인 페이지입니다."); // session.setAttribute("id", uid); %> <br><br> <form action="logout.jsp"> <input type="submit" value="로그아웃"> </form> <% } %>
(logout.jsp)
<%@ page contentType="text/html" pageEncoding="utf-8" %> <% // 현재 사용자 세션을 무효화함. (사용자의 로그인 상태 종료 후 세션에 저장된 모든 정보 삭제) session.invalidate(); // out.print("로그아웃 하였습니다."); response.sendRedirect("login.html"); %>
HTTP 요청 메시지 헤더 출력 예제
(getHttpHeaders.jsp)
<%@ page contentType="text/html" pageEncoding="utf-8" %> <%@ page import="java.util.Enumeration" %> <% // 현재 요청의 모든 헤더 이름을 나타내는 Enumeration을 가져옴 // request.getHeaderNames 메서드는 모든 헤더 이름을 Enumeration 형태로 반환함 Enumeration<String> en = request.getHeaderNames(); // hasMoreElements 메서드 통해 Enumeration에 더 이상 요소가 있는지 확인, 있으면 반복 while (en.hasMoreElements()) { // Enumeration에서 다음 헤더 이름 가져옴 String name = (String) en.nextElement(); // 현재 헤더 이름에 대한 헤더 값 가져옴 String value = request.getHeader(name); // 각 헤더 이름, 값에 대한 정보를 HTML 형식으로 출력 out.print(name + ": " + value + "<br>"); } %>
(moveURL.html)
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>Insert title here</title> </head> <body> <form action="moveURL.jsp"> <select name="site"> <option value="naver">네이버 <option value="daum">다음 <option value="google">구글 </select> <input type="submit" value="submit" > </form> </body> </html>
(moveURL.jsp)
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>Insert title here</title> </head> <body> <% // 클라이언트가 보낸 데이터 받기 // 사용자가 선택한 웹사이트의 값을 selectedSite 변수에 저장 String selectedSite = request.getParameter("site"); // 데이터 값에 따른 분기(sendRedirect()) if (selectedSite != null) { if (selectedSite.equals("naver")) { response.sendRedirect("https://www.naver.com"); } else if (selectedSite.equals("daum")) { response.sendRedirect("https://www.daum.net"); } else if (selectedSite.equals("google")) { response.sendRedirect("https://www.google.com"); } else { // 선택된 값이 유효하지 않을 경우 예외 처리 out.println("잘못된 선택입니다."); } } else { // 선택된 값이 없을 경우 예외 처리 out.println("선택된 값이 없습니다."); }%> </body> </html>
'학교 > JAVA' 카테고리의 다른 글
06) JSP 예제 (0) 2023.12.17 05) 서블릿 예제 (0) 2023.12.16 05) 서블릿 (0) 2023.12.14 06) JSP (0) 2023.12.14 07) JSP 내장 객체 종류 (1) 2023.12.14