JSP Action์ด๋?
JSP์์ ๊ธฐ๋ณธ์ผ๋ก ์ ๊ณตํ๋ ํ๊ทธ๋ค์ ์งํฉ์ 'JSP Action'์ด๋ผ ํ๋ค.
JSP Action์ ๊ฐ ํ๊ทธ์ ๋ง๋ ์๋ฐ ์ฝ๋๋ก ๋ณํ๋๋ค.
์ฆ JSP Action ํ๊ทธ๋ฅผ ์ฌ์ฉํ์ง ์๋๋ผ๋ ์คํฌ๋ฆฝํธ๋ฆฟ <% %>์ ์๋ฐ ์ฝ๋๋ฅผ ์์ฑํ๋ฉด ๋ ์ผ์ด๋ค.
๊ทธ๋ ๋ค๋ฉด JSP Action์ ์ ์กด์ฌํ๋ ๊ฒ์ผ๊น?
JSP Action ํ๊ทธ๋ฅผ ์ฌ์ฉํ ์ค ์๋ค๋ฉด ์๋ฐ ์ฝ๋๋ฅผ ์ฌ์ฉํ์ง ์์๋ JSP๋ก ์น ํ์ด์ง๋ฅผ ๊ฐ๋ฐํ ์ ์๋ค.
๋น์ฆ๋์ค ๋ก์ง์ ์ฒ๋ฆฌํ๋ ๋ถ๋ถ๊ณผ ํ๋ฉด์ ์ฒ๋ฆฌํ๋ ๋ถ๋ถ์ ๋๋ ์ ๊ฐ๋ฐํ ์ ์๋๋ก ํ๊ธฐ ์ํด ๋ง๋ค์ด์ง ๊ธฐ์ ์ด๋ค.
๋ค์์ JSP 2.2์์ ์ ๊ณตํ๋ Standard Action์ด๋ค.
์ก์ | ์ค๋ช |
<jsp:useBean> | ์๋ฐ ์ธ์คํด์ค๋ฅผ ์ค๋นํ๋ค. ๋ณด๊ด์์์ ์๋ฐ ์ธ์คํด์ค๋ฅผ ๊บผ๋ด๊ฑฐ๋ ์๋ฐ ์ธ์คํด์ค๋ฅผ ์๋ก ๋ง๋ค์ด ๋ณด๊ด์์ ์ ์ฅํ๋ ์ฝ๋๋ฅผ ์์ฑํ๋ค. (์๋ฐ ์ธ์คํด์ค = Java Bean) |
<jsp:setProperty> | ์๋ฐ ๋น์ ํ๋กํผํฐ ๊ฐ์ ์ค์ ํ๋ค. ์๋ฐ ๊ฐ์ฒด์ settet()๋ฅผ ํธ์ถํ๋ ์ฝ๋๋ฅผ ์์ฑํ๋ค. |
<jsp:getProperty> | ์๋ฐ ๋น์ ํ๋กํผํฐ ๊ฐ์ ๊บผ๋ธ๋ค. ์๋ฐ ๊ฐ์ฒด์ getter()๋ฅผ ํธ์ถํ๋ ์ฝ๋๋ฅผ ์์ฑํ๋ค. |
<jsp:include> | ์ ์ (HTML, ํ ์คํธ ํ์ผ ๋ฑ) ๋๋ ๋์ (์๋ธ๋ฆฟ/JSP) ์์์ includingํ๋ ์๋ฐ ์ฝ๋๋ฅผ ์์ฑํ๋ค. |
<jsp:forward> | ํ์ฌ ํ์ด์ง์ ์คํ์ ๋ฉ์ถ๊ณ ๋ค๋ฅธ ์ ์ , ๋์ ์์์ผ๋ก forwardingํ๋ ์๋ฐ ์ฝ๋๋ฅผ ์์ฑํ๋ค. |
<jsp:param> | jsp:include, jsp:forard, jsp:params์ ์์ ํ๊ทธ๋ก ์ฌ์ฉํ๋ค. ServletRequest ๊ฐ์ฒด์ ๋งค๊ฐ๋ณ์๋ฅผ ์ถ๊ฐํ๋ ์ฝ๋๋ฅผ ์์ฑํ๋ค. |
<jsp:plugin> | OBJECT ๋๋ EMBED HTML ํ๊ทธ๋ฅผ ์์ฑํ๋ค. |
<jsp:element> | ์์์ XML ํ๊ทธ๋ HTML ํ๊ทธ๋ฅผ ์์ฑํ๋ค. |
<jsp:useBean>
<jsp:useBean>์ application, session, request, page ๋ณด๊ด์์ ์ ์ฅ๋ ์๋ฐ ๊ฐ์ฒด๋ฅผ ๊บผ๋ผ ์ ์๋ค.
๋ง์ฝ ๋ณด๊ด์์ ์ ์ฅ๋ ๊ฐ์ฒด๊ฐ ์๋ค๋ฉด ์๋ก ์์ฑํ์ฌ ํด๋น ๋ณด๊ด์์ ์ ์ฅํ๋ค.
<jsp:useBean> ๋ฌธ๋ฒ
<jsp:useBean id="์ด๋ฆ" scope="page | request | session | application" class="ํด๋์ค๋ช " type="ํ์ ๋ช " />
<jsp:useBean> ์ฌ์ฉ ์
1
2
3
4
|
<jsp:useBean id="members"
scope="request"
class="java.util.ArrayList"
type="java.util.ArrayList<spms.vo.Member>"/>
|
cs |
์ JSP ์ฝ๋๋ ๋ค์ ์๋ฐ ์ฝ๋์ ๊ฐ๋ค.
์๋ฐ ์ฝ๋
1
2
3
4
5
|
java.util.ArrayList<spms.vo.Member> members = (java.util.ArrayList<spms.vo.Member>) request.getAttribute("members");
if(members = null) {
members = new java.util.ArrayList();
request.setAttribute("members", members);
}
|
cs |
<jsp:useBean> - id ์์ฑ
๊ฐ์ฒด์ ์ด๋ฆ์ ์ค์ ํ๋ค. ์ด ์ด๋ฆ์ 3๊ตฐ๋ฐ์์ ์ฌ์ฉ๋๋ค.
โ ๊บผ๋ธ ๊ฐ์ฒด์ ์ฐธ์กฐ ๋ณ์ ์ด๋ฆ
โก getAttribute()๋ก ๊ฐ์ ๊บผ๋ผ๋ ์ฌ์ฉํ๋ ์ด๋ฆ
โข ๊ฐ์ฒด๋ฅผ ์์ฑํ ๊ฒฝ์ฐ ๋ณด๊ด์์ ์ ์ฅํ๋ key๊ฐ์ ์ด๋ฆ
<jsp:useBean> - scope ์์ฑ
๋ณด๊ด์๋ฅผ ์ง์ ํ๋ค. page(๊ธฐ๋ณธ๊ฐ), request, session, application ์ค ํ๋๋ฅผ ์ง์ ํ ์ ์๋ค.
- page = JspContext(๊ธฐ๋ณธ๊ฐ)
- request = ServletRequest
- session = HttpSession
- application = ServletContext
<jsp:useBean> - class ์์ฑ
class ์์ฑ์ ์๋ฐ ๊ฐ์ฒด๋ฅผ ์์ฑํ ๋ ์ฌ์ฉํ ํด๋์ค ์ด๋ฆ์ ์ง์ ํ๋ค.
๋ฐ๋์ ํจํค์ง ์ด๋ฆ์ ํฌํจํด์ผํ๋ค. (QName)
new ์ฐ์ฐ์๋ฅผ ์ฌ์ฉํ๋ฏ๋ก ์ธํฐํ์ด์ค๋ ์ฌ ์ ์๋ค.
scope์์ ์ง์ ํ ๋ณด๊ด์์์ ๊ฐ์ฒด๋ฅผ ์ฐพ์ง ๋ชปํ ๊ฒฝ์ฐ class์ ๊ฐ์ ์ฌ์ฉํด์ ์ธ์คํด์ค๋ฅผ ์์ฑํ๋ค.
์์ฑ๋ ๊ฐ์ฒด๋ scope ๋ณด๊ด์์ ์๋์ผ๋ก ์ ์ฅ๋๋ค.
class ์์ฑ์ด ์์ผ๋ฉด ๊ฐ์ฒด๋ฅผ ์์ฑํ ์ ์๋ค.
<jsp:useBean> - type ์์ฑ
type ์์ฑ์๋ ์ฐธ์กฐ ๋ณ์๋ฅผ ์ ์ธํ ๋ ์ฌ์ฉํ ํ์ (ํด๋์ค, ์ธํฐํ์ด์ค)์ ์ง์ ํ๋ค.
๋ฐ๋์ ํจํค์ง ์ด๋ฆ์ ํฌํจํ QName์ ์ง์ ํด์ผ ํ๋ค.
type ๊ฐ์ ์ง์ ํ์ง ์์ผ๋ฉด class ์์ฑ์ ๊ฐ์ ์ฌ์ฉํ๋ค.
<jsp:useBean> ์ฌ์ฉ ์์
์๋ ์ฝ๋๋ ๋ค์๊ณผ ๊ฐ์ ํ๋ฉด์ ์ถ๋ ฅํ๋ jsp์ด๋ค.
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
26
27
28
29
30
|
<%@ page import="com.atoz_develop.spms.vo.Student" %>
<%@ page import="java.util.List" %>
<%@ page import="java.util.ArrayList" %>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<title>ํ์ ๋ชฉ๋ก</title>
</head>
<body>
<jsp:include page="/Header.jsp"/>
<h1>ํ์ ๋ชฉ๋ก</h1>
<p><a href="add">์ ๊ท ํ์</a></p>
<%
List<Student> students = (ArrayList<Student>)request.getAttribute("students");
for(Student student: students) {
%>
<%=student.getStudentNo()%>,
<%=student.getDepartment()%>,
<a href="update?student_no=<%=student.getStudentNo()%>"><%=student.getStudentName()%></a>,
<%=student.getGrade()%>,
<%=student.getGender()%>,
<%=student.getAge()%>,
<%=student.getPhoneNumber()%>,
<%=student.getAddress()%><br>
<%
}
%>
<jsp:include page="/Tail.jsp"/>
</body>
</html>
|
cs |
์ด๋ฅผ <jsp:useBean>์ ์ฌ์ฉํด์ ๋ค์๊ณผ ๊ฐ์ด ๋ฐ๊ฟ ์ ์๋ค. (13๋ผ์ธ์ด ์ถ๊ฐ๋จ)
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
26
27
28
29
30
31
32
|
<%@ page import="com.atoz_develop.spms.vo.Student" %>
<%@ page import="java.util.List" %>
<%@ page import="java.util.ArrayList" %>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<title>ํ์ ๋ชฉ๋ก</title>
</head>
<body>
<jsp:include page="/Header.jsp"/>
<h1>ํ์ ๋ชฉ๋ก</h1>
<p><a href="add">์ ๊ท ํ์</a></p>
<jsp:useBean id="students" scope="request" class="java.util.ArrayList" type="java.util.List<com.atoz_develop.spms.vo.Student>" />
<%
// <jsp:useBean> ์ฌ์ฉ(์๋จ ์ฝ๋)ํ์ฌ ์ฃผ์์ฒ๋ฆฌ
// List<Student> students = (ArrayList<Student>)request.getAttribute("students");
for(Student student: students) {
%>
<%=student.getStudentNo()%>,
<%=student.getDepartment()%>,
<a href="update?student_no=<%=student.getStudentNo()%>"><%=student.getStudentName()%></a>,
<%=student.getGrade()%>,
<%=student.getGender()%>,
<%=student.getAge()%>,
<%=student.getPhoneNumber()%>,
<%=student.getAddress()%><br>
<%
}
%>
<jsp:include page="/Tail.jsp"/>
</body>
</html>
|
cs |
๋ ๋ค๋ฅธ ์๋ก ๋ค์์ ๋ก๊ทธ์ธํ ์ฌ์ฉ์ ์ ๋ณด๋ฅผ ์ถ๋ ฅํ๋ JSP์ด๋ค.
1
2
3
4
5
6
7
8
9
10
11
12
13
|
<%@ page import="com.atoz_develop.spms.vo.Student" %>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<%
Student student = (Student) session.getAttribute("student");
%>
<div style="background-color: darkcyan; color: aliceblue; height: 20px; padding: 5px;">
SPMS
<% if(student.getStudentNo() != null) { %>
<span style="float: right;"><%=student.getStudentName()%>
<a style="color: white;" href="<%=request.getContextPath()%>/auth/logout">๋ก๊ทธ์์</a>
</span>
<% } %>
</div>
|
cs |
<jsp:useBean>์ ์ฌ์ฉํด์ ์๋์ ๊ฐ์ด ๋ณ๊ฒฝํ ์ ์๋ค.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
|
<%@ page import="com.atoz_develop.spms.vo.Student" %>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<jsp:useBean id="student" scope="session" class="com.atoz_develop.spms.vo.Student" />
<%
// Student student = (Student) session.getAttribute("student");
%>
<div style="background-color: darkcyan; color: aliceblue; height: 20px; padding: 5px;">
SPMS
<% if(student.getStudentNo() != null) { %>
<span style="float: right;"><%=student.getStudentName()%>
<a style="color: white;" href="<%=request.getContextPath()%>/auth/logout">๋ก๊ทธ์์</a>
</span>
<% } %>
</div>
|
cs |
์ฌ์ค ์ค์ ํ๋ฉด ๊ฐ๋ฐ์ JavaScript ๊ธฐ๋ฐ ๊ธฐ์ ์ด ๋ง์ด ํ์ฉ๋๋ค.
JSP ๊ธฐ์ ์ ์ข ์๋๊ธฐ๋ณด๋ค๋ ์๋ฒ ์ธก ๊ธฐ์ ์ ๋ ๋ฆฝ์ ์ธ ํ์ค ์น ๊ธฐ์ ์ ๋ฐฐ์ฐ๊ณ ์ฌ์ฉํ๋๊ฒ ์ข๋ค.
'Javaยท๏ปฟServletยท๏ปฟJSP' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[IntelliJ] ํ์๊ฐ์ ์์ (MVC) - (6) ํ์ ์ญ์ (0) | 2020.02.13 |
---|---|
[IntelliJ] ํ์๊ฐ์ ์์ (MVC) - (5) ๋ก๊ทธ์ธ/๋ก๊ทธ์์(HttpSession) (0) | 2020.02.13 |
ServletContext๋ก DB ์ปค๋ฅ์ ๊ฐ์ฒด ๊ด๋ฆฌํ๊ธฐ (0) | 2020.02.12 |
RequestDispatcher.forward()๋ฅผ ์ด์ฉํ ์๋ฌ ํ์ด์ง ์ถ๋ ฅํ๊ธฐ (0) | 2020.02.12 |
[IntelliJ] ํ์๊ฐ์ ์์ (MVC) - (4) ๋ทฐ(JSP) ๋ถ๋ฆฌํ๊ธฐ (0) | 2020.02.12 |
๋๊ธ