JSP 액션 태그

⚡ 스마트 요약

JSP 액션 태그는 XML 구문을 사용하여 서블릿 엔진의 동작을 제어하며, 개발자는 이를 통해 파일을 포함하고, 요청을 전달하고, 서블릿 엔진과 상호 작용할 수 있습니다. JavaBeans를 사용하고 요청 처리 중에 동적 콘텐츠를 삽입합니다.

  • 🏷️ 표준 세트 : 11개의 표준 액션 태그는 포함, 전달, 빈, 플러그인 및 XML 출력을 처리합니다.
  • 📜 XML 구문: 액션 태그는 엄격한 XML 형식을 따르며 모든 요청 시 재평가됩니다.
  • 🔗 빈 통합: jsp:useBean, jsp:setProperty 및 jsp:getProperty는 다음과 같이 관리합니다. Java빈의 생명주기 및 속성.
  • 페이지 흐름: `jsp:include`는 리소스를 병합하고, `jsp:forward`는 요청 처리를 다른 페이지로 전달합니다.
  • 🧪 동적 XML: jsp:body, jsp:attribute, jsp:text 및 jsp:output은 XML 구조를 동적으로 생성합니다.
  • 🤖 AI 현대화: AI 비서는 기존 JSP 액션 코드를 최신 프레임워크로 리팩토링하는 데 도움을 줍니다.

JSP 액션 태그

JSP 액션 태그란 무엇인가요?

JSP 액션 태그는 XML 구문 구조를 사용하여 서블릿 엔진의 동작을 제어합니다. 개발자는 파일을 동적으로 삽입하거나 재사용할 수 있습니다. Java빈 컴포넌트는 include, forward와 같은 JSP 액션 태그를 통해 사용자를 다른 페이지로 이동시키거나 유사한 런타임 작업을 수행할 수 있습니다. 디렉티브와 달리 액션 태그는 페이지에 접근할 때마다 다시 평가되므로 요청 처리 중 동적인 동작을 구현하는 데 이상적입니다.

구문 :

<jsp:action_name attribute="value" />

이 JSP 표준 액션 태그 튜토리얼에서는 각 액션 태그의 작동 방식, 기능 및 실제 JSP 파일에 적용하는 방법을 배우게 됩니다.

JSP에서 자주 사용되는 액션 태그 목록

JSP에는 11가지 유형의 표준 동작 태그가 있으며, 다음은 그 전체 목록입니다.

액션 태그 이름 통사론 기술설명
jsp:useBean JSP 페이지에서 빈을 호출하고 사용하는 데 사용됩니다.
jsp:포함 <jsp:include page=”page URL” flush=”true/false” /> 요청 처리 중에 다른 JSP 파일을 현재 파일에 포함합니다.
jsp:setProperty 빈의 속성을 설정합니다.
jsp:getProperty 빈의 속성을 검색하여 출력을 위해 문자열로 변환합니다.
JSP:앞으로 요청을 다른 JSP나 정적 페이지로 전달합니다.
jsp:플러그인 소개합니다 Java 애플릿이나 빈과 같은 구성 요소를 JSP에 삽입하여 자동으로 태그를 생성합니다.
jsp:본문 요청 처리 중에 동적으로 생성되는 XML 요소를 정의합니다.
jsp:텍스트 템플릿 텍스트 JSP 페이지에 텍스트와 EL 표현식만 포함하는 템플릿 텍스트를 삽입하는 데 사용됩니다.
jsp:매개변수 jsp:plugin 액션 내에서 매개변수를 전달하여 추가 데이터를 추가합니다.
jsp:속성 동적으로 생성되는 XML 속성을 정의합니다.
jsp:출력 출력에 사용할 XML 또는 DOCTYPE 선언을 지정합니다.

이제 전체 목록을 확인했으니, 각 JSP 액션 태그를 구문 및 작동 예제와 함께 하나씩 살펴보겠습니다.

jsp:useBean 액션 태그

  • 이 액션 이름은 사용하려는 경우에 사용됩니다. JavaJSP 페이지의 빈(Beans).
  • 이 태그를 사용하면 빈을 쉽게 호출하고 서버 측 구성 요소를 재사용할 수 있습니다.

