Servlet 학습 Day 5

JSP 학습
* JSP Java Server Pages   , Servlet        HTML  ,JSP     xxx.jsp
*  Servlet  , JSP   HTML    ,     java   ,         

Eclipse 의 일반적인 설정 은 window 의 properties 에서 수정 할 것 을 찾 습 니 다.인 코딩 설정 을 누 르 십시오.
JSP 문법 구조
*      
*       
*     
*    
*       
*      

설명 구역
코드 영역
표현 식
* 
* 
* 

주석
*     : HTML     “”
*     :    java  “//”、“/*….*/”,  JSP      :“”

지령
* page:          ,    
* include:      
* taglib:  JSTL  ,      

page 명령//패키지 와 페이지 속성 을 설정 하 는 데 사 용 됩 니 다.기본 형식 은 다음 과 같 습 니 다:extends="className"|import="importList"|buffer="none|kb size"|--none:버퍼 하지 않 습 니 다.기본 8k session="true|false"|--session 을 사용 할 수 있 는 지,기본 true autoFlush="true|false"--버퍼 가 자동 으로 제거 되 는 지,기본 true isThreadSafe="true|false"|errorPage="errorPageUrl"|isErrorPage="true|false"|contentType="text/html;charset=utf-8” %>
include 명령(정적 포함)
* include         JSP   HTML   ,    :
* JSP    JSP         file           ,              (    content="text/html; charset=UTF-8"  )

taglib 명령 어
* taglib      JSP       ,            
* taglib  :

동적 및 정적 포함
*     :      ,           ,           java   :
*     :     servlet java  ,      java       :
*      ,          ,                , Jsp:include :              

