본문 바로가기

Spring/Model1 _2(MVC)

[JSP] 8/9

728x90
반응형

[영역개체:페이지 이동방식]

<scopeForm>

<body>
	<h1>scopePRo.jsp</h1>
	
	<% 
	
	//영역객체 정보 저장 
	request.setAttribute("id", "BUSAN");
	
	pageContext.setAttribute("p", "pageValue");
	request.setAttribute("r","requestValue");
	session.setAttribute("s","sessionValue");
	application.setAttribute("a","applicationValue");
	
	%>
	
	<%
	
	String id = request.getParameter("id");
	
	%>
	<h3>아이디 : <%= id %></h3>
	<% 

	
	//영역 객체 정보 가져오기
	String id2 = (String)request.getAttribute("id");
	
	%>
	<h3>아이디 : <%=id2 %></h3>
	<hr>
	
	page : <%= pageContext.getAttribute("p") %><br>
	request : <%=request.getAttribute("r") %><br>
	session : <%=session.getAttribute("s") %><br>
	application : <%=application.getAttribute("a") %><br>
	
</body>

 

<scopePro>

//영역 객체 정보 가져오기
	String id2 = (String)request.getAttribute("id");
	
	%>
	<h3>아이디 : <%=id2 %></h3>
	<hr>
	
	page : <%= pageContext.getAttribute("p") %><br>
	request : <%=request.getAttribute("r") %><br>
	session : <%=session.getAttribute("s") %><br>
	application : <%=application.getAttribute("a") %><br>
	
	
	<hr>
	<hr>
	<hr>
	
	<h2> 페이지 이동 시 정보체크 </h2>
	
	<!-- 파라미터, 어트리뷰트 -->
	
	<h3> HTML - a 태그 </h3>
	<h4> 사용가능 : 파라미터, session 영역, application 영역 </h4>
	<a href = "scopeAction.jsp?id=<%=id %>&pw=1234"> a태그 페이지 이동</a>
	
	<h3> JavaScript - location.href </h3>
	<script type ="text/javascript">
		alert("js-페이지 이동");
// 		location.href='scopeAction.jsp';
		
	</script>

 

</a href = "scopeAction.jsp"> a 태그 페이지 이동 

 

링크 눌러서 아이디 가져오기 

get 방식, post 방식

 

 

<a href = "scopeAction.jsp?id=<%=id %>& pw =1234"> a태그페이지이동</a>

 

scopeAction.jsp 뒤에 ?id=<%=id %> 를 붙여줌 (변수)

 

 

 

 

 

<scopeAction>

	<h1>scopeAction.jsp</h1>

	아이디 : <%=request.getParameter("id") %> <br>
    비밀번호 :<%=request.getParameter("pw") %> <br>
    
    
    
    <hr>
	<h2> 어트리뷰트 </h2>
	
	page : <%= pageContext.getAttribute("p") %><br>
	request : <%=request.getAttribute("r") %><br>
	session : <%=session.getAttribute("s") %><br>
	application : <%=application.getAttribute("a") %><br>

 

 

<scopePro>

<h2> 페이지 이동 시 정보체크 </h2>
	
	<!-- 파라미터, 어트리뷰트 -->
	
	<h3> HTML - a 태그 </h3>
	<h4> 사용가능 : 파라미터, session 영역, application 영역 </h4>
	<a href = "scopeAction.jsp?id=<%=id %>&pw=1234"> a태그 페이지 이동</a>
<!-- 	a   왜 공백을 많이 줘도 실행시키면 한칸인지..?    a  -->


	<h3> JavaScript - location.href </h3>
	<script type ="text/javascript">
		alert("js-페이지 이동");
		location.href="scopeAction.jsp?id=<%=id %>&pw=1234";  //scopeAction 정보 가져옴

!! 코드 사이에 공백 넣으면 에러남 

!! 자바스크립트에서는 " " , ' ' 구분 없음. 

 

form (home) -> Pro -> Action 

 

 

 

		<h1>scopePRo.jsp</h1>
    
    <h3> JSP - response.sendRedirect() </h3>
	<%
		System.out.println("JSP-페이지이동");
		response.sendRedirect("scopeAction.jsp");

Action 페이지로 alert 없이 바로 넘어감. 

 

 

*JSP 페이지 실행 순서 

JSP(JAVA)  ->  HTML   ->  JS 

 

jsp 코드를 제일 먼저 실행함. 

 => JSP, JS 통한 페이지 이동은 한가지 방식만 사용해야함.

 

jsp 코드랑 js 코드를 같이 쓰면 안된다..? (페이지 이동을 같이 쓰면 안된다, jsp 코드를 먼저 읽으므로 js 코드는 무시함) 

 

만약에, jsp코드인 response.sendRedirect 코드에 아이디랑 비번을 넣고싶다면,

+ 연산자를 쓰면 됨. 

 

	<%
		System.out.println("JSP-페이지이동");
		response.sendRedirect("scopeAction.jsp?id="+id + "&pw=1234");
		
	
	%>

param 쓴 방법 

		<jsp:forward page="scopeAction.jsp">
			<jsp:param value="9999" name = "pw"/>	</jsp:forward>

 

<액션태그 - forward>

