티스토리 뷰
1. RequestMapping Method(Get,Post Method)
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 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 | 처리 순서 1. Controller.java @RequestMapping("/index") public String goIndex(){ return "index"; } => /index경로로 요청이 들어오면 index.jsp 파일로 넘어가서 처리를 한다. 처리 순서 2. index.jsp <form action="student" method="get"> student id :<input type="text" name="id"> <br /> <input type="submit" value="전송"> </form> =>submit 을 누르면 -> /student로 이동한다 처리 순서 3. Controller.java @RequestMapping(method =RequestMethod.GET value ="/student") // indext.jsp로 부터 요청처리가 들어왔으므로 /student경로에 RequestMapping 처리가 이루어 진다. public String goStudent(HttpServletRequest,Model model){ // httpServletRequest는 index.jsp파일에 id값을 받아온다. System.out.println("RequestMethod.GET"); String id = httpServletRequest.getParameter("id"); System.out.println("id :" + id); model.addAttribute("studentid ",id); return "student/studentId"; } => Get방식은 get 끼리, Post는 post끼리 받을 수 있음. 만약 Request방식이 틀릴경우에는 405 Error 발생 * 여기서 Get,Post방식을 둘다 처리하고 싶을 경우 위의 코드와 지금 쓰는 코드를 같이 쓰면 get,post를 둘다 표현 할 수 있음. public ModelAndView goStudent(HttpServletRequest){ // httpServletRequest는 index.jsp파일에 id값을 받아온다. System.out.println("RequestMethod.Post"); String id = httpServletRequest.getParameter("id"); System.out.println("id :" + id); ModelAndView mv = new ModelAndView(); mv.setViewName("student/studentId"); mv.addObject("studentId",id); return mv; } 여기서 get,post방식을 정리하면 get은 Url에 정보를 헤더에 담아 전송하지만, 파라미터값이 보이게 된다. 그리고 post방식은 Url에 정보를 바디에 담아 전송하므로 보안적으로 파라미터값이 보이지 않는다. | cs |
2. ModelAttribute Annotation
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 29 30 31 32 33 34 35 36 37 38 39 | ModelAttirubute Annotaion 이용시 커멘드 객체의 이름을 개발자가 변경 할 수 있음. 예제로 살펴보자) @RequestMpping("studentView") public String studentView(StudentInformation studentInformation){ return "studentView"; } => 지금 클래스 이름이 너무길다, 그래서 따로 커멘드 객체의 이름을 바꿔버리고 싶은 경우가 있을 것이다 . @RequestMpping("studentView") public String studentView(@ModelAttribute("StudentInfo") StudentInformation studentInformation){ return "studentView"; } =>이렇게 ModelAttribute 어노테이션을 사용하게 될경우 StudentInformation -> StudentInfo로 커멘드 객체의 이름을 변경할 수 있다. 그러면 이제 .jsp파일에서 변경된 StudentInfo를 사용서 객체를 참조할 수 있음 (닉네임이라고 생각하면 편함) .JSP 파일의 내용 name : ${StudentInfo.name} id : ${studentInfo.id} pw : ${studentInfo.pw} email :${studentInfo.email} 혹시 한글이 깨질경우에는 => web.xml파일에 utf파일형식을 붙여넣기한후, index.jsp파일의 인코딩타입을 바꿔준다 utf-8으로 그러면 한글 깨짐을 해결 할 수 있음. | cs |
3. Redirect Conduct(Proecess)
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 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 | 다른 페이지로 이동할 때 사용 @Controller public class RedirectController{ @RequestMapping("/studentConfirm") public String studentRedirect(HttpServletRequest httpServletRequest,Model model){ String id = httpServletRequest.getParameter("id"); if(id.equals("kgh")){ return "redirect:studentOk"; } return "redirect:studentNg"; } @RequestMapping("/studentOk") public String studentOk(Model model){ return "student/studentOk"; } @RequestMapping("/studentNg") public String studentNg(Model model){ return "student/studentNg"; } @RequestMapping("/studentURL1") public String studentURL1(Model model){ return "redirect:http://localhost:8181/spring_14_3_ex1_springex/studentURL1.jsp"; } @RequestMapping("/studentURL2") public String studentURL1(Model model){ return "redirect:student/studentURL2.jsp"; } } => Request path 를 모두 써서 사용할 수도 있고, 조건처리문에서 리다이렉트문을 써버리면 편리하다. 로그인 처리할때 쓰면 될듯(인증부분) - Class RequestMapping @Controller @RequestMapping("/board") public class HomeController(){ } - Method RequestMapping @RequestMapping("/write") model.addAttribute("id","value"); return "/board/view"; } => Class, Method RequestMapping 을 하여 조합된 경로를 요청한다 (/board + /write) Path : "/board/write" write는 jsp 파일이다 @RequestMapping("/modelAndView/modelView") public ModelAndView modelAndView(){ //ModelAndView Create Object ModelAndView mv = new ModelAndView(); // Model 객체에 데이터를 담는다. mv.addObject("id","value"); // 뷰이름을 설정 mv.setViewName("/modelAndView/modelView"); return mv; } 위와 동일 하게 jsp 파일에 값을 사용하여 출력시킬 수 있음. RequestMapping을 사용할 경우에는 Controller Annotation을 선언 해주어야 한다는것을 잊지말기. @RequestMapping("/board/content") public String content(Model model){ model.Addattribute("id","value"); 값으로 지정한후 return "/board/content"; } => board 리턴값으로 경로 받아온후 view.jsp파일에서 id 값을 View page Value로 데이터 전달 가능 | cs |
'Spring' 카테고리의 다른 글
[Spring] Cannot load JDBC driver class 'com.mysql.jdbc.Driver / tomcat 404 error(spring - No mapping found for HTTP request with URI)해결하기 (0) | 2018.03.13 |
---|---|
[Spring] MVC - 게시판 만들기 2(게시판 기본 설계) (0) | 2018.03.12 |
[Spring] Form data value validation (0) | 2018.03.05 |
[Spring] Form Data (0) | 2018.03.05 |
[Spring] Controller and Mapping (0) | 2018.03.05 |
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
링크
TAG
- 초보자를 위한 C언어 300제
- Controller
- programming
- 알고리즘
- 프로그래밍
- node.js
- 복습
- Android
- 코드엔진
- db
- 백준알고리즘
- 텐서플로우
- C언어
- 개발하는 관광이
- 스프링
- 리버싱
- 노드
- 안드로이드
- 백준
- 감자코딩
- BFS
- node
- C langauge
- TensorFlow
- Algorigm
- 학교
- MVC
- 감자개발자
- 머신러닝
- Spring
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
29 | 30 | 31 |
글 보관함