정적 포함 결론 1:정적 포함 은 페이지 코드 를 먼저 포함 하고 실행 하 는 것 입 니 다.결론 2:정적 포함 은 페이지 코드 를 먼저 포함 하고 실행 하기 때문에 페이지 간 에 같은 태그 속성 설정 이 다 르 면 충돌 할 수 있 습 니 다.적어도 두 jsp 페이지 는 일치 해 야 합 니 다.마찬가지 로 포 함 된 jsp 페이지 와 포 함 된 jsp 페이지 는 중복 되 는 html 태그 가 없 는 것 이 좋 습 니 다.그렇지 않 으 면 덮어 쓰기 현상 이 발생 할 수 있 습 니 다.결론 3:정적 포함 시 파 라 메 터 를 전달 할 수 있 습 니까?이 럴 때 파 라 메 터 를 전달 할 때 보통 주소 전달 을 생각 합 니 다.이렇게 하면 정상적으로 작 동 할 수 있 습 니까?정 답 은 안 돼!!이 페이지 는 직접 포함 되 어 있 기 때문에 매개 변수 전달 을 설정 하 는 것 은 아무런 의미 가 없습니다.심지어 컴 파일 을 통 해!결론 4:코드 를 직접 포함 하 는 이상 서버 가 응답 요청 을 통 해 전달 하 는 매개 변 수 는 두 페이지 에 공용 할 수 있 습 니까?세 페이지 모두 request 를 통 해 test.jsp 페이지 에서 들 려 오 는 값 을 받 을 수 있 습 니 다.이 세 페이지 나 페이지 가 하나의 request 를 공유 한 다 는 것 을 설명 합 니 다.동적 포함 1.매개 변수 없 는 포함 2.매개 변수 포함/1.방식 1//방식 2
동적 및 정적 포함 비교
* 1.         page,       。       file,      。
* 2.       ,         jsp     ,            servlet class  ,       jsp         servlet class  。
* 3.      :     jsp           。
* 4.      :
*             
*                      
*                     
*             jsp:include >
* 5.                         ,              ,        request       ,  3                       ,      request                        。        request  。      jsp               。
* 6.                 ,         。
  • jsp:include 동작 은 다른 JSP 프로그램 이나 HTML 파일 등 을 도입 하 는 데 사 용 됩 니 다.include 가 실 행 될 때 include 된 파일 은 JSPEngine 에 의 해 컴 파일 됩 니 다.include 가 html 파일 이 라면 Servlet 파일 로 변환 되 지 않 습 니 다
  • jsp 형식 은 다음 과 같다.

  • jsp:forward/jsp:param
    * forward     JSP     ,            JSP    Servlet   
    *             
    

    형식:
    * 
    * 
    * 
    * 
    

    include 명령 과 include 동작의 차이
    * include    JSP         file            ,       ;
    * include              ,                          
    

    리 셋
    *    :          ,           ,      ,      ,           (      )
    *   :          ,        ,      ,       ,          (    ,    )
    

    servlet 와 JSP 의 리 셋 과 리 트 윗/servlet 은 servlet 에서 리 트 윗,리 셋 을 호출 하 는 문 구 는 다음 과 같 습 니 다.request.getRequestDispatcher("new.jsp").forward(request,response);/new.jsp response.sendRedirect("new.jsp");/new.jsp 로 다시 설정
    //JSP 는 jsp 페이지 에서 도 다음 과 같은 방식 으로 리 트 윗 을 할 수 있 습 니 다.물론 jsp 페이지 에서 리 트 윗 을 실현 할 수 있 습 니 다.//new.jsp 로 리 트 윗 할 수 있 습 니 다.
    //둘 의 차이
    한 마디 로 리 트 윗 은 서버 행위 이 고 방향 을 바 꾸 는 것 은 클 라 이언 트 행위 입 니 다.왜 이렇게 말 합 니까?이것 은 두 동작의 작업 절차 에 달 려 있 습 니 다.
    퍼 가기 과정:클 라 이언 트 브 라 우 저 에서 http 요청 을 보 냅 니 다.웹 서버 에서 이 요청 을 받 아들 입 니 다.내부 의 한 방법 으로 용기 내부 에서 요청 처리 와 퍼 가기 동작 을 수행 합 니 다."대상 자원 을 클 라 이언 트 에 게 보 냅 니 다.여기 서 퍼 가기 경 로 는 같은 웹 용기 아래 url 이 어야 합 니 다.다른 웹 경로 로 전환 할 수 없습니다.중간 에 전달 하 는 것 은 자신의 용기 안의 request 입 니 다.클 라 이언 트 브 라 우 저 경로 표시 줄 에 표 시 된 것 은 여전히 첫 번 째 방문 경로 입 니 다.즉,클 라 이언 트 는 서버 가 퍼 가기 한 것 을 느끼 지 못 한 다 는 것 입 니 다.퍼 가기 행 위 는 브 라 우 저가 한 번 만 접근 요청 을 한 것 이다.
    리 셋 프로 세 스:클 라 이언 트 브 라 우 저 에서 http 요청 을 보 냅 니 다.웹 서버 가 수락 한 후 302 상태 코드 응답 을 보 내 고 새로운 location 에 대응 하 는 브 라 우 저 를 보 냅 니 다.'클 라 이언 트 브 라 우 저 에서 302 응답 을 발견 하면 자동 으로 새로운 http 요청 을 보 냅 니 다.url 은 새로운 location 주소 입 니 다.'서버 는 이 요청 에 따라 자원 을 찾 아 고객 에 게 보 냅 니 다.여기 서 location 는 임의의 URL 로 재 설정 할 수 있 습 니 다.브 라 우 저 에서 요청 을 다시 보 낸 이상 request 전달 개념 이 없습니다.클 라 이언 트 브 라 우 저 경로 표시 줄 에 방향 을 바 꾸 는 경 로 를 표시 합 니 다.클 라 이언 트 는 주소 의 변 화 를 관찰 할 수 있 습 니 다.방향 을 바 꾸 는 행 위 는 브 라 우 저가 최소 두 번 의 방문 요청 을 한 것 이다.
    이중 방향 을 설명 하 는 것 은 사실 두 번 의 request 이다.
    첫 번 째,클 라 이언 트 request A,서버 응답,그리고 response 가 돌아 와 서 브 라 우 저 에 게 B 로 가 야 한다 고 알려 줍 니 다.이때 IE 는 주소 가 바 뀌 었 고 역사의 리 턴 버튼 도 밝 아 졌 다.자신의 웹 응용 프로그램 이외 의 자원 에 접근 할 수 있 도록 방향 을 바 꿉 니 다.방향 을 바 꾸 는 과정 에서 전 송 된 정 보 는 잃 어 버 릴 것 이다.예:response.sendRedirect("loginsuccess.jsp");리 트 윗 요청 은 서버 내부 에서 하나의 request/response 에 대한 처리 권 을 다른 클 라 이언 트 에 게 넘 기 는 것 입 니 다.이것 은 자신 이 최초 로 요청 한 A 만 알 고 중간 B,심지어 C,D 도 모 릅 니 다.전 송 된 정 보 는 잃 어 버 리 지 않 습 니 다.
    예:RequestDispatcher dis=request.getRequestDispatcher("loginsuccess.jsp");
       Dis.forward(request,response);
    

    설명 3 당신 이 어떤 면 허 를 처리 하 러 간다 고 가정 합 니 다.
    다시 방향 을 정 했다.네가 먼저 A 국 에 갔 는데 A 국 사람 이'이 일 은 우리 가 관여 하지 않 고 B 국 에 간다'고 말 한 후에 너 는 A 에서 물 러 나 스스로 차 를 타고 B 국 에 갔다.
    리 트 윗:당신 이 먼저 A 국 에 갔 어 요.A 국 에서 본 후에 이 일 은 B 국 에서 관리 해 야 한 다 는 것 을 알 게 되 었 습 니 다.그런데 그 는 당신 을 돌려 보 내지 않 고 잠깐 앉 으 라 고 했 습 니 다.자신 이 뒤에 있 는 사무실 에 가서 B 에 게 연락 해서 그들 에 게 잘 처리 하 라 고 한 후에 보 내 왔 습 니 다.

    좋은 웹페이지 즐겨찾기