사용가능 : 파라미터, request 영역, session 영역, application 영역

 

포워딩 - 

1) 전달하는 주소 변경x , 화면 변경 o
 2) request 영역 값 전달 가능 

 

언제쓰이나?

-> 실제 상용되는 홈페이지들은 실제 주소가 아닌 가상 주소를 쓴다..? 

 

 


쿠키

사용자가 방문한 웹사이트에서 사용자의 브라우저에 전송하는 작은 텍스트 조각입니다. 쿠키가 있으면 웹사이트에서 사용자의 방문에 관한 정보를 기억하여 다음번에 사이트에 방문했을 때 번거로운 작업을 피하고 더 유용하게 사이트를 활용할 수 있다.

 

 

API

API(application programming interface 애플리케이션 프로그래밍 인터페이스, 응용 프로그램 프로그래밍 인터페이스)는 컴퓨터나 컴퓨터 프로그램 사이의 연결함

 


쿠키 만들기

 

<cookieTest>

<script type="text/javascript">
	function cookieTest(){
		alert("서버로 페이지 요청(request)");
		location.href='cookieSet.jsp'
	}

	function cookieDelete() {
		alert("서버로 페이지 요청(request)");
		location.href='cookieDel.jsp';
		
	}
</script>
</head>
<body>

	<h1> cookieTest.jsp </h1>
	
	<h2> 쿠키 </h2>
	=> 이름, 값, 유효기간, 도메인, 경로 ... 구성됨 <br>
	   이름 : 알파벳 , 숫자
	   값 : 알파벳, 숫자 (특수문자, 공백 ... 사용 가능 -> 인코딩)<br>
	   
	   <hr> 
	   <h1> 클라이언트 </h1>
	   
	   <%
	   		// 쿠키값 가져오기 
	   		Cookie [] cookies = request.getCookies();
	   
	   		String value = "";
	   		// 쿠키 값 내가 원하는 정보 조회 
	   		if(cookies != null){
	   			for(int i=0;i<cookies.length;i++){
	   				if(cookies[i].getName().equals("id")){
	   					// A.equals(B) A,B 문자열 값이 같은지 비교 
	   					out.println("쿠키값 : " + cookies[i].getValue());
	   				
	   				}
	   			}	
	   		}
	   
	   %>
	   아이디 : <input type = "text" name = "id" value "<%=value%> ">
	   
	   <input type ="button" value = "쿠키값 생성" onclick =" cookieTest();">
	   <input type ="button" value = "쿠키값 삭제" onclick =" cookieDelete();">

 

 

 

 

 

 

<cookieSet>

<h1> cookieSet.jsp </h1>
	
	<h1> 서버 </h1>
	
	<%
	System.out.println(" 서버: 클라이언트 요청 처리중... ");
	System.out.println(" 서버: 클라이언트 요청 처리중... ");
	System.out.println(" 서버: 클라이언트 요청 처리중... ");
	
	 
	 // 쿠키 값 생성 - 서블릿 API 사용
	 // Cookie cookie = new Cookie("이름","값");
	 Cookie cookie = new Cookie("id","ITWILL");
	 System.out.println(" 서버 : 쿠키 정보 생성 (메모리 로드)");
	 
	 // 쿠키 사용기간 (유효기간 설정)
	 cookie.setMaxAge(600); // 600s == 10m
	 System.out.println(" 서버 : 쿠키 유효기간 설정");
	 
	 // 쿠키 정보를 전달 (클라이언트에게)
	 response.addCookie(cookie);
	 System.out.println(" 서버 : 쿠키 정보를 클라이언트로 전달");
	 
	 
	 
	 
	 
	 
	  %>
	  
	  
	 <script type = "text/javascript">
	 	alert("서버 처리완료, 클라이언트 정보 응답");
	 	alert("쿠키 전달");
	 	location.href = "cookieTest.jsp";
	 	
	 </script>

 

쿠키 삭제하기 

<cookieDel>

	<h1>cookieDel.jsp</h1>
		
		<h1>서버</h1>
		<h2>쿠키값 삭제</h2>
		
		<%
			System.out.println(" 서버 : 쿠키값 삭제.....");
			
		// 기존의 쿠키 값 가져오기 
		Cookie[] cookies = request.getCookies();
		
		// 삭제하려는 쿠키정보 찾기
		if(cookies != null){
			for(int i=0;i<cookies.length;i++){
				if(cookies[i].getName().equals("id")){
					//삭제할 쿠키 정보를 찾았다.
					cookies[i].setMaxAge(0);
					
					//변경된 쿠키 정보를 클라이언트로 전송 
					response.addCookie(cookies[i]);
					
				}
			}
		}
		%>
		
		<script type="text/javascript">
			alert(" 서버 처리 완료, 클라이언트로 이동 ");
			alert(" 쿠키 전달 ");
			location.href="cookieTest.jsp";	
		</script>

 

 

728x90
반응형

'Spring > Model1 _2(MVC)' 카테고리의 다른 글

0818 JSP - cookieForm => cookiePro ~ session  (0) 2022.08.18
[JSP] 8/9  (0) 2022.08.09
[JSP] 8/8  (0) 2022.08.08
[JSP] 8/2  (0) 2022.08.02
[8/1] JSP  (0) 2022.08.01