jsp:useBean의 구문:

<jsp:useBean id="" class="" />

여기서 id는 이 빈의 식별자를 지정하고 class는 빈 클래스의 전체 경로입니다.

예:

<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
    pageEncoding="ISO-8859-1"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>Action JSP1</title>
</head>
<body>
<jsp:useBean id="name" class="demotest.DemoClass">
</body>
</html>

코드 설명:

Code 10 라인 : 위 코드에서는 빈의 "빈 ID"와 "클래스 경로"를 사용합니다.

jsp:액션 태그 포함

  • `jsp:include`는 요청 처리 중에 다른 파일에 JSP 파일을 삽입하는 데 사용되며, 이는 `include`와 유사한 기능을 합니다. 지시어.
  • 이는 요청 처리 단계에서 추가되므로, 포함된 콘텐츠는 페이지가 요청될 때마다 평가됩니다.

jsp:include 구문

<jsp:include page="page URL" flush="true/false">

예:

Action_jsp2에서 (Code 10번째 줄에서 date.jsp 파일을 포함시키고 있습니다.

<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
    pageEncoding="ISO-8859-1"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>Date Guru JSP</title>
</head>
<body>
<jsp:include page="date.jsp" flush="true" />
</body>
</html>

날짜.jsp

<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
    pageEncoding="ISO-8859-1"%> 
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>Insert title here</title>
</head>
<body>
<p>
Today's date: <%= new java.util.Date().toLocaleString()%>
</p>
</body>
</html>

코드 설명:

Action_jsp2.jsp

Code 10 라인 : 첫 번째 파일에서는 action_jsp2.jsp에 date.jsp 파일을 포함시키고 있습니다.

날짜.jsp:

Code 11 라인 : date.jsp 파일의 11번째 줄에서 오늘 날짜를 출력하고 있습니다.

코드를 실행하면 다음과 같은 출력이 나타납니다.

jsp:포함

출력:

  • 메인 JSP 페이지에 날짜 파일이 포함되어 있으므로 오늘 날짜와 시간이 표시됩니다.

jsp:setProperty 액션 태그

  • JSP에서 이 표준 액션은 빈의 속성을 설정하는 데 사용됩니다.
  • 속성을 설정하기 전에 빈을 정의해야 합니다.

구문 :

<jsp:setProperty name="" property="" >

여기서 `name`은 속성을 설정할 빈을 정의하고, `property`는 설정하려는 속성입니다. `value`와 `param` 속성도 설정할 수 있습니다. `value`는 필수가 아니며, 속성에 할당될 값을 정의합니다. `param`은 값을 가져오는 데 사용할 요청 매개변수의 이름입니다. 아래에서는 `setProperty`와 `getProperty`를 사용하여 예시를 보여드리겠습니다.

jsp:getProperty 액션 태그

  • 이 동작은 빈의 속성을 가져오는 데 사용됩니다.
  • 이 함수는 속성을 문자열로 변환한 다음 최종적으로 출력에 삽입합니다.

구문 :

<jsp:getProperty name="" property="" >

여기서 name은 속성을 가져와야 하는 빈의 이름이며, 해당 빈은 정의되어 있어야 합니다. property 속성은 가져올 빈 속성의 이름입니다.

setProperty 및 getProperty의 예:

TestBean.java:

package demotest;

import java.io.Serializable;

public class TestBean implements Serializable{
	
	private String msg = "null";
	
	public String getMsg() {
		return msg;
	}
	
	public void setMsg(String msg) {
		this.msg = msg;
	}
}

Action_jsp3.jsp

<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
    pageEncoding="ISO-8859-1"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>Guru Action 3</title>
</head>
<body>
<jsp:useBean id="GuruTest" class="demotest.TestBean" />
<jsp:setProperty name="GuruTest" property="msg" value="GuruTutorial" />
<jsp:getProperty name="GuruTest" property="msg" />
</body>
</html>

코드 설명:

TestBean.java:

Code 라인 5TestBean은 Serializable 클래스를 구현하는 클래스입니다. 코드 내에 getter와 setter 메서드를 가진 빈 클래스입니다.

Code 라인 7여기서는 비공개 문자열 변수 msg를 "null"로 간주합니다.

Code 전화번호 9-14여기서는 변수 "msg"의 getter와 setter를 사용하고 있습니다.

Action_jsp3.jsp

Code 10 라인 : 여기서는 "useBean" 태그를 사용하고 있는데, 이 태그는 해당 JSP 클래스에서 사용해야 하는 빈(TestBean)을 지정합니다.

Code 11 라인 : 여기서는 TestBean 빈의 msg 속성 값을 "로 설정합니다.Guru지도 시간".

Code 12 라인 : 여기서는 getProperty를 사용하여 TestBean 빈의 msg 속성 값을 가져옵니다.Guru튜토리얼)이 출력 결과에 표시됩니다.

