- 2019/10/15 Spring 요청 명령어 를 받는 다양한 방식 & Filter(필터)2019년 10월 15일
- 조별하
- 작성자
- 2019.10.15.:33
BbsCont.java 전체 코드
package kr.co.basicspring.test02; import javax.servlet.http.HttpServletRequest; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMethod; import org.springframework.web.servlet.ModelAndView; import org.springframework.web.filter.CharacterEncodingFilter; //@Controller 어노테이션이 붙는 class 는 자동으로 객체생성을 해준다 @Controller public class BbsCont { public BbsCont() { //객체 생성이 되었는지 늘 출력으로 확인을 하자 System.out.println("------------BbsCont()객체 생성됨"); }//Bbscont end //결과확인 //http://localhost:8090/basicspring/bbs/create.do //1) /* @RequestMapping(value="bbs/create.do",method=RequestMethod.GET) public ModelAndView bbsForm() { ModelAndView mav= new ModelAndView(); mav.setViewName("bbs/bbsForm"); return mav; }//bbsForm end */ //2) @RequestMapping(value="bbs/create.do",method=RequestMethod.GET) public String bbsForm() { return "bbs/bbsForm"; }//bbsForm() end //---------------------------------------------------------------------- //가) 동일한 요청 명령어를 GET|POST 방식으로 분리해서 호출가능 /* @RequestMapping(value="bbs/create.do",method=RequestMethod.POST) public ModelAndView bbsIns(HttpServletRequest req) { String wname=req.getParameter("wname").trim(); String subject=req.getParameter("subject").trim(); String content=req.getParameter("content").trim(); String passwd=req.getParameter("passwd").trim(); ModelAndView mav= new ModelAndView(); mav.setViewName("bbs/bbsResult"); mav.addObject("wname",wname); mav.addObject("subject",subject); mav.addObject("content",content); mav.addObject("passwd",passwd); return mav; } */ //나) 매개변수(parameter)가 DTO객체인 경우 // =>해당 클래스에 반드시 // ->폼 컨트롤 요소이름으로 되어 있는 멤버변수와 // ->각 getter 와 getter 함수가 있어야 한다. @RequestMapping(value="bbs/create.do", method=RequestMethod.POST) public ModelAndView bbsInt(BbsDTO dto) { System.out.println("wname : " +dto.getWname()); System.out.println("subject : " +dto.getSubject()); System.out.println("content : " +dto.getContent()); System.out.println("passwd : " +dto.getPasswd()); ModelAndView mav= new ModelAndView(); mav.setViewName("bbs/bbsResult2"); //request영역에 dto 객체 올리기 mav.addObject("dto",dto); return mav; }//bbsInt() end }//
※ 주의사항
소스코드를 복사할때는 앞,뒤에 있는 <code></code> 코드는 빼고 복사하자
1) 동일한 요청 명령어를 GET POST 방식으로 호출한 방식
1. BbsCont.java
//동일한 요청 명령어를 GET|POST 방식으로 분리해서 호출가능 @RequestMapping(value="bbs/create.do",method=RequestMethod.POST) public ModelAndView bbsIns(HttpServletRequest req) { String wname=req.getParameter("wname").trim(); String subject=req.getParameter("subject").trim(); String content=req.getParameter("content").trim(); String passwd=req.getParameter("passwd").trim(); ModelAndView mav= new ModelAndView(); mav.setViewName("bbs/bbsResult"); mav.addObject("wname",wname); mav.addObject("subject",subject); mav.addObject("content",content); mav.addObject("passwd",passwd); return mav; }
9 line 에서 ModelAndView 객체에 넣어준 bbsResult 를 생성 시켜주자 2. 페이지 생성
bbsResult.jsp생성 3. bbsResult.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>bbs/bbsResult.jsp</title> </head> <body> <h3>* 글쓰기 결과*</h3> 작성자 : ${wname}<br> 제목 : ${subject}<br> 내용 : ${content}<br> 비밀번호: ${passwd}<br> </body> </html>
4. 결과1
bbsForm에 접속하여 값을 입력하면 bbsResult에 출력이 되었다. 단, 아직 인코딩을 하지 않았기 때문에 한글을 적으면 한글이 깨져 화면에 출력된다. 5. 인코딩 서블릿 등록
MVC 버전에서 encodefilter 작성하고 서블릿 등록을 해주었지만, spring에서는 서블릿 등록만 해주면 한글필터를 통과
bbsCont.java
import org.springframework.web.filter.CharacterEncodingFilter; ▲ 필터 인코딩을 서블릿에 등록하기 위해 bbsCont.java(현재 운영중이 controller) 에 위의 코드를 import 시켜주자
web.xml
<!-- 한글 필터 등록 --> <filter> <filter-name>encodingFilter</filter-name> <filter-class> org.springframework.web.filter.CharacterEncodingFilter </filter-class> <init-param> <param-name>encoding</param-name> <param-value>UTF-8</param-value> </init-param> </filter> <filter-mapping> <filter-name>encodingFilter</filter-name> <url-pattern>/*</url-pattern> </filter-mapping>
5. 결과2
짠! 한글이 깨짐없이 잘 출력되었으니 인코딩은 성공함 2) 요청 명령어 매개변수(parameter)가 DTO객체인 경우
1. BbsDTO 생성
package kr.co.basicspring.test02;
위의 칼럼으로 BbsDTO 를 생성한 후 getter setter를 생성
2. BbsCont.java
매개변수(parameter)가 DTO객체인 경우
->해당 클래스에 반드시
->폼 컨트롤 요소이름으로 되어 있는 멤버변수와
->각 setter 와 getter 함수가 있어야 한다.@RequestMapping(value="bbs/create.do",method=RequestMethod.GET) public String bbsForm() { return "bbs/bbsForm"; }//bbsForm() end @RequestMapping(value="bbs/create.do", method=RequestMethod.post) public ModelAndView bbsInt(BbsDTO dto) { System.out.println("wname : " +dto.getWname()); System.out.println("subject : " +dto.getSubject()); System.out.println("content : " +dto.getContent()); System.out.println("passwd : " +dto.getPasswd()); ModelAndView mav= new ModelAndView(); mav.setViewName("bbs/bbsResult2"); //request영역에 dto 객체 올리기 mav.addObject("dto",dto); return mav; }//bbsInt() end
10 line 객체에 담은 bbsResult2 파일을 생성후 테스트 해보자 3. bbsResult2.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>bbs/bbsResult2.jsp</title> </head> <body> <h3>* 글쓰기 결과*</h3> 작성자 : ${dto.wname}<br> 제목 : ${dto.subject}<br> 내용 : ${dto.content}<br> 비밀번호: ${dto.passwd}<br> </body> </html>
결과
'JAVA 교육 > Spring' 카테고리의 다른 글
2019/10/16 Maven 라이브러리 다운 방법 (0) 2019.10.16 2019/10/16 Spring 로그인 폼 (0) 2019.10.16 DTO 와 VO 의 차이점 (0) 2019.10.16 2019/10/15 Spring 프로젝트생성 및 환경구축 (사칙연산 test) (0) 2019.10.15 2019/10/14 Framework (myBatis ) (0) 2019.10.14 다음글이전글이전 글이 없습니다.댓글
스킨 업데이트 안내
현재 이용하고 계신 스킨의 버전보다 더 높은 최신 버전이 감지 되었습니다. 최신버전 스킨 파일을 다운로드 받을 수 있는 페이지로 이동하시겠습니까?
("아니오" 를 선택할 시 30일 동안 최신 버전이 감지되어도 모달 창이 표시되지 않습니다.)