<이공계기술전문연수> 7. Servlet / JSP jspTag(EL)

2019. 11. 19. 14:49· 이공계전문기술연수/Servlet | JSP

@ JSP Action Tag

-> Action Tag는 XML 기술을 이용하여 기존의 JSP 문법을 확장하는 메커니즘을 제공하는 태그로
웹 브라우저에서 실행되는 것이 아니라, 웹 컨테이너에서 실행

-> 퍼블리셔입장에서 스크립트(<% %>)을 보지 않도록(굳이 공부하지 않도록)
하기 위해 탄생

 

 

@@ 표준 액션 태그

-> JSP에서 기본으로 제공하는 액션태그
-> JSP페이제에서 바로 사용
-> 태그 앞에 jsp 접어두가 붙음

<%@ page file = "/WEB-INF ...%>

 

jsp:include

-> 현재 페이지에 특정 페이지를 포함 할 때 사용
jsp : forward
-> 현재 페이지 접근시 특정 페이지로 이동시킴

jsp:param
-> ,의 하위요소로 사용되며, 해당 페이지에 전달 할 값을 기록
할 때 사용

jsp:userbean
-> Java Bean 객체를 사용하기 위한 태그
-> VO,DTO,Entity

jsp:setProperty
-> Java 객체 사용시 Setter 역할

jsp:getProperty
-> Java 객체 사용시 Getter 역할

 

 

 

@ EL(Expression Language : 표현언어)


<%= %> 대체

-> 값을 표현하는데 사용되는 스크립트 언어
-> JSP 기본 객체가 제공하는 영역속성 사용이 가능
-> pageScope
-> requestScope
-> sessionScope
-> applicationScope

-> $(표현식)

@ JSTL(JSP Standard Tag Library)


-> JSP에서 사용하는 커스텀 태그로, 공통으로 사용하는 코드의 집합을 사용하기 쉽게
태그화하여 제공하는 것

-> EL을 통해 스크립트없이 데이터를 표현하는 것은 가능하지만 EL만으로는 모든것을 
표현 할 수 없음
(if, for) 


@@ JSTL 태그 종류


Core Tags
-> 변수와 url, 조건문, 반복문 등의 로직과 관련된 JSTL 문법을 제공
<%@ taglib uri = "http://java.sun.com/jsp/jstl/core" prefix="c"%>

Formatting Tags
-> 메세지 형식이나 숫자, 날짜 형식과 관련된 포맷을 제공
<%@ taglib uri = "http://java.sun.com/jsp/jstl/fmt" prefix="fmt" %>

Function Tags
-> trim, subString 과 같은 문자열처리함수 제공
<%@ taglib uri = "http://java.sun.com/jsp/jstl/functions" prefix="fn" %>

XML Tags
-> 데이터의 XML 파싱 처리 등 XML 문서를 화면으로 읽어오는데 필요한 라이브러리
<%@ taglib uri="http://java.sun.com/jsp/jstl/xml" prefix="X" %> 

SQL Tags
-> 페이지 내에서 DB연동하고, 필요한 쿼리를 수행할 수 있는 라이브러리
<%@ taglib uri="http://java.sun.com/jsp/jstl/sql" prefix="sql" %>



@@ Core Tags @@

<c:???>
set : 변수를 만들어서 값을 저장하는 태그
out : 페이지에 값을 출력하는 태그(EL과 유사)
if : 조건문 if와 비슷함, test속성의 값으로 true / false 비교
choose : 조건문 switch와 비슷함 , 
java 기준 case      default

forEach : 제어문 foreach 문과 비슷, 반복을 수행

forTokens : StringTokenizer 객체와 비슷, token값을 기준으로 문자열을 분할

url : 변수에 url 값과 쿼리스트링값을 저장하고 호출 할 수 있게 하는 태그
www.localhost/login?id=idid$pw = pwpw -> 쿼리스트링

 


redirect : 페이지를 재요청하는 태그


-> 자바의 foreach 문에 해당하는 기능을 제공

속성
items : 반복 할 객체명(Collection 객체)
begin : 반복이 시작할 요소번호(0 ~ n)
end : 반복이 끝나는 요소 번호
var : 현재 반복 횟수에 해당하는 변수명(for(Member m : list) -> m)
varStatus : 현재 반복에 해당하는 객체 요소
-varStatus 속성
current : 현재 반복문 수행중인 객체
index : zero-based 반복 회차(0부터시작)
count: one-based 반복 회차(1부터 시작)
first : 첫번째 반복인 경우 true
last : 마지막 반복인 경우 true


 