위 코드를 실행하면 다음과 같은 출력이 나옵니다.

jsp:getProperty

출력:

이 예제에서는 TestBean을 사용하여 setProperty로 "msg" 속성을 설정하고 getProperty를 사용하여 해당 속성 값을 가져옵니다.Guru지도 시간".

jsp:forward 액션 태그

`jsp:forward` 액션 태그는 요청을 다른 JSP 페이지 또는 정적 페이지로 전달하는 데 사용됩니다.

여기서 요청은 매개변수 없이 또는 매개변수와 함께 전달될 수 있습니다.

구문 :

<jsp:forward page="value">

여기서 값은 요청이 전달되어야 하는 위치를 나타냅니다.

예:

Action_jsp41.jsp

<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
    pageEncoding="ISO-8859-1"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>Guru Action JSP1</title>
</head>
<body>
<jsp:forward page="jsp_action_42.jsp" />
</body>
</html>

Jsp_action_42.jsp

Guru Action JSP2</title>
</head>
<body>
<a>This is after forward page</a>
</body>
</html>

코드 설명:

Action_jsp41.jsp

Code 10 라인 : 여기서는 JSP 액션을 사용하여 요청을 속성에 지정된 페이지(예: jsp_action_42.jsp)로 전달합니다.

Jsp_action_42.jsp

Code 10 라인 : action_jsp41.jsp를 호출하면 요청이 이 페이지로 전달되고 "이것은 전달 후 페이지입니다"라는 출력이 표시됩니다.

위 코드를 실행하면 다음과 같은 출력이 나타납니다.

JSP:앞으로

출력:

저희는 action_jsp41.jsp를 호출했지만 요청이 jsp_action_42.jsp로 전달되었고, 해당 페이지에서 "이것은 전달 후 페이지입니다"라는 출력을 받았습니다.

jsp:플러그인 액션 태그

  • 소개하는 데 사용됩니다. Java 컴포넌트를 JSP로 변환하는 경우, Java 구성 요소는 애플릿 또는 빈일 수 있습니다.
  • 브라우저를 감지하고 추가합니다. 또는 파일에 태그를 추가합니다.

구문 :

<jsp:plugin type="applet/bean" code="objectcode" codebase="objectcodebase">
  • 여기서 type은 객체 또는 빈을 지정합니다.
  • Code 애플릿 또는 빈의 클래스 이름을 지정합니다.
  • Code베이스에는 베이스가 포함되어 있습니다. URL 클래스 파일이 포함된 폴더입니다.

jsp:param 액션 태그

  • 이것은 위에서 설명한 플러그인 객체의 하위 객체입니다.
  • 추가 매개변수를 제공하려면 하나 이상의 작업을 포함해야 합니다.

구문 :

<jsp:params>
<jsp:param name="val" value="val"/ >
</jsp:params>

플러그인 및 매개변수의 예:

Action_jsp5.jsp

<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
    pageEncoding="ISO-8859-1"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>Action guru jsp5</title>
</head>
<body>
<jsp:plugin type="bean" code="Student.class" codebase="demotest.Student">
  <jsp:params>
     <jsp:param name="id" value="5" />
     <jsp:param name="name" value="guru" />
  </jsp:params>
