* JSP 스크립트 태그

1. 지시자(Directive) 태그
2. 표현식(Expresstion) 태그
3. 선언자(Declaration) 태그(중요하지 않음)
4. 스크립트릿(Scriptlet) 태그
5. 주석

* 지시자 태그 

 - Web container가 JSP를 Servlet으로 변환 할 때 특정 지시를 내리기 위해서 사용하는 태그
 - 구문
    <%@ 지시어 속성="값" [속성="값" ..]%>
 - 지시어
   - page : 페이지의 기능, 특징을 지시
   - include : jsp 페이지에 다른 페이지를 포함시킬 것을 지시
   - taglib : jsp 페이지에서 사용할 custom tag 라이브러리 등록을 지시
 - page 지시자
   - 페이지에 관련된 기능 환경을 정의하는 지시어
   - 속성
      - import : jsp에서 사용할 클래스들을 import할 때 사용
      - contentType : response.setContentType()의 인수로 들어갈 값 설정
      - session : 내장 객체 session의 생성 여부 설정. 값 : true//false, true가 default
      - errorPage : jsp가 실행 도중 exception이 발생했을때 이동할 url 지정

* 표현식 태그

 - 응답 Stream을 통해 출력하기 위한 태그
 - 구문
   <%= 출력내용 %>
 - 예)
   <%="안녕하세요" %> ->만약 서블릿으로 바꾸면 out.print("안녕하세요");

   <% int i =10; %> <%=i %>
 - 서블릿으로 변환 시 out.print(출력내용); 으로 변환됨

 * 선언자 태그

 - JSP가 서블릿으로 변환 될때 서블릿의 member 변수(Field)나 member 메소드를 선언할 때 사용
   - jspInit(), jspDestory() 오버라이딩 시 사용
   - _jspService()는 오버라이딩 해서는 안된다.
 - 구문
   <%! 선언문 %>

* dynamic web project : myjsp
  web content : /scripttag/jsp_lifecycle.jsp

- 실행결과

 

 

* 스크립트릿 태그

 - 클라이언트의 요청에 대해 서비스 하는 동적 코드(java 실행 구문)을 작성 하기 위한 태그
 - 태그내의 코드는 서블릿으로 변환 시 _jspService()의 로컬 코드로 삽입된다.
 - 구문
   <% java 코드 %>
 - 예
   <% if(i>10){%> -> java code
     10 보다 큽니다.  -> HTML
   <%}%>              ->java code

-> 서블릿으로 변경
_jspService(){
   if(i>10){
       out.println("10보다 큽니다.");
   }
}

 

* 주석

 - jsp에서의 주석
   - html 주석 : <!-- 주석 내용--> : client에 전송
   - jsp 주석 : <%-- 주석내용 --%> : client에 전송이 안됨
   - java 주석 : //,/* 주석내용 */
      - 스크립트릿, 선언자 태그에서 사용 가능

 

- 소스보기 실행 시 결과 보기

 

Posted by 조은성
,

* servlet 정의 (Servlet<-java(CGI))

- servlet 순서
1. 요청 Data
2. 비지니스 로직 처리
3. 응답 처리

* 서블릿은 java를 프로그램의 메인으로 HTML을 사용한다. java -> HTML
                                                                                (동적)   (정적)

* jsp(java server page)

- jsp는 HTML을 기반으로 java를 사용한다. HTML -> java
(web container가 jsp를 java파일로 바꾼다음에 컴파일해서 class 파일로 만드는 역할을 한다)

* jsp 수행 순서

 

- 서비스 준비단계 : 1~5번
  소멸단계 : 7번 

* HTML 기반에서 정적인코드<HTML태그>, 동적인 코드<jsp태그>를 java코드로 처리하는 것이 jsp이다.

* jsp Tag - 1. 스크립트 태그(script) ->java 코드를 넣는 태그(동적인 코드)
                                                    구문 : <% %>
- jsp Tag예시

* jsp로 위와 같이 만들어 실행하면 webcontainer가 서블릿 형태로 바꿔서 아래와 같이 수행된다.


                2. 액션태그(action) -> jsp에서 java코드를 대신하기 위한 태그(java코드를 넣지 않는 태그)
                      ① 표준 액션 Tag - Servlet/jsp spec에서 제공(기본적으로 제공)
                      ② custom Tag    - 사용자 정의 tag(사용자가 만들어 씀)
- 액션 Tag 예시

 

 3. Expression Language2.0

* 톰켓에서 서블릿 변환 확인 경로
D:\apache-tomcat-6.0.35\work\Catalina\localhost\member_servlet\org\apache\jsp

Posted by 조은성
,

- 회원관리 및 로그인 처리 전체 소스

member_servlet.zip

Hint

1. DataBase에 연결

2. DataBase로 부터 모든 회원 정보를 조회

