@ 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 |