Skip to content

Commit 5aea937

Browse files
committed
.
1 parent 78aed9c commit 5aea937

502 files changed

Lines changed: 14822 additions & 687 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

Lesson06/WebContent/Header.jsp

Lines changed: 7 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -1,28 +1,16 @@
1-
<%-- 3. 메뉴 추가 --%>
21
<%@page import="spms.vo.Member"%>
32
<%@ page language="java" contentType="text/html; charset=UTF-8"
43
pageEncoding="UTF-8"%>
5-
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
4+
<jsp:useBean id="member"
5+
scope="session"
6+
class="spms.vo.Member"/>
67
<div style="background-color:#00008b;color:#ffffff;height:20px;padding: 5px;">
78
SPMS(Simple Project Management System)
8-
9+
<% if (member.getEmail() != null) { %>
910
<span style="float:right;">
11+
<%=member.getName()%>
1012
<a style="color:white;"
11-
href="<%=request.getContextPath()%>/project/list.do">프로젝트</a>
12-
<a style="color:white;"
13-
href="<%=request.getContextPath()%>/member/list.do">회원</a>
14-
15-
<c:if test="${empty sessionScope.member or
16-
empty sessionScope.member.email}">
17-
<a style="color:white;"
18-
href="<%=request.getContextPath()%>/auth/login.do">로그인</a>
19-
</c:if>
20-
21-
<c:if test="${!empty sessionScope.member and
22-
!empty sessionScope.member.email}">
23-
${sessionScope.member.name}
24-
(<a style="color:white;"
25-
href="<%=request.getContextPath()%>/auth/logout.do">로그아웃</a>)
26-
</c:if>
13+
href="<%=request.getContextPath()%>/auth/logout">로그아웃</a>
2714
</span>
15+
<% } %>
2816
</div>

Lesson06/WebContent/META-INF/MANIFEST.MF

Lines changed: 0 additions & 3 deletions
This file was deleted.

Lesson06/WebContent/WEB-INF/application-context.properties

Lines changed: 0 additions & 2 deletions
This file was deleted.

Lesson06/WebContent/WEB-INF/web.xml

Lines changed: 16 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -4,18 +4,24 @@
44
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
55
http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"
66
id="WebApp_ID" version="3.0">
7-
<display-name>web05</display-name>
8-
<context-param>
9-
<param-name>contextConfigLocation</param-name>
10-
<param-value>/WEB-INF/application-context.properties</param-value>
11-
</context-param>
7+
<display-name>web06</display-name>
8+
9+
<!-- 컨텍스트 초기화 파라미터 -->
1210

13-
<resource-ref>
14-
<res-ref-name>jdbc/studydb</res-ref-name>
15-
<res-type>javax.sql.DataSource</res-type>
16-
<res-auth>Container</res-auth>
17-
</resource-ref>
11+
<!-- 필터 선언 -->
12+
13+
<!-- 필터 URL 매핑 -->
14+
15+
<!-- 서블릿 선언 -->
1816

17+
<!-- 서블릿을 URL과 연결 -->
18+
19+
<resource-ref>
20+
<res-ref-name>jdbc/studydb</res-ref-name>
21+
<res-type>javax.sql.DataSource</res-type>
22+
<res-auth>Container</res-auth>
23+
</resource-ref>
24+
1925
<welcome-file-list>
2026
<welcome-file>index.html</welcome-file>
2127
<welcome-file>index.htm</welcome-file>

Lesson06/WebContent/auth/LogInFail.jsp

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,3 @@
1-
<%-- 2. 프런트 컨트롤러 적용 - 링크에 .do 붙임 --%>
21
<%@ page
32
language="java"
43
contentType="text/html; charset=UTF-8"
@@ -8,7 +7,7 @@
87
<html>
98
<head>
109
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
11-
<meta http-equiv="Refresh" content="1;url=login.do">
10+
<meta http-equiv="Refresh" content="1;url=login">
1211
<title>로그인 실패</title>
1312
</head>
1413
<body>

