2020.08.25(화) 7주차 2일
Redirect, forwarding
JSP의 라이프사이클
지시어>_java>_class>_init > _service>_destroy
1. 방명록
Bang.html
pack3>BangServlet.java //오늘 한 부분 뭔가 이상
pack3>BangList.java
*카페 JSP Servlet 요청 관련 어노테이션 물리적 이름이 여러가지 일 수 있다. 어노테이션을 사용하지 않고 web.xml에 등록하는 경우(우선순위는 제일 높음) |
(중요)
리다크? 방식 : 클라이언트의 요청이 web.xml을 통하지 않고, @webservlet(/요청변수)로
스프링은 포워딩방식 서버에 파일을 부름
* 통계 : P-value : 신뢰도?
BangServlet.java
자료를 입력하고 response.sendRedirect("MyBang/Bang.html"); 클라이언트를 통해(타고) 요청한다. (스프링방식)
클라이언트에서 명령을 요청한다.
2. JSP => ASP(.net)를 모방했기 때문에
web_pro4>webcontent> jspsijak.jsp
web구성 : php > asp >jsp >python : 플라스크(라이브러리가 딸림)-장고 책 304페이지 313 319 326 330 332 359 360 386 415 (챕터별 훑기)==> 마이바티스, 쇼핑몰 샘플 , 끝. JSP는 자바를 전부 숨기고 HTML을 정면에 내세움, 서비스 매소드로 뒤덮고 있다. = 클래스에 서비스 매소드를 오버라이드해서 모든 것이 지역변수가 된다. |
1) 페이지 지시어 <%@ page %>
(1) JSP가 서버로 넘어온 순간 servlet이 된다. HTML만 클라이언트 브라우저한테 준다.
* https서버는 자바 출력이 안 됨, 아파치톰캣서버는 됨(웹 어플리케이션)
9개 중 5개 외우면 된다
(2) 톰캣은 스크립트릿(<% %>) 내의 코드는 자바로 인정
2) exression <%= %>
* JSP의 난독을 해결하기위해서 빈즈, EL 등을 활용한다.
3) 전역변수 <%! %>
해당 클래스의 멤버필드로 선언
3. 페이지 지시어 이해
web_pro4>webcontent> jspsijak2.jsp
web_pro4>webcontent> myerr.jsp
카페 : error 목록 표시 파일 web.xml에 등록하기
web_pro4>...> web.xml
1) 일반적으로 지시어는 문서의 상단에 기술한다. 지시어 전에는 어떤 내용도 적지 않는다.
2) <생략가능> = 기본값
language="java" , session='true', buffer="8kb" autoFlush="true" isThreadSafe="true"
3) 에러와 관련된 내용
(1)실행도중에 오류 : <%= 10/2 %>는 되는데 <%= 10/0 %>은 바로 505오류가 걸림, 0의 인수가 들어올수있는 상황
(2) 그래서 페이지 지시어 에 오류페이지를 부른다(포워드!). "errorPage="myerr.jsp" "
myerr.jsp의 페이지 지시어에는 isErrorPage="true" 를 입력한다.
(3) http://localhost:8080/web_pro4/jspsijak2.jsp 포워딩, 서버가 서버를 바로 부른 것
(4) web.xml :
4. 인크루드 지시어
web_pro4>webcontent> jspsijak3.jsp
web_pro4>webcontent> top.jsp
web_pro4>webcontent> bottom.jsp
web_pro4>webcontent> tag1.jsp
web_pro4>webcontent> tag2.jsp
사이트 하단 공지사항 등 항상 있었으면 하는 것 => 별도의 파일로 만들고 불러쓰면 된다.
1) top, bottom을 만듬, <%@ include 로 삽입함
2) <jsp: 의 태그들 중 include 액션태그, page에 tag1, tag2을 삽입합
(1) <jsp:param value="korea" name = "msg"/>로 값을 부여
(2) tag2에서 내장객체 request로 jspsijak3의 value와 msg를 받아옴
5. 내장객체 9개 : 회원가입
web_pro4>webcontent> jspsijak3.jsp
web_pro4>webcontent> tag2.jsp
카페 JSP&Servlet : RequestDispatcher & sendRedirect 방식
request, response, out, session, application, pageContext, page, config, exception |
6. redirect, forward test
web_pro4>webcontent> jsp1call.html
kr.co.pack> jsp1servlet.java
jspcalled.jsp
jsp2call.html
kr.co.pack> jsp1servlet.java
jsp2called.jsp
jsp2called2.jsp
URL 의 변화를 잘 봐야 한다. |
서버에서 서버를 부르면 안바뀜 포워딩
response.sendRedirect("jspcalled.jsp?data=" + data);

"HTML <== SERVLET <==called.JSP(주소)"
1. redirect : String외에 못넘김, jsp 문서에서만 유효
서블릿이

"HTML <== SERVLET(주소)"
2. 포워딩 : dispatcher.forward(request, response); 서버에서 서버를 부른다.
(session처럼 그 클라이언트가 접근하는 모든 jsp에서 모두 공유 가능 )
키밸류 test를 부여, 콘테이너 기능을 통해 jsp파일에 request해서 보냄
완전한 public. 각각의 클라이언트들이 접근가능함/
현재 문서에서만 유효한 키밸류test, data(String 을 포함한 모든 종류의 데이터 : 컬렉션 등)를 request를 통해 뿌린다.
//response.sendRedirect("jsp2called2.jsp?data=" + msg); 죽여줘야함
<a href=WEB-INF/kbs.jsp> KBS.JSP 호출</a>
web_pro4>webcontent> WEB-INF > kbs.jsp
7. Session (로그인과 쇼핑몰에서 빛남 )
web_pro4>webcontent>session_test.html
web_pro4>session1.jsp
web_pro4>session2.jsp
<form action = "session1.jsp" method = "post"> |
session.setAttribute("idKey", id); |
String dra = request.getParameter("dra"); |
※ 오늘 배우고 느낀 것
1.
2.
3.
'[2020]KIC 캠퍼스 복습 > JAVA SCRIPT(5,6,7)' 카테고리의 다른 글
[수업 D-32 ] Servlet)배운내용 (0) | 2020.08.26 |
---|---|
[코드리뷰] Servlet) Form Beans 예제 1 (0) | 2020.08.26 |
[수업 D-30 ] SERVLET) 쿠키, 세션, 쇼핑몰, 방명록 (0) | 2020.08.24 |
[코드리뷰] SERVLET) SERVLET (0) | 2020.08.19 |
[수업 D-27 ] JS)AJAX, SERVLET (0) | 2020.08.19 |