# jsp에서 자바빈즈를 이용하는방법 두가지
1. 자바코드로 객체생성( 단순 자바객체생성법 )
2. jsp액션태그 이용하는방법
# 액션태그란?
jsp페이지에서 특별한 기능을 위해 정의된 xml형태의 태그
# <jsp:useBean> 액션태그
<jsp:useBean>액션태그를 사용하므로서 객체생성을 할수있다
4개영역중 지정한 영역에 저장가능
이미 영역에 객체가 존재하고있는 경우 그 객체를 그대로 사용( 없으면 새로객체생성 )
# 사용법
<jsp:useBean id="빈이름(객체이름)" class="자바빈클래스이름" scope="범위" />
먼저 자바를 배웠으므로 자바로 객체 생성을 해보자.
1. 자바코드로 객체생성하는방법
<%@ page language="java" contentType="text/html; charset=EUC-KR"
pageEncoding="EUC-KR"%>
<%@ page import="com.joo.Member" %>
<%
Member member=new Member();
member.setId("aa");
member.setPw("bb");
member.setAddr("cc");
member.setTel("dd");
request.setAttribute("member",member);
%>
위 자바코드를 이제 JSP태그로 바꿀것임
2. <jsp:useBean>액션태그를 사용해서 객체생성하는방법
a.jsp ( setProperty )
======
<%@ page language="java" contentType="text/html; charset=EUC-KR"
pageEncoding="EUC-KR"%>
<%@ page import="com.joo.Member" %>
<jsp:useBean id="member" class="com.joo.Member" scope="session" />
<jsp:setProperty name="member" property="id" value="aa" />
<jsp:setProperty name="member" property="pw" value="bb" />
<jsp:setProperty name="member" property="addr" value="cc" />
<jsp:setProperty name="member" property="tel" value="dd" />
scope는 영역이므로 유도리있게 4개 영역중 선택하면됨
즉, 위 두가지방법중 맘에드는거 사용할것
가져오려면
b.jsp ( getProperty )
========
<%@ page language="java" contentType="text/html; charset=EUC-KR"
pageEncoding="EUC-KR"%>
<%@ page import="com.joo.Member" %>
<jsp:useBean id="member" class="com.joo.Member" scope="session" />
<jsp:getProperty name="member" property="id" /><br>
<!-- 출력이됨 -->
<jsp:getProperty name="member" property="pw" /><br>
<jsp:getProperty name="member" property="addr" /><br>
<jsp:getProperty name="member" property="tel" />
위 예제에서 scope를 session으로해서 a.jsp에서 생성된 프로퍼티를 b.jsp에서 읽을수있음
만약 request나 page로 하면 읽을수 없음
request는 jsp:forward를 통해 request값을 유지하므로써 b.jsp에서 읽을수는있음
# 편리하게 사용하려면 이렇게 하는게 편함!!
c.jsp를 실행하여 값을 생성후 a.jsp를 통해 값을 세팅하고 c.jsp로 foward후 값을 유지하여 출력하는 예제이다.
a.jsp ( 값 세팅 )
======
<%@ page language="java" contentType="text/html; charset=EUC-KR"
pageEncoding="EUC-KR"%>
<%@ page import="com.joo.Member" %>
<jsp:useBean id="member" class="com.joo.Member" scope="session" />
<jsp:setProperty name="member" property="*" />
사실 이게 핵심... 4개 값을 일일이 다 지정하지않고 이런식으로 세팅할수있다( value안줌! )
b.jsp ( 값 출력 )
==========
<%@ page language="java" contentType="text/html; charset=EUC-KR"
pageEncoding="EUC-KR"%>
<%@ page import="com.joo.Member" %>
<jsp:useBean id="member" class="com.joo.Member" scope="session" />
<jsp:getProperty name="member" property="id" /><br>
<jsp:getProperty name="member" property="pw" /><br>
<jsp:getProperty name="member" property="addr" /><br>
<jsp:getProperty name="member" property="tel" />
c.jsp ( 값 생성 )
==========
<%@ page language="java" contentType="text/html; charset=EUC-KR"
pageEncoding="EUC-KR"%>
<%@ page import="com.joo.Member" %>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=EUC-KR">
</head>
<body>
<form action="a.jsp">
<input type="text" name="id"><br>
<input type="text" name="pw"><br>
<input type="text" name="addr"><br>
<input type="text" name="tel"><br>
<input type="submit">
</form>
</body>
</html>
property값와 member의 값과 대소문자까지 똑같아야함
이 예제에서 영역을 request로 하면 어차피 a.jsp가 b.jsp로 request유지가안되므로
a.jsp에서 jsp:forward로 하여 request값을 유지할수있다
'JSP' 카테고리의 다른 글
(부록) java.lang.reflect (0) | 2019.03.28 |
---|---|
서블릿에서의 화면 이동 (0) | 2019.03.27 |
JSP 에러 페이지 설정 (0) | 2019.03.27 |
JSP 경로 / 파일관련 (0) | 2019.03.09 |
include지시자 / 쿠키 (0) | 2019.03.09 |