본문 바로가기
HTML

Html - Html에서의 서버사이드 기호 사용법 (<% %>, <%= %>, <%@ %>, <%# %> )

by 개발 그리고 게발 2021. 7. 9.
728x90

Html페이지에서 서버사이드 코드나 페이지 지시자, 서버사이드 코드 작성을 할 때는 <% %>를 이용해서 할 수 있으며 여러방법을 이용하여 Html페이지에서 서버사이드 코드를 제어할 수 있습니다.

 

또한 실제 Html페이지에서 태그 및 텍스트로 보여지지 않으며 서버사이드 코드로 실행됩니다

 

 


<% %>

서버사이드 코드(문법)을 실행할 수 있게 하지만 때로는 스파게티 코드의 원인이 되어 개발자를 번거롭게 하기도 합니다

 

C#

public string name = "Tailer";

 

Html

<% if (name == "Mike") { %>

	<span>Mike</span>

<% } else { %>

	<span>Tailer</span>

<% } %>

 

결과

<span>Tailer</span>

 

 

 


 

 

<%= %>

서버사이드 코드의 메소드, 변수, 인스턴스 변수와 같은, 문법이 아닌 결과값이 나오는 항목에 대해서 쓸 수 있습니다

 

1. 문법을 혼용한 적용법

 

C#

public List<string> food = new List<string> { "Sandwich", "Apple", "Steak", "Cheese", "Coke" };

 

Html

<% for (int i = 0; i < food.Count; i++) { %>

<span><%= food[i] %></span>

<% } %>

 

결과

<span>Apple</span>
<span>Steak</span>
<span>Cheese</span>
<span>Coke</span>

 

2. 변수 단독으로 사용

 

C# 

public List<string> food = new List<string> { "Sandwich", "Apple", "Steak", "Cheese", "Coke" };

 

Html

<span><%= food[0] %></span>
<span><%= name %></span>

 

결과

<span>Sandwich</span>
<span>Tailer</span>

 

3. 함수로 사용

 

C#

public string GetDefaultValue()
{
	return "Default";
}

public string GetDefaultValue(string name)
{
	return "My Name is " + name;
}

 

Html

<span><%= GetDefaultValue() %></span>
<span><%= GetDefaultValue("Denis") %></span>

 

결과

<span>Default</span>
<span>My Name is Denis</span>

 

 


 

 

<%@ %>

페이지 지시자로 사용되며 Html페이지에서 네임스페이스, 페이지 내부의 지시문에 사용됩니다

 

Asp.net에서의 마스터페이지 설정

<%@ Page Title="" Language="C#" MasterPageFile="~/Master/MasterPage.master" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="Default" %>

 

Asp.net에서의 유저컨트롤 추가

<%@ Register Src="~/Control/UserControl.ascx" TagName="UserCtrl" TagPrefix="uc" %>

 

Jsp에서의 페이지 지시문 설정

<%@ contentType="text/html; charset="euc-kr" %>
<%@ page import="java.util.Math, java.net.URL" %>

 

 

 


 

 

<%# %>

Asp.net에서 사용되는 기호로 서버컨트롤에 바인딩 된 데이터의 정보를 가져오기 위해 사용됩니다.

 

C#

DataTable dataTable = new DataTable();
dataTable.Columns.Add("name", typeof(string));
dataTable.Columns.Add("year", typeof(int));
dataTable.Rows.Add(new object[] { "이철히", 23 });
dataTable.Rows.Add(new object[] { "김옥자", 20 });

Data1.DataSource = dataTable;
Data1.DataBind();

 

Html

<asp:Repeater ID="Data1" runat="server">
	<ItemTemplate>
		<span><%# Container.ItemIndex %></span>
		<span><%# DataBinder.Eval(Container.DataItem, "name").ToString() %></span>
		<span><%# DataBinder.Eval(Container.DataItem, "year").ToString() %></span>
		<br/>
	</ItemTemplate>
</asp:Repeater>

 

결과

<span>0</span>
<span>이철히</span>
<span>23</span>
<br/>
<span>1</span>
<span>김옥자</span>
<span>20</span>

 

 


 

 

<%-- --%>

서버사이드의 주석을 하기위한 방법으로  Html의 주석처리 방식인<!-- -->과 다른점은 <%-- --%>로 주석처리를 하면 개발자모드에서 브라우저 Html코드를 봤을 때 주석이 보이지 않습니다

 

Html

<%-- 서버사이드 주석처리 --%>
서버사이드 주석처리

<!-- Html 주석처리 -->
Html 주석처리

 

결과

브라우저 개발자모드의 캡쳐화면

 

728x90

댓글