3. 조회된 정보를 MemberDTO 객체로 생성

4. MemberDTO 객체들을 Collection에 add
- 모든 데이터를 조회할 것이므로 ArrayList가 유리함

5. Collection 객체를 Scope(공유영역)에 설정
- 요청부터 응답까지만 유효하면 되므로 RequestScope에 설정

6. Scope로부터 Attribute를 Get 하여 JSP에서 출력

 

- GetAllMemberInfoServlet.java

 

- member_list.jsp

 

 

 - 결과

 

 

Posted by 조은성
,

1. 로그인 정보 체크
    로그인 X ->login_form.jsp
    로그인 O -> delete처리 후 session 제거 -> index.html

- servlet class
package : member.servlet
name : RemoveMemberServlet
url-mapping : /removeMember

 

시작 : member_detail.jsp
로직 : RemoveMemberServlet 
성공 : 로그인 한 경우 : index.html
실패 : 로그인 안한 경우 : login_form.jsp
         처리도중 exception : error.jsp

 

 

 

 

 

- 결과

 

 

 

 

 

Posted by 조은성
,

* 이름, 주민번호, 패스워드 바꾸기(ID, 마일리지 제외)

- servlet class
package : member.servlet
name : ModifyFormServlet
url-mapping : /modifyForm

 


jsp
WebContent
이름 : /res/modify_form.jsp

 


--------------------------------

시작 : member_detail.jsp
로직 : ModifyFormServlet
성공 : 로그인 한 경우 : modify_form.jsp
실패 : 로그인 안한 경우 : login_form.jsp


 

 

 

 

 

============================================================

- servlet class
package : member.servlet
name : ModifyFormServlet
url-mapping : /modifyMember

jsp
WebContent
이름 : /res/modify_success.jsp
--------------------------------

시작 : modify_form.jsp
로직 : ModifyMemberServlet
성공 : 처리 완료 한 경우 : modify_success.jsp(수정된 정보를 출력)
실패 : 로그인 안한 경우 : login_form.jsp
         처리도중 exception : error.jsp

 

 

 

 

 

 

 

 

 

 

- 결과

 

 

 

Posted by 조은성
,

- servlet class
package : member.servlet
name : GetLoginMemberInfoServlet
url-mapping : /getMemberInfo

 

 

jsp
WebContent
이름 : /res/member_detail.jsp
-----------------------------------------
login_success.jsp
GetLoginMemberInfoServlet
성공 : 로그인한 경우 : member_detail.jsp
실패 : 로그인 안한 경우 : login_form.jsp
         

 

 

 * 결과보기

 

 

 * 로그 아웃하고 url주소로 접속할 시(/getMemberInfo)

Posted by 조은성
,

 

 

 

1. 메인 페이지 index.html

* 회원등록하기를 누르면  register_form.html로 이동하고 로그인하기를 누르면 login_form.jsp로 이동하여 로그인을 한다.

2. register_form.html 만들기

 

 

 

* 위의 값들을 입력하고 회원등록을 클릭하면 RegisterMemberServlet으로 이동

 

 

* 정상적으로 회원가입이 되면 /res/register_success.jsp로 이동을 하여 아래와 같은 화면을 뿌려주고

 

* 기존에 있는 아이디를 입력하게 되면 아래와 같이 에러 문구와 함께 화면을 보여주게 됩니다. /res/error.jsp

 

 

 

3. login하기 login_form.jsp

 

 

* 로그인을 누르게 되면 LoginServlet으로 이동하여 아이디와 패스워드를 검사한다.

 

 

 

* 로그인 성공 /res/login_succes.jsp 로 이동 아래와 같은 화면을 뿌려준다.

 

 

* 로그인 실패 하면 /login_form.jsp로 이동 하여 아래와 같은 두 화면을 보여준다. (아이디가 틀릴 시, 비밀번호가 틀릴 시)

 

 

 

 

 

 

4. logout하기( logout을 클릭하면 logoutServlet으로 이동하여 로그아웃 처리를 한다. )

(로그인이 되어 있다면 로그아웃처리를 하고 그렇지 않다면 로그인 먼저 해달라는 메세지를 띄운다.)

 

Posted by 조은성
,
Posted by 조은성
,

 

 

 

WebContent
folder : res
error.jsp


register_success.jsp

 

 

 

 

* request scope : 데이터가 사용하고 나면 더이상 필요 없어 질 경우에 리퀘스트 스코프를 활용하여 jsp쪽으로 값만 넘겨주고 데이터는 사라지도록 한다.

 

Posted by 조은성
,

dynamic web project
- member_servlet

- servlet class
package : member.servlet
name : RegiserMemberServlet
url-mapping : /register_member

 

html
WebContent
이름 : register_form.html

 

class
package : member.dto
class : MemberDTO

Posted by 조은성
,