1. sessionattribute.jsp Test
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>sessionattribute.jsp Test</title>
</head>
<body>
<%@ page import="java.util.Enumeration, java.util.Date"%>
<H1>Sessionn 만들기</H1>
<%
session.setAttribute("id", "korea2017");
session.setAttribute("pwd", "javatomcat");
session.setAttribute("a", "a");
session.setAttribute("b", "b");
%>
<hr size="5" color="red">
<h2>Session 조회</h2>
세션 ID : <%= session.getId() %><br>
<!-- getID() : session 에 할당된 유일한 식별자(ID) String 타입으로 반환한다-->
세션 CreationTime : <%=new Date(session.getCreationTime()) %><br><br>
<%
Enumeration<String> ee = session.getAttributeNames();
while(ee.hasMoreElements()) // Enumeration 의 내부에 원소(값)가 있는
// 결과를 반환 있으면 true
{
String name = ee.nextElement(); // Enumeration 내부에 다음 값이 있다면
// 다음 값을 반환
String value = (String)session.getAttribute(name);
out.println("session name : " + name + " , ");
out.println("session value : " + value + "<br>");
}
%>
<br>
sessionn Invalidate : <% session.invalidate(); %>
<!-- invalidate() : 현재 생성된 session 을 무효화 시킨다. -->
</body>
</html>
2. sessiontimeout.jsp Test
|
|
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>sessiontimeout.jsp Test</title>
</head>
<body>
<%@ page import="java.util.Enumeration,java.util.Date" %>
<h1> Session Test </h1>
<hr size="5" color="red">
<h2> 세션 만들기 </h2>
<%! long beforetime = new Date().getTime();
// 이전 페이지 참조 시간을 저장하는 변수
%>
<%
long nowtime = new Date().getTime();
if(session.isNew())
{
session.setAttribute("id", session.getId());
session.setAttribute("time", new Date(session.getCreationTime()));
session.setMaxInactiveInterval(5);
}
else
{
session.removeAttribute("id");
}
%>
<hr size="5" color="green">
<h2> 세션 조회 </h2>
세션 ID (유일한 식별자) : <%= session.getAttribute("id") %><br>
세션 CreationTime : <%= session.getAttribute("time") %><br>
세션 MaxInactiveInterval : <%= session.getMaxInactiveInterval() %><br>
<%
long sessiontime = nowtime - session.getCreationTime();
%>
세션이 만들어진 이후 지난 시간 : <%= sessiontime /1000 %> 초
<font color="green">
<hr>
<% long inactiveinterval = nowtime - beforetime; %>
<br>
서버에 반응을 보이지 않은 시간 : <%= inactiveinterval/1000 %> 초 <br>
위 시간이 <%= session.getMaxInactiveInterval() %> 초를 지나면
이전 세션은 무효화 되고 새로운 세션이 생성됨 <br>
</font>
<% beforetime = nowtime; %>
</body>
</html>
3. sessiontimeout.jsp Test
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>session login Test</title>
<STYLE type="text/css">
#loginArea {
width:400px;
margin:auto;
border:1px solid black;
background-color:red;
}
table{
margin:auto;
}
td{ text-align:center; }
</STYLE>
</head>
<body>
<section id="loginArea">
<form action="sessionlogin_2.jsp" method="post">
<table>
<tr>
<td><label for="id">아이디</label></td>
<td><input type="text" name="id" id="id"></td>
</tr>
<tr>
<td><label for="pass">비밀번호</label></td>
<td><input type="password" name="pass" id="pass"></td>
</tr>
<tr>
<td colspan="2"><input type="submit" value="로그인">
<input type="reset" value="다시 작성"></td>
</tr>
</table>
</form>
</section>
</body>
</html>
sessionlogin_2.jsp로 저장
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%
session.setAttribute("id", request.getParameter("id"));
%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>session login test</title>
</head>
<body>
<h3>로그인 되었습니다.</h3>
<h3>로그인 아이디 : <%= (String)session.getAttribute("id") %></h3>
<br>
<A href="sessionlogout.jsp"> 로그아웃</A>
</body>
</html>
sessionlogout.jsp로 저장
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>session login Test</title>
<STYLE type="text/css">
#loginArea {
width:400px;
margin:auto;
border:1px solid black;
background-color:red;
}
table{
margin:auto;
}
td{ text-align:center; }
</STYLE>
</head>
<body>
<section id="loginArea"><!-- section
서로 관계있는 문서를 분리하는 역활을 함
주로 문서를 다른 주제로 구분짓기 위해 사용함
-->
<form action="sessionlogin_2.jsp" method="post">
<table>
<tr>
<td><label for="id">아이디</label></td>
<td><input type="text" name="id" id="id"></td>
</tr>
<tr>
<td><label for="pass">비밀번호</label></td>
<td><input type="password" name="pass" id="pass"></td>
</tr>
<tr>
<td colspan="2"><input type="submit" value="로그인">
<input type="reset" value="다시 작성"></td>
</tr>
</table>
</form>
</section>
</body>
</html>
4. session Test
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%session.invalidate();%>
<script type="text/javascript">
<!--
location.href="sessiontest_1.jsp";
//-->
</script>
sessionInvalidate.jsp로 저장
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%session.removeAttribute("name");%>
<script type="text/javascript">
<!--
location.href="sessiontest_1.jsp";
//-->
</script>
sessionDel.jsp로 저장
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%
session.setAttribute("name", "Session Ok~~~~");
%>
<script type="text/javascript">
<!--
location.href="sessiontest_1.jsp";
//-->
</script>
sessionSet.jsp로 저장
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%
String name;
if(session.getAttribute("name")!=null){
name= (String)session.getAttribute("name");
}
else
{
name="세션 삭제~~~";
}
%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>session Test</title>
</head>
<body>
<h2> 세션 테스트 </h2>
<input type="button" onClick="location.href='sessionSet.jsp'" value="세션값 저장" >
<input type="button" onClick="location.href='sessionDel.jsp'" value="세션값 삭제" >
<input type="button" onClick="location.href='sessionInvalidate.jsp'" value="세션값 초기화" >
<br>
<h3><font color="green"><%=name %></font></h3>
</body>
</html>
Java Beans (자바 빈즈)
: JSP 프로그램의 장점중 하나는 비즈니스 로직부분과 프리젠테이션 부분을
나누워 코딩 할 수 있다는 점이다.
그러나 지금까지의 JSP 프로그램은 하나의 JSP 프로그램 내부에 로직부분의
자바코드와 프리젠테이션 부분의 HTML 코드가 복잡하게 구성되었다.
자바빈즈는 프로그램의 비즈니스 로직부분과 프리젠테이션 부분을 분리해서
비즈니스 로직부분을 담당하는 자바프로그램 단위라 할 수 있다.
그러므로 자바빈즈를 사용하면 JSP 페이지가 복잡한 자바코드로
구성되는 것을 피하고 JSP 페이지에는 HTML 코드와 쉽고 간단한 자바 코드만을
구성 할 수 있다.
Java Beans 는 자바 프로그램에서 특정한 작업인 비즈니스 로직을
독립적으로 수행하는 하나의 프로그램 단위 이다.
하나의 큰 프로그램에서 독립적으로 수행되는 하나의 작은 프로그램 부품을
Component(컴포넌트)라고 부른다.
그러므로 자바빈즈는 자바 프로그램에서의 컴포넌트이며, 넓은 의미로
자바빈즈는 자바의 모든 클래스를 의미 할 수 있다.
이러한 자바빈즈를 잘 사용하면 한 번 작성된 자바빈즈를 여러 응용 프로그램에서
재사용하여 프로그램의 개발 기간도 단축 할 수 있는 장점도 있다.
자바빈즈의 구성
. 자바빈즈는 일반 자바 클래스이다. 자바빈즈는 member variables 인
fields(필드) 와 methods(메소드) 로 구성된다.
자바빈즈의 필드는 일반적으로 외부에서 참조할수 없도록 private 로
선언되며 메소드는 외부에서 자바빈즈의 필드를 참조하기위해
public 로 선언된 setter, getter 를 제공한다.
. 자바 빈즈 태그
액션 내용
<jsp:useBean id="login"/> JSP 와 연관 시켜 자바빈즈를 생성
<jsp:setProperty name="login"/> 생성된 자바빈즈의 객체를 이용해
setter 에 속성값 전달
<jsp:getProperty name="login"/> 생성된 자바빈즈의 객체를 이용해
getter로 속성값 반환
액션 속성 값유형 의미
id String JSP 페이지에서 자바빈즈의
참조 변수를 저장하는 변수이름
<jsp:useBean ../> class String 생성할 자바빈즈의 클래스 이름
page 자바빈즈의 유효 범위를 나타내며
지정하지 않으면 page
scope request
session
application
name String <jsp:useBean>에서 지정한 id로 지정
<jsp:setProperty ../> property String 자바빈즈의 setter()의 이름 setName()에서
set 를 제거한 name으로 지정하며
값이 '*' 이면 파라미터의 모든 값을 의미
param String 속성 property 와 함께 쓰이며 지정된
파라미터로 전달받은 파라미터의 이름을 지정
value String 속성 property 와 함께 쓰이며 자바 빈즈의
setter() 의 setName(value) 에 지정하는
매개변수 값인 value 지정
name String
<jsp:getProperty ../>
property String
액션 내용
page 자바빈즈가 현재의 JSP 페이지 내에서만 사용가능하며
기본 값으로 특별히 지정하지 않으면 이 값이 적용
가장 좁은 범위
request JSP 페이지는 request 객체가 영향을 미치는 모든
JSP 페이지까지 자바빈즈 이용 가능
session session 이 유효한 페이지 까지 자바빈즈 이용가능
application 응용프로그램의 모든 페이지에서 자바빈즈 객체의
사용이 가능하며, 가장 넓은 범위의 scope 값
. 자바빈즈 태그의 이용
<jsp:useBean id="test" class="ClassName"/>
<% Classname test = new Classname(); %>
<jsp:useBean id="test" class="ClassName"/>
<jsp:setProperty name="test" property="name" value="홍길동"/>
<% test.setName=("홍길동"); %>
<jsp:useBean id="test" class="ClassName"/>
<jsp:getProperty name="test" property="name"/>
<% test.getName(); %>
<java Resources > src > javabean > ScoreBean.java 생성>
package javabean;
public class ScoreBean {
private String name;
private String adress;
private int point;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getAdress() {
return adress;
}
public void setAdress(String adress) {
this.adress = adress;
}
public int getPoint() {
return point;
}
public void setPoint(int point) {
this.point = point;
}
}
ScoreBean.java로 저장
5. scorenotag.jsp 사용법
<%@ page import="javabean.ScoreBean"%>
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>scorenotag.jsp 사용법</title>
</head>
<body>
<h2> 태그를 사용하지 않는 방법으로 JavaBeans 를 사용하는 예 </h2>
<% ScoreBean score = new ScoreBean(); %>
<hr size="3" color="red">
<h3> 이름과 성적을 JavaBean ScoreBean 에 저장 </h3><P>
이름 : <%="수선화" %><br>
성적 : <%="85" %><br>
주소 : <%="부천" %><p>
<% score.setName("수선화"); %>
<% score.setPoint(85); %>
<% score.setAdress("부천"); %>
<hr size="3" color="green">
<h3> JavaBeans ScoreBean 에 저장된 정보를 조회 출력 </h3>
이이름 : <% out.println(score.getName()); %><br>
성성적 : <% out.println(score.getPoint()); %><br>
주주소 : <% out.println(score.getAdress()); %><br>
</body>
</html>
6. scoretag.jsp Test
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>scoretag.jsp Test</title>
</head>
<body>
<h2> Javabeans 를 이용한 학생 이름과 성적의 저장과 조회 </h2>
<jsp:useBean id="score" class="javabean.ScoreBean" scope="page"/>
<!-- ScoreBean score = new ScoreBean() ; -->
<hr size="3" color="green">
<h3> 이름과 성적을 JavaBeans ScoreBean 에 저장 </h3>
이름 : <%="들국화" %><br>
성적 : <%="77" %><br>
주소 : <%="부천" %><p>
<jsp:setProperty property="name" name="score" value="들국화"/>
<jsp:setProperty property="point" name="score" value="77"/>
<jsp:setProperty property="adress" name="score" value="부천"/>
<%-- <% score.setPoint(77); --%>
<hr size="3" color="cyan">
<h3> JavaBeans ScoreBean 에 저장된 정보를 조회 출력 </h3><p>
이이름 : <jsp:getProperty property="name" name="score"/><br>
성성적 : <jsp:getProperty property="point" name="score"/><br>
주주소 : <jsp:getProperty property="adress" name="score"/><br>
</body>
</html>
7. grade Test
<java Resources > src > javabean > GradeBean.java 생성>
package javabean;
public class GradeBean {
private String name;
private int point;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getPoint() {
return point;
}
public void setPoint(int point) {
this.point = point;
}
public String getGrade()
{
String grade="";
if (point > 90){
grade = "A";
}else if (point > 80){
grade = "B";
}else if (point > 70){
grade = "C";
}else if (point > 60){
grade = "D";
}
else grade ="F";
return grade;
}
}
GradeBean.java로 저장
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>grade.jsp Test</title>
</head>
<body>
<h2> JavaBeans 를 이용한 학생의 점수에 따른 성적 처리 </h2>
<% request.setCharacterEncoding("utf-8"); %>
<jsp:useBean id="score" class="javabean.GradeBean" scope="page"/>
<hr size="3" color="#00ff00">
<h3> Form 에서 전달받은 이름과 성적을 Javabeans GradeBean 에 저장 </h3>
이름 : <%= request.getParameter("name") %><br>
성적 : <%= request.getParameter("point") %><p>
<jsp:setProperty property="*" name="score" />
<hr size="3" color="#0033dd">
<h3> JavaBeans GradeBean 에 저장된 정보를 조회 출력 </h3><P>
이름 : <jsp:getProperty property="name" name="score"/><br>
성적 : <jsp:getProperty property="point" name="score"/><br>
등급 : <jsp:getProperty property="grade" name="score"/><br>
</body>
</html>
grade.jsp로 저장
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>grade Test</title>
</head>
<body>
<h2> 이름과 점수를 입력하세요 </h2>
<form action="grade.jsp" method="post">
이름 : <input type="text" name="name" size="20"><br>
점수 : <input type="text" name="point" size="3"><p>
<input type="submit" value="입력완료">
<input type="reset" value="취소">
</form>
</body>
</html>
'JSP(Java Server Pages)' 카테고리의 다른 글
8. 파일업로드폼(FileUploadForm), 썸네일폼(thumbnailform) (0) | 2017.02.20 |
---|---|
7. template test, bean test, 회원가입 폼 (0) | 2017.02.17 |
5. login.html, forwardlogin, Cookie & Session, 쿠키 예제, 세션 예제 (0) | 2017.02.15 |
4. out, application, exception, pageContext, page, 액션 태그, 지시자 include 와 액션 태그 include 차이, forward 와 include 차이 (0) | 2017.02.14 |
3. 내장 객체(Implicit Object) (0) | 2017.02.13 |