<연습용>

 

1.

index.html 

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
	<h1> JSP Action Tag 연습</h1>
	<hr>
	<a href ="/actionTag/jsp_include.jsp">1. jsp:include</a>
	<a href ="/actionTag/jsp_forward.jsp">2. jsp:forward</a>
	<a href ="/actionTag/jsp_usebean.jsp">3. jsp:usebean</a>
	<a href ="/EL/jsp_EL.html">4. EL 테스트 페이지 이동</a><br>
	<a href ="/JSTL/jsp_JSTL_Basic1.jsp">5. JSTL 기초 1</a><br>
	<a href ="/JSTL/jsp_JSTL_Basic2.jsp">6. JSTL 기초 2</a><br>
	<a href ="/JSTL/jsp_JSTL_Basic3.jsp">7. JSTL 기초 3</a><br>
	<a href ="/JSTL/jsp_JSTL_Basic4.jsp">8. JSTL 기초 4</a><br>
	<a href ="/JSTL/jsp_JSTL.jsp">9. JSTL 제어문 </a><br>
	
</body>
</html>

 

2.

 

4. EL 테스트 페이지 이동

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
	<h1>EL테스트 페이지</h1>
	<a href="/ELServletTest1">1. EL Test1 (VO)</a><br>
	<a href="/ELServletTest2">2. EL Test2 (Map)</a><br>
	<a href="/ELServletTest3">3. EL Test3 (Array)</a><br>
	<a href="/ELServletTest4">4. EL Test4 (List)</a><br>
	<a href="/ELServletTest5">5. EL Test5 (내장객체)</a><br>
	<a href="/EL/param.html">6. EL Test6(Param 사용)</a><br>
</body>
</html>

servlet

(1)

package test.controller;

import java.io.IOException;

import javax.servlet.RequestDispatcher;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import test.model.vo.Member;



/**
 * Servlet implementation class ELServletTest1Servlet
 */
@WebServlet(name = "ELServletTest1", urlPatterns = { "/ELServletTest1" })
public class ELServletTest1Servlet extends HttpServlet {
	private static final long serialVersionUID = 1L;
       
    /**
     * @see HttpServlet#HttpServlet()
     */
    public ELServletTest1Servlet() {
        super();
        // TODO Auto-generated constructor stub
    }

	/**
	 * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
	 */
	protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		Member m = new Member("user01","pass01","사용자1",50);
		RequestDispatcher rd = request.getRequestDispatcher("/EL/jsp_EL_Test1.jsp");
		request.setAttribute("member", m);
		rd.forward(request, response);
	}

	/**
	 * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
	 */
	protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		// TODO Auto-generated method stub
		doGet(request, response);
	}

}

(2)

package test.controller;

import java.io.IOException;
import java.util.HashMap;

import javax.servlet.RequestDispatcher;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

/**
 * Servlet implementation class ELServletTest2Servlet
 */
@WebServlet(name = "ELServletTest2", urlPatterns = { "/ELServletTest2" })
public class ELServletTest2Servlet extends HttpServlet {
	private static final long serialVersionUID = 1L;
       
    /**
     * @see HttpServlet#HttpServlet()
     */
    public ELServletTest2Servlet() {
        super();
        // TODO Auto-generated constructor stub
    }

	/**
	 * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
	 */
	protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		HashMap<String, String> map = new HashMap<String,String>();
		map.put("name", "이름");
		map.put("age", "50");
		map.put("addr", "서울");
		RequestDispatcher rd = request.getRequestDispatcher("/EL/jsp_EL_Test2.jsp");
		request.setAttribute("map", map);
		rd.forward(request, response);
	}

	/**
	 * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
	 */
	protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		// TODO Auto-generated method stub
		doGet(request, response);
	}

}

 

(3)

package test.controller;

import java.io.IOException;

import javax.servlet.RequestDispatcher;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import test.model.vo.Member;

/**
 * Servlet implementation class ELServletTest3Servlet
 */
@WebServlet(name = "ELServletTest3", urlPatterns = { "/ELServletTest3" })
public class ELServletTest3Servlet extends HttpServlet {
	private static final long serialVersionUID = 1L;
       
    /**
     * @see HttpServlet#HttpServlet()
     */
    public ELServletTest3Servlet() {
        super();
        // TODO Auto-generated constructor stub
    }

	/**
	 * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
	 */
	protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		Member[] members = new Member[2];
		members[0] = new Member("user01", "pass01", "name01", 50);
		members[1] = new Member("user02", "pass02", "name02", 20);
		
