1. Template

1) WebContent - view - template - sidebar.jsp 수정

 

2. View

1) WebContent - view - member - login_result.jsp 추가

 

3. Model 

1) src - model.ClientDAO.java에 login 로그인 메소드 추가

2) src - test.TestLogin.java 추가(login 메소드 테스트)

 

4. Controller

1) src - controller.HandlerMapping.java에 login, logout command 추가;

2) src - controller.LoginController.java 추가

3) src - controller.LogoutController.java 추가

 

1. Template

1) WebContent - view - template - sidebar.jsp 에 회원가입 링크 추가

 

2. View

1) WebContent - view -  member - register.jsp

2) WebContent - view -  member - register_result.jsp

 

3. Model

1) src - mdoel.ClientDAO에 register 메소드 추가

2) src - test.TestRegister.java (register 메소드를 테스트)

 

4. Controller

1) src - controller.HandlerMapping.java에 registerPage와 register command 추가

2) src - controller.RegisterPageController.java 추가

3) src - controller.ResgisterController.java 추가

 

5.CSS

1. webstudy-board 폴더 구조

1. index 페이지와  error 페이지

1) WebContent-index.jsp

2) WebContent-error.jsp

에러페이지 이동하기

3) WebContent - view - template - home.jsp

4) WebContent - view - template - header.jsp

5) WebContent - view - template - sidebar.jsp

6) WebContent - view - template - footer.jsp

7) WebContent - view - template - mainPage.jsp

- mainPage 이미지

2. Controller

1) src - controller.HandlerMapping.java

2) src - controller.MainPageController.java

 

3.CSS

1) WebContent - css - style.css

** 표현 언어(EL:Expression Language) **
- 데이터를 웹 페이지에 표시하는데 사용하는 태그
- JSP 출력에 대한 부분을 쉽게 하기 위해 개발한 태그
- 등장배경 : 자바코드로 내장 객체(request, session 등)에 저장된 속성 값에 접근하면 코드가 길어지고 지저분해짐
ex) ${ expr }

* 요청 파마리터 처리
request.getParamter()--->param 객체
- param : request.getParameter()와 동일한 역할로, 파라미터 값을 알려준다
- paramValues : request.getParamterValues()와 동일한 역할로, 동일한 이름으로 전달되는 파라미터 값들(라디오버튼, 체크박스 등)을 배열형태로 얻어온다.

ex)
request.getParameter("id") ---> ${param.id}
request.getParameter("pw") ---> ${param.pw}


* 내장객체 접근
- pageScope : 내장객체 pageContext
- requestScope : 내장객체 request
- sessionScope : 내장객체 session
- applicationScope : 내장객체 application




** JSTL (JSP Standard Tag Library) **

- JSP 표준 태크 라이브러리
- 일관성 없던 커스텀 태그(JSP를 작성할 때 자주 사용되는 자바 코드를 웹에서 사용할 수 있는 태크 형태로 만드는 기술)들을 표준화 한 것


* 태그 라이브러리 사용하기
- JSTL 제공 기능 중 core를 사용하기 위한 taglib
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
- uri : 사용할 태그 라이브러리 식별자
- prefix : 태그에서 사용할 접두어

* JSTL core 태그

태그 설명 기본형식
<c:set> 변수에 값을 설정