Lesson06/WebContent/auth/LogInForm.jsp

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,3 @@
1-
<%-- 2. 프런트 컨트롤러 적용 - 링크에 .do 붙임 --%>
21
<%@ page
32
language="java"
43
contentType="text/html; charset=UTF-8"
@@ -12,7 +11,7 @@
1211
</head>
1312
<body>
1413
<h2>사용자 로그인</h2>
15-
<form action="login.do" method="post">
14+
<form action="login" method="post">
1615
이메일: <input type="text" name="email"><br>
1716
암호: <input type="password" name="password"><br>
1817
<input type="submit" value="로그인">

Lesson06/WebContent/el/el01.jsp

Lines changed: 51 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,51 @@
1+
<%@page import="spms.vo.Member"%>
2+
<%@page import="java.util.HashMap"%>
3+
<%@page import="java.util.Map"%>
4+
<%@page import="java.util.List"%>
5+
<%@page import="java.util.LinkedList"%>
6+
<%@ page language="java" contentType="text/html; charset=UTF-8"
7+
pageEncoding="UTF-8"%>
8+
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
9+
<html>
10+
<head>
11+
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
12+
<title>EL(Expression Language)</title>
13+
<style type="text/css">
14+
body {
15+
font-size: small;
16+
}
17+
table {
18+
border: thin solid gray;
19+
border-collapse: collapse;
20+
}
21+
22+
td, th {
23+
border: thin dotted gray;
24+
padding: 2px;
25+
}
26+
27+
th {
28+
background-color: lightgray;
29+
}
30+
31+
pre {
32+
font-size: 90%;
33+
}
34+
</style>
35+
</head>
36+
<body>
37+
<p><a href="el02.jsp">[다음]</a></p>
38+
<h2>EL - 리터럴 표현식</h2>
39+
<table>
40+
<tr><th>데이터 형</th><th>EL 코드</th><th>실행 결과</th></tr>
41+
<tr><td>문자열</td><td>\${"test"}</td><td>${"test"}</td></tr>
42+
<tr><td>문자열</td><td>\${'test'}</td><td>${'test'}</td></tr>
43+
<tr><td>정수</td><td>\${20}</td><td>${20}</td></tr>
44+
<tr><td>부동소수점</td><td>\${3.14}</td><td>${3.14}</td></tr>
45+
<tr><td>불린</td><td>\${true}</td><td>${true}</td></tr>
46+
<tr><td>널 값</td><td>\${null}</td><td>${null}</td></tr>
47+
</table>
48+
49+
<p><a href="el02.jsp">[다음]</a></p>
50+
</body>
51+
</html>

Lesson06/WebContent/el/el02.jsp