		RequestDispatcher rd = request.getRequestDispatcher("/EL/jsp_EL_Test3.jsp");
		request.setAttribute("members", members);
		rd.forward(request, response);
		
	}

	/**
	 * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
	 */
	protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		// TODO Auto-generated method stub
		doGet(request, response);
	}

}

 

(4)

package test.controller;

import java.io.IOException;
import java.util.ArrayList;

import javax.servlet.RequestDispatcher;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import test.model.vo.Member;

/**
 * Servlet implementation class ELServletTest4Servlet
 */
@WebServlet(name = "ELServletTest4", urlPatterns = { "/ELServletTest4" })
public class ELServletTest4Servlet extends HttpServlet {
	private static final long serialVersionUID = 1L;
       
    /**
     * @see HttpServlet#HttpServlet()
     */
    public ELServletTest4Servlet() {
        super();
        // TODO Auto-generated constructor stub
    }

	/**
	 * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
	 */
	protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		
		ArrayList<Member> list = new ArrayList<Member>();
		
		list.add(new Member("user01","pass01","name01",60));
		list.add(new Member("user02","pass02","name02",20));
		RequestDispatcher rd = request.getRequestDispatcher("/EL/jsp_EL_Test4.jsp");
		request.setAttribute("list", list);
		rd.forward(request, response);
	}

	/**
	 * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
	 */
	protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		// TODO Auto-generated method stub
		doGet(request, response);
	}

}

 

(5)

 

package test.controller;

import java.io.IOException;

import javax.servlet.RequestDispatcher;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;

/**
 * Servlet implementation class ELServletTest5Servlet
 */
@WebServlet(name = "ELServletTest5", urlPatterns = { "/ELServletTest5" })
public class ELServletTest5Servlet extends HttpServlet {
	private static final long serialVersionUID = 1L;
       
    /**
     * @see HttpServlet#HttpServlet()
     */
    public ELServletTest5Servlet() {
        super();
        // TODO Auto-generated constructor stub
    }

	/**
	 * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
	 */
	protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		RequestDispatcher rd = request.getRequestDispatcher("/EL/jsp_EL_Test5.jsp");
		request.setAttribute("name", "리퀘스트 네임");
		HttpSession session = request.getSession();
		session.setAttribute("name", "세션 네임");
		rd.forward(request, response);
	}

	/**
	 * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
	 */
	protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		// TODO Auto-generated method stub
		doGet(request, response);
	}

}

 

3

jsp

 

(1)

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
    
<!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=UTF-8">
<title>Insert title here</title>
</head>
<body>
	아이디 : ${member.id }<br>
	비밀번호 : ${member.pw }<br>
	이름 : ${requestScope.member.name }<br>		<!-- requestScope.member 지워도됨!!!!! -->
	나이 : ${requestScope.member.age }<br>
</body>
</html>

(2)

 

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!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=UTF-8">
<title>Insert title here</title>
</head>
<body>
	이름 : ${map.name}<br>
	나이 : ${map.age }<br>
	주소 : ${map.addr}

</body>
</html>

 

(3)

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!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=UTF-8">
<title>Insert title here</title>
</head>
<body>
	<h1>배열객체 처리</h1>
	<h2>첫번째 회원</h2>
	아이디 : ${members[0].id }<br>
	비밀번호 : ${members[0].pw }<br>
	이름 : ${members[0].name }<br>
	나이 : ${members[0].age }

	<h2>두번째 회원</h2>
	아이디 : ${members[1].id }<br>
	비밀번호 : ${members[1].pw }<br>
	이름 : ${members[1].name }<br>
	나이 : ${members[1].age }
</body>
</html>

 

(4)

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!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=UTF-8">
<title>Insert title here</title>
</head>
<body>
	<h1>배열객체 처리</h1>
	<h2>첫번째 회원</h2>
	아이디 : ${list[0].id }<br>
	비밀번호 : ${list[0].pw }<br>
	이름 : ${list[0].name }<br>
	나이 : ${list[0].age+5 }<br>
	${list[0].test }
	<!-- .getter!!! getter 에 접근하는거라서 vo에 변수를 만들 필요가 없고 getter만 써도된다!!!!!!!!!!!!!!!!!!!!!!!!!!
	표기법 중요하다!!  -->
	<h2>두번째 회원</h2>
	아이디 : ${list[1].id }<br>
	비밀번호 : ${list[1].pw }<br>
	이름 : ${list[1].name }<br>
	나이 : ${list[1].age<40 }<br>
	${list[1].test }