<c:set var="변수이름" value="저장할 값" [scope="{page|request|session|application}]>

*scope 속성 기본값 : page

<c:remove> 변수에 설정된 값을 제거 <c:remove var="변수 이름" [scope="{page|request|session|application}]>
<c:if> 조건에 따라 처리를 달리 할 때 사용

<c:if test="조건식>

   조건이 참일 경우 실행할 문장

</c:if>

<c:choose> 여러 조건에 따라 처리를 달리 할 때 사용

<c:choose>

 <c:when test="조건1"> 실행 값</c:when>

 <c:when test="조건2"> 실행 값</c:when>

 <c:otherwise> 실행 값</c:when>

</c:choose>

<c:forEach>

구분자로 구분된 각각의 토큰을 처리할 때 사용

집합체에 저장되어 있는 값들을 순차적으로 처리할 떄 사용할 수 있는 태그

<c:forEach [var="변수 이름"] items="배열과 같은 집합체" [varStatus="반복상태정보를 위한 변수"]>

 실행 값

</c:forEach>

 

* varStatus 속성 : 반복 상태에 관련된 정보를 알려줌

- index : 현재 반복중인 항목의 index 알려줌

- count : 현재 몇 번째를 반복 중인지 알려줌

- first : 현재 루프가 처음인지 여부

- last  : 현재 루프가 마지막인지 여부

- begin : 반복에 사용 될 것 중 첫번째 항목의 index

- end : 반복에 사용될 것 중 마지막 항목의 index

<c:forTokens> 구분자로 분리된 각각의 토큰을 처리할 때 사용

<c:forTokens var="토큰을 저장할 변수" items="토큰으로 나눌 문자열" delims="구분자">

 실행 값

</c:forTokens>

<c:import> 외부의 자원을 URL을 지정하여 가져다 사용

<c:import url="URL" [var="변수 이름"] [scope="영역"] [charEncoding="charEncoding"]><c:import>

<c:redirect> 지정된 경로로 이동 <c:redirect url="URL" [context="경로명"]>
<c:url> url 재작성 <c:url value="URL" [var="변수 이름"] [scope="영역"]></c:url>
<c:out> 데이터를 출력할 때 사용하는 태그, <%= %>대체 <c:out value="value" [default="기본값"]>
<c:catch> 예외처리

<c:catch var="변수 이름">

예외가 발생할 수 있는 코드

</c:catch>



1. 공통

1) WebContent - WEB-INF - web.xml

2) WebContent - Home.html

 

2. Review

1) WebContent - step1.html

2) src - ReviewServlet.java

 

3. LifeCycleServlet

1) src - LifeCycleServlet.java.java

 

4. TestListener

1) WebContent - step2.jsp

2) src - step4.OneServlet.java

3) src - step4.TwoServlet.java.java

4) src - step5.TestListener.java

'1.JAVA Web Programming > [1주차] Servlet-Basic' 카테고리의 다른 글

Servlet Basic - Servlet Basic  (0) 2019.08.06
Servlet Basic - Servlet 내용정리  (0) 2019.08.06
Servlet Basic - Web basic  (0) 2019.08.03

1. 공통 영역

1) WebContent - WEB-INF - web.xml

2) WebContent - Home.html

 

2. HelloServlet

1) WebContent - step1.html

2) src - HelloServlet.java

 

3. PostServlet

1) WebContent - Step2.html

2) src - PostServlet.java

4. RequestTestServlet

1) WebContent - Step3.html

2) src - RequestTestServlet.java

'1.JAVA Web Programming > [1주차] Servlet-Basic' 카테고리의 다른 글

Servlet Basic - Servlet LifeCycle  (0) 2019.08.06
Servlet Basic - Servlet Basic  (0) 2019.08.06
Servlet Basic - Web basic  (0) 2019.08.03

1. model

1) src - model.DataSource.java

2) src - model.ClientDTO

3) src - model.ClientDAO

4)src - model.BoardDTO

5) src - mordel.BoardDAO

 

※ DB connection 테스트

1) src - mordel.BoardDAO 에 checkDbconnect 추가

2) src - test.TestDBConnection.java 

 

 

[참고] Exception in thread "main" java.lang.NoClassDefFoundError: org/apache/juli/logging/LogFactory 에러발생 시

- tomcat-juli.jar파일 다운로드(톰캣버전에 맞게) : https://mvnrepository.com/artifact/org.apache.tomcat/tomcat-juli

 

Maven Repository: org.apache.tomcat » tomcat-juli

Tomcat Core Logging Package VersionRepositoryUsagesDate9.0.x9.0.22Central12Jul, 20199.0.21Central13Jun, 20199.0.20Central15May, 20199.0.19Central14Apr, 20199.0.17Central12Mar, 20199.0.16Central12Feb, 20199.0.14Central14Dec, 20189.0.13Central13Nov, 20189.0.

mvnrepository.com

- Java\jdk1.8.0_211\jre\lib\ext 안에 tomcat-juli.jar 파일을 넣는다.

 

2. controller

1) src - controller.DispatcherServelt.java

2) src - controller.HandlerMapping.java

3) src - controller.Controller.java(인터페이스)

 

+ Recent posts