Lines changed: 162 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,162 @@
1+
<%@page import="java.util.ListResourceBundle"%>
2+
<%@page import="java.util.ResourceBundle"%>
3+
<%@page import="spms.vo.Member"%>
4+
<%@page import="java.util.HashMap"%>
5+
<%@page import="java.util.Map"%>
6+
<%@page import="java.util.List"%>
7+
<%@page import="java.util.LinkedList"%>
8+
<%@ page language="java" contentType="text/html; charset=UTF-8"
9+
pageEncoding="UTF-8"%>
10+
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
11+
<html>
12+
<head>
13+
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
14+
<title>EL(Expression Language)</title>
15+
<style type="text/css">
16+
body {
17+
font-size: small;
18+
}
19+
table {
20+
border: thin solid gray;
21+
border-collapse: collapse;
22+
}
23+
24+
td, th {
25+
border: thin dotted gray;
26+
padding: 2px;
27+
}
28+
29+
th {
30+
background-color: lightgray;
31+
}
32+
33+
pre {
34+
font-size: 90%;
35+
}
36+
</style>
37+
</head>
38+
<body>
39+
<p><a href="el01.jsp">[이전]</a><a href="el03.jsp">[다음]</a></p>
40+
<h2>EL - 값 꺼내기</h2>
41+
<%
42+
// 데이터 준비
43+
pageContext.setAttribute("scores", new int[]{90,80,70,100});
44+
45+
List<String> nameList = new LinkedList<String>();
46+
nameList.add("홍길동");
47+
nameList.add("임꺽정");
48+
nameList.add("일지매");
49+
pageContext.setAttribute("nameList", nameList);
50+
51+
Map<String,String> map = new HashMap<String,String>();
52+
map.put("s01", "홍길동");
53+
map.put("s02", "임꺽정");
54+
map.put("s03", "일지매");
55+
pageContext.setAttribute("map", map);
56+
57+
pageContext.setAttribute("member",
58+
new Member()
59+
.setNo(100)
60+
.setName("홍길동")
61+
.setEmail("hong@test.com"));
62+
63+
pageContext.setAttribute("myRB",
64+
ResourceBundle.getBundle("MyResourceBundle"));
65+
%>
66+
<table>
67+
<tr><th>대상</th><th>EL 코드</th><th>설명</th></tr>
68+
69+
<tr>
70+
<td>배열</td><td>\${myArray[1]}</td>
71+
<td>배열에서 해당 인덱스의 값을 꺼낸다.<br>
72+
<pre>
73+
[자바 코드]
74+
pageContext.setAttribute("scores", new int[]{90,80,70,100});
75+
76+
[실행 결과]
77+
\${scores[2]} = ${scores[2]}
78+
</pre>
79+
</td>
80+
</tr>
81+
82+
<tr>
83+
<td>리스트</td><td>\${myList[2]}</td>
84+
<td>List 객체에서 인덱스로 지정된 항목의 값을 꺼낸다.
85+
<pre>
86+
[자바 코드]
87+
List nameList = new LinkedList();
88+
nameList.add("홍길동");
89+
nameList.add("임꺽정");
90+
nameList.add("일지매");
91+
pageContext.setAttribute("nameList", nameList);
92+
93+
[실행 결과]
94+
\${nameList[1]} = ${nameList[1]}
95+
</pre>
96+
</td>
97+
</tr>
98+
99+
<tr>
100+
<td>맵</td><td>\${myMap.keyName}</td>
101+
<td>Map 객체에서 키에 해당하는 값을 꺼낸다.
102+
<pre>
103+
[자바 코드]
104+
Map map = new HashMap();
105+
map.put("s01", "홍길동");
106+
map.put("s02", "임꺽정");
107+
map.put("s03", "일지매");
108+
pageContext.setAttribute("map", map);
109+
110+
[실행 결과]
111+
\${map.s02} = ${map.s02}
112+
</pre>
113+
</td>
114+
</tr>
115+
116+
<tr>
117+
<td>자바빈</td><td>\${myObj.propName}</td>
118+
<td>자바 객체에서 프로퍼티의 값을 꺼낸다.
119+
<pre>
120+
[자바 코드]
121+
pageContext.setAttribute("member",
122+
new Member()
123+
.setNo(100)
124+
.setName("홍길동")
125+
.setEmail("hong@test.com"));
126+
127+
[실행 결과]
128+
\${member.email} = ${member.email}
129+
</pre>
130+
</td>
131+
</tr>
132+
133+
<tr>
134+
<td>리소스 번들</td><td>\${myRB.keyName}</td>
135+
<td>ResourceBundle 객체에서 키에 해당하는 값을 꺼낸다.
136+
<pre>
137+
[자바 코드]
138+
import java.util.ListResourceBundle;
139+
public class MyResourceBundle_ko_KR extends ListResourceBundle {
140+
public Object[][] getContents() {
141+
return new Object[][] {
142+
{"OK", "확인"},
143+
{"Cancel", "취소"},
144+
{"Reset", "재설정"},
145+
{"Submit", "제출"}
146+
};
147+
}
148+
}
149+
150+
pageContext.setAttribute("myRB",
151+
ResourceBundle.getBundle("MyResourceBundle"));
152+
153+
[실행 결과]
154+
\${myRB.OK} = ${myRB.OK}
155+
</pre>
156+
</td>
157+
</tr>
158+
</table>
159+
160+
<p><a href="el01.jsp">[이전]</a><a href="el03.jsp">[다음]</a></p>
161+
</body>
162+
</html>

0 commit comments

Comments
 (0)