</body>
</html>

 

(5)

 

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!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=UTF-8">
<title>Insert title here</title>
</head>
<body>
	<h1>넘어온 값 확인</h1>
	request : ${requestScope.name }<br>
	session : ${sessionScope.name }<br>
	그냥 치면 ? ${name }
</body>
</html>

 

 

4. param.html

 

(1)

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
	<form action="/EL/jsp_EL_Test6.jsp" method="post">
		아이디 입력 : <input type ="text" name ="id"><br>
		<br>
		관심있는 스포츠를 선택 하세요
		<input type = "checkbox" name="sports" value="축구">축구
		
		<input type = "checkbox" name="sports" value="야구">야구
		
		<input type = "checkbox" name="sports" value="농구">농구
		
		<input type = "checkbox" name="sports" value="볼링">볼링
		<br><br>
		<input type="submit" value="확인">
	</form>
</body>
</html>

 

(2)

 

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
    
    <%request.setCharacterEncoding("UTF-8"); %>
    <%--
    <%
    	String id = request.getParameter("id");
    	String [] sports = request.getParameterValues("sports");
    %>	
    		원래 이렇게 해줘야됨!!!
     --%>
<!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=UTF-8">
<title>Insert title here</title>
</head>
<body>
	아이디 : ${param.id }<br>
	선택한 운동 : 
	${paramValues.sports[0] }
	${paramValues.sports[1] }
	${paramValues.sports[2] }
	${paramValues.sports[3] }
	
</body>
</html>

 

'이공계전문기술연수 > Servlet | JSP' 카테고리의 다른 글

<이공계기술전문연수> 9. Servlet / JSP MVC2 실습(1) package / lib  (0) 2019.11.20
<이공계기술전문연수> 8. Servlet / JSP jspTag(JSTL)  (0) 2019.11.19
<이공계기술전문연수> 6. Servlet / JSP Servlet Filter  (0) 2019.10.08
<이공계기술전문연수> 5. Servlet / JSP MVC1 실습  (0) 2019.10.07
<이공계기술전문연수> 3. Servlet / JSP MVC1 , MVC2  (0) 2019.10.01
'이공계전문기술연수/Servlet | JSP' 카테고리의 다른 글
  • <이공계기술전문연수> 9. Servlet / JSP MVC2 실습(1) package / lib
  • <이공계기술전문연수> 8. Servlet / JSP jspTag(JSTL)
  • <이공계기술전문연수> 6. Servlet / JSP Servlet Filter
  • <이공계기술전문연수> 5. Servlet / JSP MVC1 실습
임쟌
임쟌
임쟌
Jian's Blog
임쟌
전체
오늘
어제

공지사항

  • [자기소개]
  • 쟌's Blog (227)
    • Language (32)
      • Python (8)
      • Go (24)
      • Java (0)
    • Framework (10)
      • Django (9)
      • Gin (1)
      • Spring boot (0)
      • Fiber (0)
    • Database (10)
      • PostgreSQL (8)
      • MySQL (0)
      • Redis (2)
    • Server (51)
      • Linux (16)
      • Git (12)
      • Oracle Cloud Infrastructure (13)
      • Mac (4)
      • Docker (4)
      • RabbitMQ (0)
      • ETC (2)
    • Operating System (0)
      • OS (0)
    • Algorithm (22)
      • Go (22)
      • Python (0)
    • Exam Certification (4)
    • Daily Life (27)
      • Review (21)
      • Diary (6)
    • 이공계전문기술연수 (71)
      • Java (17)
      • Database (8)
      • HTML | CSS (13)
      • JavaScript | jQuery (6)
      • Servlet | JSP (16)
      • Spring Framework (11)

인기 글

최근 댓글

최근 글

hELLO · Designed By 정상우.v4.2.2
임쟌
<이공계기술전문연수> 7. Servlet / JSP jspTag(EL)
상단으로

티스토리툴바

개인정보

  • 티스토리 홈
  • 포럼
  • 로그인

단축키

내 블로그

내 블로그 - 관리자 홈 전환
Q
Q
새 글 쓰기
W
W

블로그 게시글

글 수정 (권한 있는 경우)
E
E
댓글 영역으로 이동
C
C

모든 영역

이 페이지의 URL 복사
S
S
맨 위로 이동
T
T
티스토리 홈 이동
H
H
단축키 안내
Shift + /
⇧ + /

* 단축키는 한글/영문 대소문자로 이용 가능하며, 티스토리 기본 도메인에서만 동작합니다.