반응형
Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 |
Tags
- classification
- cudnn
- CES 2O21 참가
- CES 2O21 참여
- web
- postorder
- 웹 용어
- bccard
- 재귀함수
- pycharm
- broscoding
- 결합전문기관
- discrete_scatter
- 머신러닝
- web 용어
- KNeighborsClassifier
- web 개발
- java역사
- paragraph
- inorder
- C언어
- 데이터전문기관
- web 사진
- html
- mglearn
- 대이터
- vscode
- Keras
- 자료구조
- tensorflow
Archives
- Today
- Total
bro's coding
java.web.model2.mvc.redirect 본문
반응형
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>iu 정보</title>
</head>
<body bgcolor="lime">
아이유 정보입니다
<br> 아이유 상세정보....
</body>
</html>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>2-park.html</title>
</head>
<body bgcolor="orange">
박보검 정보입니다
<br> 박보검 상세정보....
</body>
</html>
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>dynamic-web</title>
</head>
<body>
<%=request.getParameter("keyword")%>
정보입니다
<br>
<%=request.getParameter("keyword")%>
상세정보....
</body>
</html>
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>forward-redirect</title>
</head>
<body>
<h3>forward와 redirect 이동방식 테스트</h3>
<%--
Controller에서 Model 과 연동 후
View로 이동 ( 제어권을 넘길때 ) 할 때 사용하는 forward과 redirect을 테스트 해본다
forward : 기존 request와 response가 유지 , 새로고침시 재동작된다 , 서버상에서 이동되므로 url 변경 x
주로 정보조회시 사용
redirect : 기존 request와 response가 유지되지 않는다 , 새로고침시에도 재동작되지 않는다
클라이언트 브라우저에게 이동url을 재지정하여 이동시키는 방식이므로 url 변경됨
주로 정보 등록,삭제,수정시 사용
test.jsp -- ForwardTestServlet -- MockDAO
|
| forward
forward-result.jsp
test.jsp -- RedirectTestServlet -- MockDAO
|
| redirect
redirect-result.jsp
--%>
<a href="ForwardTestServlet">forward 이동방식 테스트</a><br><br>
<a href="RedirectTestServlet">redirect 이동방식 테스트</a><br><br>
</body>
</html>
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>forward-result.jsp</title>
</head>
<body>
<%-- forward 방식은 request가 유지되므로 아래처럼 정보를 얻을 수 있다 --%>
forward 결과화면
<%=request.getAttribute("info")%>
</body>
</html>
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>redirect-result.jsp</title>
</head>
<body>
redirect 결과 화면
<%-- redirect 방식이므로 아래는 null 정보가 나온다. 이유는 request가 유지되지 않으므로 --%>
<%=request.getAttribute("info")%>
</body>
</html>
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>home</title>
</head>
<body>
<%--
정적인 html 서비스 -> 정보가 필요한 만큼 서버상에서 html을 만들어야 한다
--%>
<a href="1-iu.html">아이유 정보</a><br>
<a href="2-park.html">박보검 정보</a><br>
<%-- 위와 같은 형태는 필요한 정보가 추가될 경우 계속해서 서버상의 html문서작업이 필요하다
백명의 정보가 필요하면 html을 100개 작업해서 서버상에 배포해야 한다
--> 정적인 웹기술
--%>
<%--
동적인 jsp(or Servlet) 서비스 -> 정보가 추가되어도 별도의 jsp 추가 작업은 필요없다
백명이든 천명이든 만명이든 추가작업은 필요없다 --> 동적 웹기술
--%>
<form action="dynamic-web.jsp">
<input type="text" name="keyword" required="required">
<input type="submit" value="검색">
</form>
</body>
</html>
package org.kosta.webstudy14.controller;
import java.io.IOException;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.kosta.webstudy14.model.MockDAO;
/**
* Servlet implementation class ForwardTestServlet
*/
@WebServlet("/ForwardTestServlet")
public class ForwardTestServlet extends HttpServlet {
private static final long serialVersionUID = 1L;
/**
* @see HttpServlet#HttpServlet()
*/
public ForwardTestServlet() {
super();
// TODO Auto-generated constructor stub
}
/**
* @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
*/
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
System.out.println(this.getServletName()+" doGet 실행");
String view="forward-result.jsp";
MockDAO dao=new MockDAO();
request.setAttribute("info", dao.getDbInfo());
request.getRequestDispatcher(view).forward(request, response);
}
}
package org.kosta.webstudy14.controller;
import java.io.IOException;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.kosta.webstudy14.model.MockDAO;
/**
* Servlet implementation class RedirectTestServlet
*/
@WebServlet("/RedirectTestServlet")
public class RedirectTestServlet extends HttpServlet {
private static final long serialVersionUID = 1L;
/**
* @see HttpServlet#HttpServlet()
*/
public RedirectTestServlet() {
super();
// TODO Auto-generated constructor stub
}
/**
* @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse
* response)
*/
protected void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
System.out.println(getServletName() + " doGet 실행");
MockDAO dao = new MockDAO();
dao.register("등록할 정보");
// redirect 방식으로 view 로 이동한다
String view = "redirect-result.jsp";
// redirect방식은 request가 유지되지 않으므로 아래 코드의 정보는 공유되지 않는다
// 테스트를 위해서 써본다
request.setAttribute("info", "공유정보");
response.sendRedirect(view);
}
}
package org.kosta.webstudy14.model;
public class MockDAO {
public String getDbInfo() {
System.out.println("Model에서 db에 정보를 조회");
return "db 조회정보";
}
public void register(String info) {
System.out.println("Model에서 db에 정보를 등록");
}
}
반응형
'[IT] > java' 카테고리의 다른 글
java.동적 객체 생성 및 메소드 실행 (0) | 2021.04.19 |
---|---|
java.DisignPattern.Front Controller Pattern (0) | 2021.04.16 |
java.mvc.member (0) | 2021.04.14 |
java.DisignPattern.Singleton (0) | 2021.04.14 |
java.web.model2.mvc.forward (0) | 2021.04.13 |
java.web.model2.mvc.forword/redirect (0) | 2021.04.12 |
java.web.model2.mvc (0) | 2021.04.12 |
java.web.초기 (0) | 2021.04.12 |
Comments