[Day1] JSP/Servlet 1 [12/2]
ํ๋ก์ ํธ ์์ฑ
workspace ์์ฑ
window - preference - workspace ์ธ์ฝ๋ฉ / css / html / jsp - utf8
font - ๊ธ๊ผด - ์ ํ
create a dynamic web project - jspPro, target ~ : new runtime - apche tomcat 8.5 - ์ํ์น ํฐ์บฃ ์ฐพ์์ ์ ์ฉ(ํ์ผ์์)
next
generat with~ ์ฒดํฌํ๊ธฐ
finish
webappํด๋ - ์ค๋ฅธ์ชฝ๋ง์ฐ์ค - jsp - new jsp file(html5)
viewoport, date time, shourtcut.icon, cdn jquery ์ค์
jspPro - ์ค๋ฅธ์ชฝ๋ง์ฐ์ค - configure - convert to term project - modules - browser ๋๊ฐ ์ฒดํฌ & jquery ๋ค ์ฒดํฌ
jspPro - ์ค๋ฅธ์ชฝ๋ง์ฐ์ค - configure - convert to term project - term - ecmascript 5์์ 6์ผ๋ก ๋ณ๊ฒฝ
ctrl f11 (run server) - tomcat 8.5 - next - jspPro ์ฌ๋ฆฌ๊ฒ ๋ค๊ณ ํ๊ณ finish (์๋ฒ ํญ์ ์ฌ๋ผ๊ฐ)
port ๋ณ๊ฒฝ : server.xml - port ๋ฒํธ ๋ณ๊ฒฝ (63๋ผ์ธ)
์๋ฒ ์์ : tomcat์๋ฒ ์ค๋ฅธ์ชฝ๋ง์ฐ์ค - start
ctrl f11 (๋ธ๋ผ์ฐ์ ์ ๋์์ง)
Chapter 01.
1. ๋ชฉ์ฐจ
2. JDK 1.8.341
JAVA_HOME ํ๊ฒฝ์ค์
3. ํฐ์บฃ 8.5.XX
Chapter 02.
1. ์น ํ๊ฒฝ : ํด ์์ฒญ-> ์น์๋ฒ
<-์๋ต
2. URL / URI ์ฐจ์ด์
3. ์นํ์ด์ง : ์น ๋ธ๋ผ์ฐ์ ์ ์ถ๋ ฅ๋ ๋ด์ฉ, ex01.html, ex01.jsp ๋ฑ๋ฑ
์น์ฌ์ดํธ : ์นํ์ด์ง์ ๋ฌถ์
4. ์น๋ธ๋ผ์ฐ์ <-์๋ต [์น ์๋ฒ]
(ํด๋ผ์ด์ธํธ )
(1)url ์ฃผ์์ ๋ ฅ ์ํฐ
www.kenik.com 211.232.111.22 ->
DNS
๋ธ๋ผ์ฐ์ [url] GET ๋ฐฉ์ ์์ฒญ ( ๊ธฐ์ต )
5. http ํ๋กํ ์ฝ
์์ฒญ ํค๋ + ๋ชธ์ฒด
์๋ต ํค๋ + ๋ชธ์ฒด
์ดํด/ ํ์ธ.
6. ์ ์ ์์ ( ex02.html ) / ๋์ ์์ (ex02.jsp )
์ ์
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
<h3>ex02.html - ์ ์ ์์(ํ์ด์ง)</h3>
<h1> ํ์ฌ ์๊ฐ : 2022-12-02 ์ค์ 10:23:55 </h1>
</body>
</html>
๋์
<!-- JSP ๊ตฌ์ฑ์์ ์ค ํ๋ : page ์ง์์ -->
<%@ page import="java.text.SimpleDateFormat"%>
<%@ page import="java.util.Date"%>
<%@ page contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>2022. 12. 2. ์ค์ 10:17:54</title>
<link rel="shortcut icon" type="image/x-icon" href="../images/SiSt.ico">
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.6.1/jquery.min.js"></script>
<style>
</style>
</head>
<body>
<h3>ex02.jsp - ๋์ ์์(ํ์ด์ง)</h3>
<%
// jsp ๊ตฌ์ฑ์์ ์ค "์คํฌ๋ฆฝํธ ์์" 3๊ฐ์ง - ์คํฌ๋ฆฝํธ๋ฆฟ
// jsp ๊ตฌ์ฑ์์ ์ค "์คํฌ๋ฆฝํธ ์์" 3๊ฐ์ง - ํํ์
// ์๋ฐ ์ฝ๋ฉ.
// Date, Calendar, JDK1.8 ์ถ๊ฐ
Date now = new Date();
// ๋
,์,์ผ, ์,๋ถ,์ด
// ํ์ํ ํด๋์ค : 4๊ฐ์ง
String pattern = "yyyy-MM-dd a hh:mm:ss";
SimpleDateFormat sdf = new SimpleDateFormat(pattern);
String strNow = sdf.format(now); // ๋ฌธ๋ฒ ์๋ฌ
// ๋๊ฐ ์๋ฐ ์ฝ๋ฉ๋ค์ ์ปดํ์ผ/์คํ
// ex02.jsp -> ์์ฒญ -> [์น์๋ฒ]-> ex02.jsp+[java coding]
// ์๋ต ์ปด,์ค
// javac.exe, java.exe
// <- ์๋ต- -> Ex02.java ์๋ธ๋ฆฟ ํด๋์ค
// ์ปด.์ค -> ์น ์ปจํ
์ด๋ [ ์๋ธ๋ฆฟ ๊ฐ์ฒด ์์ฑ]
// WAS(ํฐ์บฃ)
%>
<h1> ํ์ฌ ์๊ฐ : <%= strNow %> </h1>
<script>
</script>
</body>
</html>
1) ์์ฒญ URL ์ ์น์๋ฒ๋ ๋ถ์
http://localhost:80/[jspPro] /days01 / ex01.jsp
๋๋ฉ์ธ
DNS
IP ์ฃผ์ context path(root) (-> ์น ์ฐพ์๊ฐ๋ ์ฃผ์)
๋ฌผ๋ฆฌ์ ๊ฒฝ๋ก C:\\Class\\Workspace\JspClass\jspPro\webapp
์น์๋ฒ
์ผํ๋ชฐ
์ฌ๋ด๊ด๋ฆฌ์น์ฌ์ดํธ
:
:
101 ํธ์ค\
7. ์น ํ๋ก๊ทธ๋๋ฐ ? ์น ์๋ฒ๊ฐ ์น ๋ธ๋ผ์ฐ์ ์ ์๋ต์ผ๋ก ์ ์กํ ๋ฐ์ดํฐ๋ฅผ
์์ฑํด ์ฃผ๋ ํ๋ก๊ทธ๋จ์ ์์ฑํ๋ ๊ฒ.
์ค๊ตญ์ง - ์ฃผ๋ฌธ -> [์น์๋ฒ(A)] + [WAS(ํฐ์บฃ)์๋ฆฌ์ฌ]
์๋น
์ํ์น ํฐ์บฃ( ์น์๋ฒ + WAS)
WAS(ํฐ์บฃ)
8. [๋ธ๋ผ์ฐ์ ] -> ์์ฒญ ์น์๋ฒ(์ํ์น) + jsp(java ์ปด/์ค)-> ์๋ต๋ฐ์ดํฐ
<-์๋ต ์๋ธ๋ฆฟ
์น์๋ฒ (WASํฐ์บฃ ) - ์น๊ธฐ์ ( jsp, servlet) , php ์น๊ธฐ์
IIS์น์๋ฒ - ์น๊ธฐ์ ( asp, asp.net)
9. java + server + ์คํ->์๋ต + ํ์ด์ง
JavaServer Pages == [ JSP ]
JSP -> html ์๋ต
-> xml ์๋ต *** jquery ajax
-> [JSON ์๋ต *** jquery ajax ]
๋ฑ๋ฑ
10. WAS ๋ง๋ค ์ง์ํ๋ jsp ๋ฒ์ ผ, servlet ๋ฒ์ ผ, EL ๋ฒ์ ผ ๋ฑ์ด ๋ค๋ฅด๋ค.
( Tomcat 8.5 2.3 3.1 3.0 )
11. p45 jsp ๋ง๋ค๊ณ ์คํ
days01/ex100.jsp X ์๋ฒ ์์ฒญ
1) HTTP ์ํ 404 - ์ฐพ์ ์ ์์
-> ์์ฒญ URL ํ์ธ
-> ์์ฒญ ํ์ผ X ํ์ธ
2) HTTP ์ํ 500 - ๋ด๋ถ ์๋ฒ ์๋ฌ ( ์ปดํ์ผ ์๋ฌ jsaperException )
- ๋ธ๋ผ์ฐ์ : ์๋ฌ ๋ฉ์์ง
- Console ์ฐฝ : ์๋ฌ ๋ฉ์์ง ํ์ธ
Chapter 03 ( p 50)
- ex03.jsp( html + java) -> ์๋ตํ html ๋ฌธ์ ์์ฑ
- jsp ์ฝ๋ = 1) ์ค์ ๋ถ๋ถ + 2) ์๋ต ์์ฑ ๋ถ๋ถ ๊ตฌ์ฑ
์ค์ ๋ถ๋ถ : <%@ ๋ถ๋ถ
์๋ต์์ฑ๋ถ๋ถ : html~ <% ์๋ฐ์ฝ๋ฉ ๋ถ๋ถ
[ ์ค์ ๋ถ๋ถ ]
1) ์์ฑํ ๋ฌธ์์ ํ์ (์ข ๋ฅ)
contentType="text/html; charset=UTF-8"
: JSP ํ์ด์ง์ ์์ฑํ ๋ฌธ์๊ฐ textํ์์ html๋ฌธ์์ ๋๋ค.
: ์ธ์ฝ๋ฉ(์บ๋ฆญํฐ์ ) UTF-8 ์ฌ์ฉ
2) ์ปค์คํ ํ๊ทธ ์ค์ . - JSTL
3) ์๋ฐํด๋์ค ์ง์
p 52
[ JSP ํ์ด์ง์ ๊ตฌ์ฑ์์ ]
1. ๋๋ ํฐ๋ธ( Directive ) == ์ง์์.
- JSP ํ์ด์ง์ ๋ํ ์ค์ ์ ๋ณด๋ฅผ ์ง์ ํ ๋ ์ฌ์ฉ.
<%-- <%@include %> --%>
1) page ์ง์์ - jsp ํ์ด์ง์ ํ์ํ ์ ๋ณด ์ค์ ( ์์ฑํ ๋ฌธ์ ์ข ๋ฅ, ๋ฒํผํฌ๊ธฐ, ๋ฑ๋ฑ)
2) taglib ์ง์์ - ํ๊ทธ๋ผ์ด๋ธ๋ฌ๋ฆฌ ์ง์
3) include ์ง์์ - ํน์ ์์ญ์ ๋ค๋ฅธ ๋ฌธ์๋ฅผ ํฌํจ.
* ํผ์ผํธ : ์๋ฒ์์ ์งํ๋๋ค๋ ์๋ฏธ
* ๊ณจ๋ฑ ์ด : ์ง์์
2. ์คํฌ๋ฆฝํธ ์์
- jsp์์ ๋ฌธ์์ ๋ด์ฉ์ ๋์ ์ผ๋ก ์์ฑํ๊ธฐ ์ํด์ ์ฌ์ฉ๋๋ ๊ฒ.
( DB ์ฐ๋ )
ex04.html ์ ์ ํ์ด์ง
<script>
// java kor 0~100 \d{1,3} 999 ~ 101
console.log( isNaN( 100 ) ) // false
console.log( isNaN( "10a" ) ) // true
console.log( isNaN( "10" ) ) // false
// 0<= <=150
</script>
* ์ ํจ์ฑ๊ฒ์ฌ๋ html์์ ํด๋ ์ถฉ๋ถ~!
ex04_ok.jsp ๋์ ํ์ด์ง (์๋ฐ)
ex04_el_ok.jsp ๋์ ํ์ด์ง (ELํํ์ธ์ด)
* html์์ form ํ๊ทธ ์์์ name ํ๊ทธ ์์ด์ผ ํ๋ผ๋ฏธํฐ ๊ฐ ๋์ด๊ฐ
1) ํํ์( Experssion) : ๊ฐ์ ์ถ๋ ฅ <%-- <%= ์ถ๋ ฅ๊ฐ, ๋ฉ์๋๋ช () %> --%>
2) ์คํฌ๋ฆฝํธ๋ฆฟ( ScriptLet) : ์๋ฐ ์ฝ๋ + ์คํ <%-- <% %> --%>
* -> ํผ์ผํธ ๋์ด๋ ์ฝ๋ฉ ์ฐ๊ฒฐ๋จ
3) ์ ์ธ๋ถ( Declaration ) : ๋ณ์ ์ ์ธ, ๋ฉ์๋(ํจ์) ์ ์ธ <%-- <%! %> --%>
ex07.jsp
html์์ n๊ฐ ์ ๋ ฅ ๋ฐ์์ -> jsp ๋ก ๋๊ฒจ์ฃผ๋ ๊ฒฝ์ฐ
- ๋๊ฒจ๋ฐ์ n๊ฐ์ด Null ์ธ์ง ์๋์ง ํ์ธ
- null ์ด ์๋ ๊ฒฝ์ฐ ์ฒ๋ฆฌ
- ์ฒ๋ฆฌ ํ ์ถ๋ ฅ
* n๊ฐ ์ฒ์์ null ์ ์งํ๋ ๋ฒ -> value ํ๊ทธ
์ ์ธ๋ถ( Declaration ) : ๋ณ์ ์ ์ธ, ๋ฉ์๋(ํจ์) ์ ์ธ
์คํฌ๋ฆฝํธ๋ฆฟ ์ ์ธํ ๋ณ์
์ ์ธ๋ถ " ์ฐจ์ด์ ?
*์๋ฐ ๋ฉ์๋๋ฅผ ํด๋น jspํ์ผ์์ ๋ฐ๋ก ์ฌ์ฉ๊ฐ๋ฅ
์? jsp -> WAS ์น์ปจํ ์ด๋(์๋ธ๋ฆฟ ์ฒ๋ฆฌ) -> ex07.class -> ์๋ธ๋ฆฟ ๊ฐ์ฒด ์์ฑ
์๋ธ๋ฆฟ ๊ฐ์ฒด ์์ฑ๋์ด์ ธ์ (new ์ฐ์ฐ์์ฒ๋ผ) ์ฌ์ฉ๊ฐ๋ฅ -> ์ฐจ์ด์ ๋ค์ ์๊ฐ์
DB Conn
com - utill - dbconn ๋ถ์ฌ๋ฃ๊ธฐ
* System.out.println(conn); // ์๋ฒ ์ฝ์์ฐฝ์ ์ถ๋ ฅ
* out.append(conn.toString()); // ํด๋ผ์ด์ธํธ ๋ธ๋ผ์ฐ์ ์ ์ถ๋ ฅ
1202 ์ง์ฐ์ง๋ง๊ธฐ
์ต๊ทผ๋๊ธ