상세 컨텐츠

본문 제목

JSP 태그 개념 및 종류

WebProgramming/JSP

by ChrisMare 2018. 10. 17. 22:40

본문

※ JSP 태그 개념

Servlet은 JAVA언어를 이용하여 문서를 작성하고, 출력객체( PrintWriter )를 이용하여 HTML 코드를 삽입하지만, 

JSP는 Servlet과 반대로 HTML 코드에 JAVA언어를 삽입하여 동적 문서를 작성 할 수 있습니다.

HTML 코드안에 JAVA코드를 삽입하기 위해서는 JSP태그를 이용해야 합니다.


※ JSP 태그 종류

  • 지시자 : JSP 페이지 처리에 필요한 정보나 다른 JSP 파일을 include할 때 사용한다.

즉, 전체적인 속성을 지정할 때 사용한다.

<%@ page %> : 해당 페이지의 전체적인 속성 지정. 주로 사용되는 언어 지정 및 import 문을 많이 사용.

<%@ include %> : 별도의 페이지를 현재 페이지에 삽입.

<%@ taglib %> : 태그라이브러리의 태그 사용. ( ... JSTL 등 사용 );

* 태그라이브러리? 사용자가 만든 tag들을 말한다. taglib지시자를 사용한다.

  url 및 prefix 속성이 있다.

- url : 태그라이브러리의 위치 값

- prefix : 태그를 가르키는 이름 값


1
2
3
<%@ page language="java" contentType="text/html; charset=EUC-KR"
    pageEncoding="EUC-KR"%>
<%@page import="java.util.Date"%>
cs

 * 별도의 페이지를 삽입 ( 페이지 반복성이 있을 때 활용가능 )

1
<%@ include file="MemberList.jsp" %>
cs

  • 주석 : 소스보기 시 JSP 에서는 웹어플리케이션서버에서 응답을 다 받고 실행되기 때문에 즉, 서버에서 주석처리가 되었고 응답으로 HTML로 받기 때문에 브라우저상에서의 소스보기 시 보이지 않는다. ( HTML은 브라우저에서 실행되기 때문에 소스보기시 다 보입니다. )
1
<!-- 클라이언트가 브라우저상에서는 확인 불가능합니다. -->
cs
  • 선언 : <%! String str = "Chrismare" %> 은 문서 전체에 사용되기 때문에 전역으로서 str을 사용할 수 있다. 또한 메소드 선언 역시 가능하다.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
<%!
    String nickName = "ChrisMare";
    String nick1 = "Chris";
    String nick2 = "Mare";
%>
<%!
    public String sum_Nick(String n1, String n2){
        return n1 + n2;
    }
%>
 
<%
    out.println(nickName + "</br>");
    out.println(sum_Nick(nick1, nick2) + "</br>");
%>
cs

  • 표현식 : <%= str %> 은 결과값을 출력하고 이것은 String 타입으로 브라우저상에 표현되어 나타납니다. 

* ' ; ' 를 사용할 수 없다.


1
2
<%! String str = "Chrismare" %>
<%= str %>
cs


  • 스크립트릿 : <% java 소스 %>를 넣고 가장 많이 사용할 태그입니다.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
<%@page import="java.io.PrintWriter"%>
<%@ 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>
<%
    //JAVA 코드
    String str = "Chrismare";
    for(int i=0;i<str.length();i++){    
%>
<hr>    <!-- html 코드  -->
<%
    out.println(str.charAt(i));
    }
%>
<%
    out.println(str);
%>
</body>
</html>
cs


  • 액션태그 : JSP 페이지 내에서 어떤 동작을 하도록 지시하는 태그이다. 예를 들어, 페이지 이동, 페이지 include, Bean과 관련된 태그 등 ( forward, include, param 태그 )
forward
 : 현재의 페이지에서 다른 특정페이지로 전환할 때 사용. ( URL은 변경되지않는다! )
1
<jsp:forward page="nextPage.jsp"/>
cs

URL 주소는 현재 페이지로 유지되지만 페이지 내용은 설정 페이지로 전환된다.

include
 : 현재 페이지에 다른 페이지를 삽입할 때 사용.
1
2
3
<h1>main.jsp 페이지</h1>
<jsp:include page="sub.jsp" flush="true"/>
<h1>다시 main.jsp 페이지</h1>
cs

현재페이지에서 설정 페이지로 갔다가 다시 현재페이지로 넘어오는 형태이다.


param


사용법)

1
2
3
<jsp:forward page="보내는 ">
    <jsp:param value="" name=""/>
</jsp:forward>
cs

그리고 request.getParameter("name") 으로 받습니다.

ex)

forward_param.jsp

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
<%@ page language="java" contentType="text/html; charset=EUC-KR"
    pageEncoding="EUC-KR"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="EUC-KR">
<title>forward_param.jsp</title>
</head>
<body>
<%! String id, pw; %>
 
<%
    id = request.getParameter("id");
    pw = request.getParameter("pw");
%>
 
<h1>forward_param.jsp 페이지 입니다.</h1>
아이디 : <%= id %></br>
비밀번호 : <%= pw %></br>
</body>
</html>
cs


main.jsp


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
<%@page import="java.util.Arrays"%>
<%@ page language="java" contentType="text/html; charset=EUC-KR"
    pageEncoding="EUC-KR"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="EUC-KR">
<title>main.jsp</title>
</head>
<body>
<h1>main.jsp 페이지 입니다.</h1>
<jsp:forward page="forward_param.jsp">
    <jsp:param value="ChrisMare" name="id"/>
    <jsp:param value="1234" name="pw"/>
</jsp:forward>
</body>
</html>
cs


결과)



요약


'WebProgramming > JSP' 카테고리의 다른 글

request/response 객체  (0) 2018.10.18
JSP 동작 원리  (0) 2018.10.18
웹어플리케이션의 생명주기 감시(ServletContextListener)  (0) 2018.10.17
Servlet 데이터 공유 (ServletContext)  (0) 2018.10.17
Servlet 초기화 Parameter  (0) 2018.10.17

관련글 더보기

댓글 영역