</jsp:plugin>
</body>
</html>

Student.java

package demotest; 

import java.io.Serializable;

public class Student implements Serializable {
	
	public String getName () { 
		return name; 
	}
	public void setName (String name) {
		this.name = name;
	}
	public int getId() { 
		return id; 
	} 
	public void setId (int id) { 
		this.id = id; 
	} 
	private String name = "null"; 
	private int id = 0;
	
}

코드 설명:

Action_jsp5.jsp

Code 10 라인 : 여기서는 jsp:plugin 객체를 사용하고 있으며, 이 객체에서 세 가지 속성을 가져옵니다.

  • 종류 – 이 경우에는 콩입니다.
  • Code – 파일 이름.
  • Codebase - 패키지 이름이 포함된 경로입니다.

Code 11-14행: 여기서는 jsp:params 객체를 가져오고, 그 아래에 name과 value 속성을 가진 param이라는 하위 객체를 만듭니다. 그리고 이 속성들에 id와 name 값을 설정합니다.

Student.java

Code 7 - 17 : 우리는 변수 id와 name에 대해 getter와 setter를 사용하고 있습니다.

Code 19 - 20 : 변수 id와 name을 초기화하고 있습니다.

여기서는 매개변수에 설정된 값이 Student 빈에서 사용될 경우 출력을 얻을 수 있습니다. 이 경우에는 매개변수 값을 설정하고 가져오기만 할 뿐 어디에도 출력하지 않으므로 아무런 출력도 없습니다.

jsp:body 액션 태그

  • 이 태그는 XML을 동적으로 정의하는 데 사용됩니다. 요소 컴파일 시간이 아닌 요청 시간에 생성될 수 있습니다.
  • 이는 요소 본문으로 동적으로 생성되는 XML을 정의합니다.

구문 :

<jsp:body></jsp:body>

여기서는 이러한 태그들 안에 XML 본문 태그를 작성합니다.

jsp:attribute 액션 태그

  • 이 태그는 XML을 동적으로 정의하는 데 사용되며, 요소는 컴파일 시간이 아닌 요청 시간에 생성될 수 있습니다.
  • 이는 동적으로 생성될 XML의 속성을 정의합니다.

구문 :

<jsp:attribute></jsp:attribute>

여기서는 XML의 속성 태그를 작성합니다.

본문 및 속성의 예:

Action_jsp6.jsp

<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
    pageEncoding="ISO-8859-1"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>Action Guru JSP6</title>
</head>
<body>
<jsp:element name="GuruXMLElement">
<jsp:attribute name="GuruXMLattribute">
Value
</jsp:attribute>
<jsp:body>Guru XML</jsp:body>
</jsp:element>
</body>
</html>

코드 설명:

Code 10 라인 : 여기서는 동적으로 생성되는 요소를 정의하고 있습니다. XML그리고 그 이름은 다음과 같습니다. GuruXMLElement.

Code 11-13행: 여기서는 동적으로 생성되는 XML의 XML 속성이 될 속성을 정의합니다.

Code 14 라인 : 여기서는 본문 액션을 통해 동적으로 생성될 XML 본문을 작성합니다.

위 코드를 실행하면 다음과 같은 출력이 나옵니다.

jsp:속성

출력:

여기서는 생성된 XML의 body 태그에서 출력되는 내용을 확인할 수 있습니다.

jsp:text 액션 태그

  • 이 기능은 템플릿 텍스트를 JSP 페이지에 삽입하는 데 사용됩니다.
  • 본문에는 다른 요소가 포함되지 않으며 텍스트와 EL 표현식만 포함됩니다.

구문 :

<jsp:text>template text</jsp:text>

여기서 템플릿 텍스트는 템플릿 텍스트(JSP에 출력해야 하는 모든 일반 텍스트)만을 의미합니다. EL 표현.

예:

Action_jsp7.jsp

<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
    pageEncoding="ISO-8859-1"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>Guru Action JSP7</title>
</head>
<body>
<jsp:text>Guru Template Text</jsp:text>
</body>
</html>

코드 설명:

