request.setCharacterEncoding("utf-8");
이건 한글실행가능
//내장객체 4가지를 알아야한다✅✅✅✅✅
request
getParameter -값을 받을 때
getParameterValues -값들을 받을 대
setAttribute -짐쌀때(객체를 저장한다)
getAttribute -짐풀어
YouClass cls = new YouClass("주지훈");
//짐싸!
//내장객체
//1 번째
request.setAttribute("you", cls);
Object obj = request.getAttribute("you");
//Object obj = session.getAttribute("you");
YouClass ycls = null;
if(obj != null){
ycls = (YouClass)obj;
}
response
sendRedirect
response.sendRedirect("index4.jsp");
//- 이건 session에다가 포장하면 전송된다 request일때는안된다.
pageContext
forward
페이지에 있는 정보를 전송/이동할경로
pageContext.forward("index4.jsp");
request.getRequestDispatcher("index4.jsp").forward(request, response);
session
setAttribute -짐을 보관해
getAttribute -짐풀어
//HttpSession
//세션으로도 실행된다.
session.setAttribute("you", cls);
//위와 동일한 방법 = request.getSession.setAttribute("you", cls);
//<session 일때>
response.sendRedirect("index4.jsp");
//- 이건 session에다가 포장하면 전송된다 request일때는안된다.
//request: 일회성
//session: 지정안하면 계속 실행 ,남발되면 안된다(중요한데이터는 세션으로)
데이터가 전송된 페이지에서 짐을 푼다.
Object obj = session.getAttribute("you");
YouClass ycls = null;
if(obj != null){
ycls = (YouClass)obj;
}
%>
<%
if(ycls != null){
%>
<h1>넘어온 이름:<%= ycls.toString() %></h1>
<%
}
%>
페이지와 페이지 사이의 데이터 전달
<jsp> 페이지 이동 및 데이터 저장 : request or session
<jsp> 페이지 이동 및 데이터 저장 : request or session [예제][index.jsp]<!DOCTYPE html&g...
blog.naver.com
1. parameter : 문자열이나 문자열 배열만 가능(숫자도 문자열로 바꿔서 가야한다.)
사용자가 서버에 요청할 때 전달
폼을 제외환 경우에는 주소에 직접 기재해서 전달
폼에서는 name 속성을 갖는 객체는 전부 전달
파라미터는 set이 없고, 오직 request갖고만 한다.
[주소에 직접 기재해서 전달]
1개 일때 String으로 받아서
<a href="register.jsp?name=kim "> 가입 </a>
register.jsp : String str = request.getParameter("name");
name이 여러개 일때 배열로 받아서
<a href="register.jsp?name=kim&name=park "> 가입 </a>
register.jsp : String [] arr=request.getParameterValues("name");
[form]
<form action ="register.jsp'>
<input type="text" name="id" />
<input type="hidden" name="num" value="1"/>
<input type="submit" value="제출"/>
</form>
register.jsp : request.getParameter
request.getParameterValues
<input type="hidden" name="num" value="1/>: 가령 게시판 목록에서 글 1개 선택해서 수정하는 경우
수정하는 페이지에는 게시판 목록의 현재 페이지 정보가 있어야 하나, 보이지는 않아야 한다.
2. attrubute : 맵 구조로 데이터를 저장
서버에서 웹 브라우저에 응답할때
서버에서 응답할 때는 파라미터 쓰지 않는다.(왜냐면 서버는 자바고 자바는 맵을 쓸수 있기 때문에 attribute 사용)
page, request, session, application이 사용 가능 (이중에서 꼭 기억할 것은 request, session)
저장은 setAttribute("속성이름", Object data) Object타입이라 자바에서 만든건 무엇이든 가능.
클라이언트에서 읽기는,
(자료형) getAttribute("속성이름") ~ 형변환필요, 왜냐면 저장을 Object 이기 때문에 읽어 올때는 반드시 형변환이 필요하다.
맵은 없는 이름을 쓰면 항상 null이 나온다
null : 정말 null값 이거나 이름을 잘못 주어진 경우
requset의 attribute는 forword로 이동한 경우에만 공유가 된다.
(forword로 이동한게 아니면 request 하면 안된다.)
(로그인 정보는 절대 request에 저장하지 않는다)
request ; 데이터 저장
session은 시간이 만료되거나 새로운 창으로 출력된 것이 아니라면 공유
(세션은 페이지 이동을 천번 만번 해도 데이터가 따라간다. 세션 데이터가 없어지는 경우는
session confige사용해서 시간이 다 되었거나, 페이지 이동시 새로운 윈도우 창을 띄워서 하는 경우)
세션저장 2개 : 로그인 정보 / cart
로그인 정보 저장(한번 로그인 하면 페이지 이동해도 계속 로그인 상태 유지),
쇼핑몰 cart
세션이 영구적이진 않다.
브라우저 닫고 새로운 브라우저 열어도, 정보가 남아 있고 싶으면, 로컬스토리지 or 쿠키를 사용하게 된다.
3. 자바에서 페이지 이동
1)reponse.sendRedirect("이동경로")
--> 요청 흐름이 변경
--> 웹 브라우저의 주소가 변경
--> 중간 과정의 페이지는 history 에서 삭제가 됩니다.
--> 작업이 완료 될때 (회원가입성공, 수정완료, 탈퇴)
2) forwarding
RequestDispatcher res=request.getRequestDispacher("이동할 경로")
res.forward(request, response);위의 경로로 포워딩 된다
--> 계속 이어지는 흐름 (하고 있는 과정, 마무리 아직 덜됨)
--> 웹브라우저의 주소가 변경이 안됩니다.
--> 데이터를 요청한 경우 사용
게시판글 클릭
상세보기 클릭
데이터를 가져와서 보여주는것
[회원가입 리다이렉트]
데이터베이스에 변경을 가하는 작업을 수행하고 난 후에 페이지 이동을 할 때는 포워딩 하면 안됩니다.
리다이렉트로 이동해야 합니다. 포워딩은 주소를 변경하지 않기 때문에 새로 고침을 수행하면 이전 요청을
다시 수행하게 되서 데이터베이스에 동일한 작업을 다시 요청 합니다.
(select문은 포워딩 가능하나, 업데이트 삭제 등과 같은 sql 구문은 반드시 리다이렉트로 할것)
회원 가입 후 결과를 보여주는 페이지는 반드시 리다이렉트로 보여줄 것.
<출처 박문석교수님 PPT자료 및 강의 내용, 이글에 대한 모든 권리는 박문석 교수에게 있습니다.>
: 교수님 자료이기 때문에 저작권이 있습니다. 단순 교육용으로만 보시고, 절대 상업용도로 사용하시면 안되요.
'HTML' 카테고리의 다른 글
ajax란? (0) | 2021.03.12 |
---|---|
42일차// jsp설문지를 작성하여 jsp페이지로 데이터 넘겨주기(파라미터 넘기기) (0) | 2021.03.12 |
41일차//[Servlet] Session을 사용한 방문 횟수 카운트 (0) | 2021.03.11 |
41일차//Servlet 실습 4 (form만들어 서버에 보내 html출력) 이름, 연령, 취미 조사 (0) | 2021.03.11 |
Servlet 실습 3 (html code를 받아 서버에서 확인후 html 출력) 200,404,500 (0) | 2021.03.10 |