JSP

[JSP]JSP 페이지 액션 태그

bangle0621 2020. 12. 28. 18:04
액션태그 명 액션 태그 설명
include <jsp:include> 다른 페이지의 실행 결과를 현재의 페이지에 포함시킬 때 사용
forward <jsp:forward> 페이지 사이의 제어를 이동시킬 때 사용
plug-in <jsp:plug-in> 웹 브라우저에서 자바 애플릿을 실행시킬 때 사용
useBean <jsp:useBean> Java Bean을 JSP 페이지에서 사용할 때 사용
setProperty <jsp:setProperty> 프로퍼티의 값을 세팅할 때 사용
getProperty <jsp:getProperty> 프로퍼티의 값을 얻어낼 때 사용

 

include 

Main.jsp

<!DOCTYPE html>
<html>
<body>

	<center>
		<table width="800" border="1">
		<!-- Top -->
			<tr height="150">
				<td align="center" colspan="2">
				<jsp:include page="Top.jsp">
					<jsp:param value="aaa" name="id"/>
				</jsp:include>
				</td>
			</tr>
				
		<!-- Left -->
		<tr height="400">
			<td align="center" width="200">
			<jsp:include page="Left.jsp"/>
			</td>
		
		<!-- Center -->
			<td align="center" width="600">
			<jsp:include page="Center.jsp"/>
			</td>
		</tr>
		
		<!-- Bottom -->
		<tr height="100">
			<td align="center" colspan="2">
			<jsp:include page="Bottom.jsp"/>
			</td>
		</tr>
		</table>
	</center>
</body>
</html>

Top.jsp

<%@ page language="java" contentType="text/html; charset=EUC-KR"
    pageEncoding="EUC-KR"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="EUC-KR">
<title>Insert title here</title>
</head>
<body>
	<!-- Top -->
	<table width="800">
		<tr height="100">
		<!-- 로고이미지 -->
		<td colspan="2" align="center" width="260">
		<img alt="" src="img/Camping.png" width="200" height="70">
		</td>
		<td colspan="5" align="center">
		<font size="10">낭만 캠핑</font>
		</td>
		</tr>
		<tr height="50">
			<td width="114" align="center">텐트</td>
			<td width="114" align="center">의자</td>
			<td width="114" align="center">식기류</td>
			<td width="114" align="center">침낭</td>
			<td width="114" align="center">테이블</td>
			<td width="114" align="center">화롯대</td>
			<td width="116" align="center"><%=request.getParameter("id") %></td>
	
	</table>	
</body>
</html>

<jsp:include page="---.jsp"></jsp:include>

해당 명령어를 통하여 페이지를 가져올 수 있다. 

 

*해당페이지로 정보를 담아서 보낼때(Main.jsp)

<jsp:include page="Top.jsp">
		<jsp:param value="aaa" name="id"/>
</jsp:include>

정보 온것을 받을 때 (Top.jsp)

<td width="116" align="center"><%=request.getParameter("id") %></td>

 

forward

<%@ page language="java" contentType="text/html; charset=EUC-KR"
    pageEncoding="EUC-KR"%>
<!DOCTYPE html>
<html>
<body>

	<h2>이 페이지는 로그인 정보가 넘어오는 페이지 입니다.</h2>
	
	<%
		request.setCharacterEncoding("euc-kr");	//한글처리
	
	 	String id = request.getParameter("id");	//request 객체에 담겨진 사용자 정보 중 id 만 추출
	 	
	 	//response.sendRedirect("RespondeRedirect.jsp"); //흐름제어. 해당 페이지로 넘어가고 데이터는 사라짐. 이 밑에거는 실행 안됨!
	
	%>
	
	<jsp:forward page="RespondeRedirect.jsp"/>

	
	<h3> id 는 <%=id %></h3>
</body>
</html>

 

 

response.sendRedirect("RespondeRedirect.jsp")

위의 것은 데이터를 담아서 보내지 않는 이상 보내는 페이지에 정보를 담아서 보내지 않는다

 

<jsp:forward page="RespondeRedirect.jsp">
	<jsp:param value="" name="id"/> <!-- 값을 임의적으로 변경하거나 지정해놓고 싶을 때 사용한다 -->
</jsp:forward>

forward 는 다음 페이지에 정보를 담아서 보낼수 있고, 원하는 값이 있다면 param 에 담아서 보낼수도 있다.

 

 

useBean

Javabean 이란 

여러개의 데이터들을 하나의 class에 저장시켜놓고 사용하는 것

 

*서로 다른 곳에 있는 class 를 호출하기 위해선 package 안에 만들어야 한다.

 

package bean;

public class MemberBean {
	//MemberJoin 에서 사용했던 name 들과 일치시켜야 한다.
	private String id;
	private String pass1;
	private String email;
	private String tel;
	private String address;
	
	
	public String getId() {
		return id;
	}
	public void setId(String id) {
		this.id = id;
	}
	public String getPass1() {
		return pass1;
	}
	public void setPass1(String pass1) {
		this.pass1 = pass1;
	}
	public String getEmail() {
		return email;
	}
	public void setEmail(String email) {
		this.email = email;
	}
	public String getTel() {
		return tel;
	}
	public void setTel(String tel) {
		this.tel = tel;
	}
	public String getAddress() {
		return address;
	}
	public void setAddress(String address) {
		this.address = address;
	}
	
	
}

MemberJoin 에서 사용했던 name 들과 일치시켜야 한다.

 

<jsp:getProperty>,<jsp:setProperty>

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<body>

	<center>
	<h2>회원 정보 보기</h2>
	<!-- request로 넘어온 데이터를 자바 빈즈랑 맵핑 시켜주는 useBean -->	
	<!-- id에는 멤버변수  -->
	<jsp:useBean id="mbean" class="bean.MemberBean">
	<!-- jsp 내용을 자바빈 클래스(MemberBean의미)에 데이터를 맵핑(넣어줌) -->
		<jsp:setProperty name="mbean" property="*" /><!-- 자동으로 모두 맵핑시켜 주시오 -->
	</jsp:useBean><!-- 객체생성과 동일 MemberBean mbean = new MemberBean() -->
	
	<h2>당신의 아이디는 <jsp:getProperty property="id" name="mbean"/>  </h2>
	<h2>당신의 비밀번호는 <jsp:getProperty property="pass1" name="mbean"/>  </h2>
	<h2>당신의 이메일는 <jsp:getProperty property="email" name="mbean"/>  </h2>
	
	<h2>당신의 전화는
	<%=mbean.getTel() %></h2>
	<!-- 이미 객체 생성을 해서 넣어주었기 때문에 가능하다 -->
	</center>
</body>
</html>

이렇게 하나하나씩 set으로 넣어줘도 되고 *을 사용하여 전체를 넣어주어도 된다.