session 활용을 활용할 때
session에 데이터가 set 되어있다고 가정하고 코딩한다.
내 패이지에 sendRedirect가 있는지 확인했을 때,
있다면 페이지가 넘어가 버려서 스크립트를 수행할 시간이 없다.
usebean을 사용하게 되면 생성자를 만드는데 계속 생성자를 생성하면
그 페이지를 갈 때 마다 초기화가 된다.
그러므로 하나의 브라우저동안 한번만 만들 수 있게(유지할 수 있게)
유효범위를 브라우저 단위로 변경, 즉 scope를 session 스코프로 변경하면
브라우저를 닫기 전까지 한번만 쓰기 때문에 유지할 수 있다.
<scope를 활용한 예>
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8" import="java.util.ArrayList, member.MemberDTO" %>
<jsp:useBean id="memberDAO" class="member.MemberDAO" scope="session" />
<jsp:useBean id="memberDTO" class="member.MemberDTO" />
<!DOCTYPE HTML>
<html>
<head>
<title>메인 화면</title>
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1, user-scalable=no" />
<link rel="stylesheet" href="assets/css/main.css" />
<noscript><link rel="stylesheet" href="assets/css/noscript.css" /></noscript>
</head>
<body class="is-preload">
<%
String member = (String)session.getAttribute("member");
ArrayList<MemberDTO> datas=memberDAO.selectAll(memberDTO);
%>
<!-- Wrapper -->
<div id="wrapper">
<!-- Header -->
<header id="header">
<h1>메인 화면</h1>
<p><%=member%>님, 안녕하세요! :D</p>
</header>
<!-- Main -->
<div id="main">
<!-- Content -->
<section id="content" class="main">
<span class="image main"><img src="images/lucky.jpg" alt="완전럭키비키잖아" /></span>
<%
if(datas == null){
out.println("아직 가입한 회원이 없습니다!");
}
else{
%>
<p>### 이 사이트의 회원목록 ###</p>
<table>
<tr><td>아이디</td><td>이름</td></tr>
<%
for(MemberDTO data:datas){
out.println("<tr><td>"+data.getMid()+"</td><td>"+data.getName()+"</td></tr>");
}
%>
</table>
<% } %>
</section>
</div>
<!-- Footer -->
<footer id="footer">
<section>
<h2>Aliquam sed mauris</h2>
<p>Sed lorem ipsum dolor sit amet et nullam consequat feugiat consequat magna adipiscing tempus etiam dolore veroeros. eget dapibus mauris. Cras aliquet, nisl ut viverra sollicitudin, ligula erat egestas velit, vitae tincidunt odio.</p>
<ul class="actions">
<li><a href="a.jsp" class="button">처음으로 돌아가기</a></li>
</ul>
</section>
<section>
<h2>Etiam feugiat</h2>
<dl class="alt">
<dt>Address</dt>
<dd>1234 Somewhere Road • Nashville, TN 00000 • USA</dd>
<dt>Phone</dt>
<dd>(000) 000-0000 x 0000</dd>
<dt>Email</dt>
<dd><a href="#">information@untitled.tld</a></dd>
</dl>
<ul class="icons">
<li><a href="#" class="icon brands fa-twitter alt"><span class="label">Twitter</span></a></li>
<li><a href="#" class="icon brands fa-facebook-f alt"><span class="label">Facebook</span></a></li>
<li><a href="#" class="icon brands fa-instagram alt"><span class="label">Instagram</span></a></li>
<li><a href="#" class="icon brands fa-github alt"><span class="label">GitHub</span></a></li>
<li><a href="#" class="icon brands fa-dribbble alt"><span class="label">Dribbble</span></a></li>
</ul>
</section>
<p class="copyright">© Untitled. Design: <a href="https://html5up.net">HTML5 UP</a>.</p>
</footer>
</div>
<!-- Scripts -->
<script src="assets/js/jquery.min.js"></script>
<script src="assets/js/jquery.scrollex.min.js"></script>
<script src="assets/js/jquery.scrolly.min.js"></script>
<script src="assets/js/browser.min.js"></script>
<script src="assets/js/breakpoints.min.js"></script>
<script src="assets/js/util.js"></script>
<script src="assets/js/main.js"></script>
</body>
</html>
2024.08.12
'WEB' 카테고리의 다른 글
| [WEB] 06. View의 가독성을 올려주는 3가지 방법 (0) | 2024.08.14 |
|---|---|
| [WEB] 04. MVC파트 나눠서 쇼핑몰 프로그램 설계하기 (0) | 2024.08.12 |
| [WEB] 03. JSP 내장 객체 (0) | 2024.08.07 |
| [WEB] 02-2. JSP의 스크립트릿(JAVA 공간)을 JAVA파일로 나누기 (0) | 2024.08.06 |
| [WEB] 02-1. JSP (2) | 2024.08.06 |