1) JSP๋?
๊ฒฐ๊ณผ๋ฅผ ์ถ๋ ฅํ ๋ชฉ์ ์ผ๋ก ์ฌ์ฉ
jsp๋ ์์ฒด๊ฐ ๋์ํ๋ ๊ฒ ์๋๋ผ ๋ชจ๋ jsp ์๋ธ๋ฆฟ์ผ๋ก ๋ฐ๋์ด์ ๋์ํด์
jsp๋ WebContent ์์ ์์. ์์ ๋๋ ํ ๋ฆฌ๋ฅผ ๋ง๋ค์ด๋ ๋๊ณ .
๋งจ ์ ์ง์๋ฌธ, ์ด๋ฐ ์ง์๋ฅผ ๋ฃ๋ ๊ฒ์ JSP๋ฅผ ์คํํ๋ WAS
<%@ 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>sum10</title>
</head>
<body>
๋ฐ ๊บฝ์ ์ ์๋ฐ ์ฝ๋
<%
int total = 0;
for(int i = 1; i <= 10; i++){
total = total + i;
}
%>
์ถ๋ ฅ๋๋ ์น๊ตฌ๋ ๊บฝ์ ์ total / out.print(); -> <%= %>
1๋ถํฐ 10๊น์ง์ ํฉ : <%=total %>
</body>
</html>
JSP ๋ฑ์ฅ ๋ฐฐ๊ฒฝ
-
๋ง์ดํฌ๋ก์ํํธ์์ ASP(Active Server Page)๋ผ๋ ์ฝ๊ฒ ์น์ ๊ฐ๋ฐํ ์ ์๋ ์คํฌ๋ฆฝํธ(script) ์์ง์ ๋ฐํํจ (1998๋ )
-
1997๋ ์ ๋ฐํ๋ ์๋ธ๋ฆฟ์ ASP์ ๋นํ์ฌ ์๋์ ์ผ๋ก ๊ฐ๋ฐ ๋ฐฉ์์ด ๋ถํธํจ
-
ASP์ ๋ํญํ๊ธฐ ์ํ์ฌ 1999๋ ์ฌ๋ง์ดํฌ๋ก์์คํ ์ฆ์์ JSP๋ฅผ ๋ฐํ
-
JSP๋ ์ค์ ๋ก ์๋ธ๋ฆฟ ๊ธฐ์ ์ ์ฌ์ฉ
ํญ์ jsp ๋ ์๋ธ๋ฆฟ์ผ๋ก ๋ฐ๋๊ณ ์ด ๋ฐ๋ ์๋ธ๋ฆฟ์ด ์คํ๋๋ ๊ฒ์ด๋ค.
๊ทธ๋์ ์๋ธ๋ฆฟ์ผ๋ก ๋ฐ๋ ํ์๋ ์๋ธ๋ฆฟ์ ๋ผ์ดํ์ฌ์ดํด๊ณผ ๋๊ฐ์ ๋ฐฉ์์ผ๋ก ์คํ๋๋ค.
2) JSP ๋ผ์ดํ์ฌ์ดํด
1์์ 10๊น์ง ์ถ๋ ฅํ๋ jsp๊ฐ ์๋ธ๋ฆฟ์ผ๋ก ๋ณ๊ฒฝ ๋ ํ์ผ์ ๋๋ค. → ์ค์ ๋ก ๋ณด๋ ๋ฐฉ๋ฒ ์ ์
public void _jspInit() {
}
public void _jspDestroy() {
}
public void _jspService(final javax.servlet.http.HttpServletRequest request, final javax.servlet.http.HttpServletResponse response)
throws java.io.IOException, javax.servlet.ServletException {
.....
try {
.....
out.write("\n");
out.write("<!DOCTYPE html PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\" \"http://www.w3.org/TR/html4/loose.dtd\">\n");
out.write("<html>\n");
out.write("<head>\n");
out.write("<meta http-equiv=\"Content-Type\" content=\"text/html; charset=UTF-8\">\n");
out.write("<title>sum10</title>\n");
out.write("</head>\n");
out.write("<body>\n");
out.write("\n");
int total = 0;
for(int i = 1; i <= 10; i++){
total = total + i;
}
out.write("\n");
out.write("\n");
out.write("1๋ถํฐ 10๊น์ง์ ํฉ : ");
out.print(total );
out.write("\n");
out.write("\n");
out.write("</body>\n");
out.write("</html>");
} catch (java.lang.Throwable t) {
.....
}
} finally {
_jspxFactory.releasePageContext(_jspx_page_context);
}
}
์คํฌ๋ฆฝํ๋ฆฟ ๋ถ๋ถ์ด๋ผ๊ณ java ์ฝ๋๋ฅผ ์
๋ ฅํ ๋ถ๋ถ์ ๋ค์๊ณผ ๊ฐ์ด ์
๋ ฅ๋์ด ์์ต๋๋ค.
int total = 0;
for(int i = 1; i <= 10; i++){
total = total + i;
}
sum10.jsp๊ฐ ์คํ๋ ๋ ๋ฒ์ด์ง๋ ์ผ
-
์ด๊ธ๋ฆฝ์ค ์ํฌ ์คํ์ด์ค ์๋์ .metadata ํด๋์ sum10_jsp.javaํ์ผ ์์ฑ๋๋ค.
-
ํด๋น ํ์ผ์ _jspService() ๋ฉ์๋ ์์ ์ดํด ๋ณด๋ฉด jspํ์ผ์ ๋ด์ฉ์ด ๋ณํ๋์ด ๋ค์ด๊ฐ ์๋ ๊ฒ์ ํ์ธํ ์ ์๋ค.
-
sum10_jsp.java๋ ์๋ธ๋ฆฟ ์์ค๋ก ์๋์ผ๋ก ์ปดํ์ผ๋๋ฉด์ ์คํ๋์ด ๊ทธ ๊ฒฐ๊ณผ๊ฐ ๋ธ๋ผ์ฐ์ ๋ณด์ฌ์ง.
JSP์ ์คํ์์
-
๋ธ๋ผ์ฐ์ ๊ฐ ์น์๋ฒ์ JSP์ ๋ํ ์์ฒญ ์ ๋ณด๋ฅผ ์ ๋ฌํ๋ค.
-
๋ธ๋ผ์ฐ์ ๊ฐ ์์ฒญํ JSP๊ฐ ์ต์ด๋ก ์์ฒญํ์ ๊ฒฝ์ฐ๋ง JSP๋ก ์์ฑ๋ ์ฝ๋๊ฐ ์๋ธ๋ฆฟ์ผ๋ก ์ฝ๋๋ก ๋ณํํ๋ค. (java ํ์ผ ์์ฑ)
-
์๋ธ๋ฆฟ ์ฝ๋๋ฅผ ์ปดํ์ผํด์ ์คํ๊ฐ๋ฅํ bytecode๋ก ๋ณํํ๋ค. (class ํ์ผ ์์ฑ)
-
์๋ธ๋ฆฟ ํด๋์ค๋ฅผ ๋ก๋ฉํ๊ณ ์ธ์คํด์ค(๊ฐ์ฒด)๋ฅผ ์์ฑํ๋ค. ๋๊ฐ์? jsp ์์ง์ด์
-
์๋ธ๋ฆฟ์ด ์คํ๋์ด ์์ฒญ์ ์ฒ๋ฆฌํ๊ณ ์๋ต ์ ๋ณด๋ฅผ ์์ฑํ๋ค.
jspInit์ด๋ jspDestroy๊ฐ ์กด์ฌํ๊ณ ์๊ธฐ๋ ํ์ง๋ง ์ฌ๋ฌ๋ถ๋ค์ด scriptlet์ ์ผ๋ ๊ฒ๋ค์ ๋ค jspService๋ผ๋ ๋ฉ์๋ ์์๋ง ๋ค์ด์์ ๋ณ๊ฒฝ์ด ๋๊ณ ์์ด์
์ ๊ทธ๋ด๊น์?
์๋ธ๋ฆฟ ํ์๋ฉด์ ๋๋ผ์ จ์ง๋ง ์๋ต์ ํฌํจ๋๋ ๊ฑด Service ๋ฐ์ ์๊ฑฐ๋ ์.
๋งค๋ฒ ํธ์ถ๋๋ ๊ฒ Service ๋ฐ์ ์๊ธฐ ๋๋ฌธ์ ๊ทธ๋์.
๊ทธ๋ฐ๋ฐ ๊ทธ๋ผ JSP์์๋ ํญ์ Service์ ๋ฐ์๋ ๋ชป ์จ? ๊ทธ๋ ์ง๋ ์์์.
<%!๋ผ๊ณ ์ฐ๋ ์ ์ธ์%>
์ฌ๋ฌ๋ถ์ด ๋ค๋ฅธ ํด๋์ค์ ๋ฉ์๋๋ฅผ ์ ์ธํ๋ค๋๊ฐ ํ๋๋ฅผ ์ ์ธํ ๋ ๋ฃ์ด์ฃผ์๋ฉด Service๋ผ๋ ๋ฉ์๋ ๋ด์ ๋ง๋ค์ด์ง๋ ๊ฒ ์๋๋ผ jspService๋ฉ์๋ ๋ฐ๊นฅ์ชฝ์ ํด๋น ์ฝ๋๋ค์ด ๋ง๋ค์ด์ง๊ฒ ํ ์ ์์ด์.
lifecycle.jsp
(๊ฐ๋ด์ฉ ์๋ต)
<title>Insert title here</title>
</head>
<body>
hello
<%
System.out.println("_jspService()");
%>
<%!
public void jspInit() {
System.out.println("jspInit()!");
}
public void jspDestroy() {
System.out.println("jspDestroy()");
}
%>
</body>
</html>
→ ์ ์ ์๋ ๊ฒ: jsp๋ ๋๊ฐ์ด init service destroy, ๋ณด๋ ๋ฐฉ๋ฒ์ด ์กฐ๊ธ ๋ณต์กํ ๋ฟ!
3) JSP ๋ฌธ๋ฒ
์คํฌ๋ฆฝํธ ์์์ ์ดํด
-
JSP ํ์ด์ง์์๋ ์ ์ธ๋ฌธ(Declaration), ์คํฌ๋ฆฝํธ๋ฆฟ(Scriptlet), ํํ์(Expression) ์ด๋ผ๋ 3๊ฐ์ง์ ์คํฌ๋ฆฝํธ ์์๋ฅผ ์ ๊ณต
1. ์ ์ธ๋ฌธ
-
์ ์ธ๋ฌธ : <%! %>
-
์ ์ธ๋ฌธ์ JSP ํ์ด์ง ๋ด์์ ํ์ํ ๋ฉค๋ฒ๋ณ์๋ ๋ฉ์๋๊ฐ ํ์ํ ๋ ์ ์ธํด ์ฌ์ฉํ๋ ์์
-
<%! ๋ฌธ์ฅ %>
-
์์น๋ ํฌ๊ฒ ์ค์ํ์ง ์๋ค. ์ด์ฐจํผ ์๋ฐ๋ก ๋ฐ๋ ๋ ์์น๊ฐ ์ง์ ๋๋๊น
์์์ ๋ชจ๋ service ๋ผ๋ ๋ฉ์๋ ์์์ ์๋ฐ ์ฝ๋๋ก ๋ฐ๋์ด ์์๋ ๊ฑฐ ๊ธฐ์ตํ์คํ ๋ฐ์ ์ด ์ ์ธ๋ฌธ์ ์ฌ์ฉํ๋ฉด ์๋น์ค ๋ฉ์๋๊ฐ ์๋๋ผ ํด๋์ค ๋ฐ๋ ์ชฝ์ ํด๋น ์ฝ๋๊ฐ ๋ฐ๋๋ ๊ฒ์ ๋ณผ ์ ์์ด์.
exam1.jsp
<%@ 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>
id : <%=getId() %>
</body>
</html>
<%!
String id = "u001"; //๋ฉค๋ฒ๋ณ์ ์ ์ธ
public String getId( ) { //๋ฉ์๋ ์ ์ธ
return id;
}
%>
2. ์คํฌ๋ฆฝํธ๋ฆฟ
-
์คํฌ๋ฆฝํธ๋ฆฟ : <% %>
-
๊ฐ์ฅ ์ผ๋ฐ์ ์ผ๋ก ๋ง์ด ์ฐ์ด๋ ์คํฌ๋ฆฝํธ ์์
-
์ฃผ๋ก ํ๋ก๊ทธ๋๋ฐ์ ๋ก์ง์ ๊ธฐ์ ํ ๋ ์ฌ์ฉ
-
์คํฌ๋ฆฝํธ๋ฆฟ์์ ์ ์ธ๋ ๋ณ์๋ ์ง์ญ๋ณ์
-
์คํฌ๋ฆฝํธ๋ฆฟ์ ๋ฌธ๋ฒ
-
<% ๋ฌธ์ฅ%> → ๋ค service ๋ฉ์๋ ์์ ์ ์ธ
exam02.jsp
<%@ 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>
<%
for(int i = 1; i <= 5; i++){
%>
<H<%=i %>> ์๋ฆ๋ค์ด ํ๊ธ </H<%=i %>>
<%
}
%>
</body>
</html>
3. ํํ์(Expression)
-
ํํ์ : <%=%>
-
JSP ํ์ด์ง์์ ์น ๋ธ๋ผ์ฐ์ ์ ์ถ๋ ฅํ ๋ถ๋ถ์ ํํ (์ฆ, ํ๋ฉด์ ์ถ๋ ฅํ๊ธฐ ์ํ ๊ฒ)
-
์คํฌ๋ฆฝํธ๋ฆฟ๋ด์์ ์ถ๋ ฅํ ๋ถ๋ถ์ ๋ด์ฅ๊ฐ์ฒด์ธ out ๊ฐ์ฒด์ print() ๋๋ println() ๋ฉ์๋๋ฅผ ์ฌ์ฉํด์ ์ถ๋ ฅ
-
ํํ์์ ๋ฌธ๋ฒ
-
<%=๋ฌธ์ฅ%>
4. ์ฃผ์(Comment)
-
JSPํ์ด์ง์์ ์ฌ์ฉํ ์ ์๋ ์ฃผ์
-
HTML์ฃผ์, ์๋ฐ์ฃผ์, JSP์ฃผ์
1. HTML ์ฃผ์ <!-- html ์ฃผ์์ ๋๋ค. -->
-
HTML ์ฃผ์์ <!--๋ก ์์ํด์ -->๋ก ๋๋๋ ํํ
-
HTML ์ฃผ์์ HTML์ฃผ์์ ์ฌ์ฉํ ํ์ด์ง๋ฅผ ์น์์ ์๋น์คํ ๋ ํ๋ฉด์ ์ฃผ์์ด ๋ด์ฉ์ด ํ์๋์ง๋ ์์ผ๋ , [์์ค๋ณด๊ธฐ]์ํํ๋ฉด HTML์ฃผ์์ ๋ด์ฉ์ด ํ๋ฉด์ ํ์.
-
์์ค๋ณด๊ธฐ: ๋ณด์, ์น ์๋ต๊น์ง ๋ค์ด๊ฐ ๊ทธ๋๊น out.write(“<!-- html ์ฃผ์์ ๋๋ค. -->”); ์ด๋ฐ ์์ผ๋ก
2. JSP์ฃผ์ <%-- JSP ์ฃผ์์ ๋๋ค. --%>
-
JSP ํ์ด์ง์์๋ง ์ฌ์ฉ๋๋ฉฐ <%--๋ก ์์ํด์ --%>๋ก ๋๋๋ ํํ
-
JSP ์ฃผ์์ ํด๋น ํ์ด์ง๋ฅผ, ์น ๋ธ๋ผ์ฐ์ ๋ฅผ ํตํด ์ถ๋ ฅ ๊ฒฐ๊ณผ๋ก์ ํ์ํ๊ฑฐ๋, ์น ๋ธ๋ผ์ฐ์ ์์์ ์์ค ๋ณด๊ธฐ๋ฅผ ํด๋ ํ์ ๋์ง ์์. ๋ํ JSP์ฃผ์ ๋ด์ ์คํ์ฝ๋๋ฅผ ๋ฃ์ด๋ ๊ทธ ์ฝ๋๋ ์คํ๋์ง ์์.
-
์์ค๋ณด๊ธฐ: ์๋ณด์, ์นํ๋ฉด: ์๋ณด์
3. ์๋ฐ์ฃผ์
-
์๋ฐ ์ฃผ์์ //, /**/์ ์ฌ์ฉํด์ ์์ฑ.
-
//์ ํ ์ค์ง๋ฆฌ ์ฃผ์์ ์์ฑํ ๋ ์ฌ์ฉ๋๊ณ , /**/์ ์ฌ๋ฌ ์ค์ ์ฃผ์์ ์์ฑํ ๋ ์ฌ์ฉ
-
์คํฌ๋ฆฝํธ๋ฆฟ์ด๋ ์ ์ธ๋ฌธ์์ ์ฌ์ฉ๋๋ ์ฃผ์์ผ๋ก, ์๋ฐ์ ์ฃผ์ ์ฒ๋ฆฌ ๋ฐฉ๋ฒ์ด ๊ฐ์
-
์์ค๋ณด๊ธฐ: ๋ณด์, ์๋ฐ๋ฅผ ์คํ์ํฌ ๋ ์ฃผ์์ด๊ธฐ์ ์ฃผ์์ ๋นผ๊ณ ์คํ
4) JSP ๋ด์ฅ๊ฐ์ฒด
JSP ๋ด์ฅ ๊ฐ์ฒด๋?
-
JSP๋ฅผ ์คํํ๋ฉด ์๋ธ๋ฆฟ ์์ค๊ฐ ์์ฑ๋๊ณ ์คํ๋๋ค.
-
JSP์ ์ ๋ ฅํ ๋๋ถ๋ถ์ ์ฝ๋๋ ์์ฑ๋๋ ์๋ธ๋ฆฟ ์์ค์ _jspService() ๋ฉ์๋ ์์ ์ฝ์ ๋๋ ์ฝ๋๋ก ์์ฑ๋๋ค.
-
_jspService()์ ์ฝ์ ๋ ์ฝ๋์ ์๋ถ๋ถ์ ๋ฏธ๋ฆฌ ์ ์ธ๋ ๊ฐ์ฒด๋ค์ด ์๋๋ฐ, ํด๋น ๊ฐ์ฒด๋ค์ jsp์์๋ ์ฌ์ฉ ๊ฐ๋ฅํ๋ค.
-
response, request, application, session, out๊ณผ ๊ฐ์ ๋ณ์๋ฅผ ๋ด์ฅ๊ฐ์ฒด๋ผ๊ณ ํ๋ค.
๋ด์ฅ ๊ฐ์ฒด์ ์ข ๋ฅ
ImplicitObjects.jsp
<%@ 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>
<%
StringBuffer url = request.getRequestURL();
// ํ์ผ ๋ด์ request ๊ฐ์ฒด๋ฅผ ์ ์ธํ ์ ์ด ์์ด๋ ๋ด์ฅ ๊ฐ์ฒด ๋๋ถ์ ๊ทธ๋ฅ ์ฌ์ฉํ ์ ์๋ค.
out.println("url : " + url.toString()); // out ๋ !
out.println("<br>");
%>
</body>
</html>
'Spring > Boost Course Web' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
3.1 Spring Core (0) | 2020.11.19 |
---|---|
2.6 JSTL & EL (0) | 2020.11.19 |
2.5 Scope (0) | 2020.11.19 |
2.3 Servlet (0) | 2020.11.19 |
2.2 ์น ๊ฐ๋ฐํ๊ฒฝ ์ค์ (0) | 2020.11.19 |
2.1 Web๊ฐ๋ฐ์ ์ดํด (0) | 2020.11.19 |