Code 10 라인 : 여기서는 텍스트 객체를 사용하여 템플릿 텍스트를 출력합니다.

위 코드를 실행하면 다음과 같은 출력이 나옵니다.

jsp:텍스트

출력:

우리는 얻고있다 Guru 텍스트 액션 객체 내에 배치되는 템플릿 텍스트입니다.

jsp:output 액션 태그

  • 이는 JSP의 XML 선언 또는 DOCTYPE 선언을 지정합니다.
  • XML 선언과 DOCTYPE은 출력에 의해 선언됩니다.

구문 :

<jsp:output doctype-root-element="" doctype-system="">

여기서 doctype-root-element는 DOCTYPE에서 XML 문서의 루트 요소를 나타냅니다. doctype-system은 출력에 생성되는 doctype을 나타내며 시스템 리터럴을 반환합니다.

예:

<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
    pageEncoding="ISO-8859-1"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>Action Guru JSP8</title>
</head>
<body>
<jsp:output doctype-root-element="html PUBLIC" doctype-system="http://www.w3.org/TR/html4/loose.dtd"/>
</body>
</html>

코드 설명:

Code 10 라인 : 여기서는 출력 액션 객체를 사용하여 DOCTYPE을 생성하며, 내부적으로는 다음과 같은 형식으로 생성됩니다.

이 작업은 내부적으로 생성되므로 화면에 출력되는 내용은 없습니다.

자주 묻는 질문

JSP 액션 태그는 요청 처리 중 서블릿 엔진의 동작을 제어하는 ​​XML 스타일 요소입니다. 개발자는 이를 통해 파일을 포함하거나, 요청을 전달하거나, 특정 기능을 사용할 수 있습니다. JavaBean을 사용하고, 애플릿을 삽입하고, JSP 페이지 내에서 XML 출력을 동적으로 생성합니다.

지시문은 페이지 번역 시 한 번 처리되며 전체 페이지 구조에 영향을 미칩니다. 액션 태그는 모든 요청 시 재평가되므로 콘텐츠 포함, 요청 전달, 특정 요소와의 연동 등과 같은 동적 동작에 적합합니다. Java실행 시점의 빈.

헤더나 푸터와 같이 다른 페이지의 콘텐츠를 현재 응답에 병합해야 할 때는 `jsp:include`를 사용하세요. 제어권을 완전히 다른 리소스로 넘겨야 하고 현재 페이지에서 더 이상 출력을 생성하지 않아야 할 때는 `jsp:forward`를 사용하세요.

jsp:useBean은 인스턴스를 생성하거나 찾습니다. Java주어진 범위 내의 빈(Bean)을 관리합니다. `jsp:setProperty`는 빈 속성에 값을 할당하고, `jsp:getProperty`는 해당 속성 값을 읽어 문자열로 응답에 기록하여, 표현 로직과 빈 로직을 깔끔하게 분리할 수 있도록 합니다.

`jsp:body`와 `jsp:attribute`는 동적 XML 요소 본문과 속성을 정의합니다. `jsp:text`는 리터럴 템플릿 텍스트와 EL 표현식을 작성하고, `jsp:output`는 JSP가 응답을 렌더링할 때 생성되는 XML 선언 또는 `DOCTYPE`을 제어합니다.

AI는 모델 API에 대한 REST 호출, 내장형 챗봇 도우미, JSP 페이지에 렌더링되는 추천 위젯 등을 통해 JSP 및 JEE 애플리케이션에 통합됩니다. 또한 AI는 개발 과정에서 기본 JSP 코드 생성, 액션 태그 사용법 제안, 빈 연결 유효성 검사 등을 지원합니다.

네. AI 기반 도구는 기존 JSP 코드를 분석하고, 액션 태그 패턴을 식별하며, Spring MVC, Thymeleaf 또는 REST 기반 단일 페이지 애플리케이션과 같은 최신 프레임워크로의 리팩토링을 제안합니다. 또한 마이그레이션 테스트, 종속성 보고서 및 단계별 리팩토링 계획을 생성합니다.

이 게시물을 요약하면 다음과 같습니다.