목록콤퓨타 왕기초/Spring (32)
파게로그
Method(GET 요청, POST 요청) 구분하여 처리하기 😯 request를 통해서 분기: 권장하지 않음 @RequestMapping("reg") public String reg(HttpServletRequest request, ...) { if (request.getMethod().equals("POST")) { ... } } 😯 RequestMapping annotation에 method 속성 부여: 옛날 방식(~ Spring 3.x) @RequestMapping(value="reg", method=RequestMethod.GET) public String reg() { return "admin/notice/reg"; } @RequestMapping(value="reg", method=Reques..
File saveFile = new File(realPath); multipartFile.transferTo(saveFile); home directory의 실제 경로를 그대로 써버리면 배포하고 나면 문제가 생기니까... ServletContext 얻기 1. 메서드에서만 사용하는 경우에 주로 사용하는 방법 ctx를 얻기 위해서 메서드 파라미터에 HttpServletRequest req를 넣어두고 ServletContext ctx = req.getServletContext(); 2. 멤버 변수로 두기 @Autowired //Spring은 IoC Container에 ServletContext를 담아둔다 private ServletContext ctx; String webPath = "/static/uploa..
웹 브라우저가 WAS 내 Servlet으로 POST를 할 때... key1=value1&key2=value2&...로, 마치 URL의 query string과 같이 전달한다. 그런데 여기에는 문자열 외 바이너리를 포함하기는 어렵다. 이 때에는 클라이언트 인코딩을 새로 해야한다. 먼저, 의 enctype 속성 변경부터 보자. 기존에 우리는 application/x-www-form-urlencoded를 사용한다. 파일을 위해서는 URL 방식이 아니라 multipart/form-data 방식을 이용한다. 이를 위해 로 바꾸어준다. 로 파일 업로드를 가능하도록 버튼을 만들어주면, 서버에서는 public String reg(MultipartFile file)로 받을 수 있다. 실행을 위해 설정을 해보자. 이제는 ..
POST 입력을 위해 Admin Controller가 필요하다. com.ddoongi.web.controller.admin.board에 EmpController를 만들어준다. @Controller("adminEmpController") @RequestMapping("/admin/board/emp/") public class EmpController { @RequestMapping("/list") public String list() { return "list"; } @RequestMapping("/reg") @ResponseBody public String reg() { return "reg"; } @RequestMapping("/edit") public String edit() { return "edi..
Java Doc for @RequestParam https://docs.spring.io/spring-framework/docs/current/javadoc-api/org/springframework/web/bind/annotation/RequestParam.html Query String 파싱 Servlet programming에서는 다음과 같은 방식으로 HTTP 요청의 파라미터를 얻을 수 있다. @RequestMapping("/index") public void index(HttpServletRequest req) { String p = req.getParameter("p"); int value = Integer.parseInt(p); } Spring을 사용하면 이는 보다 편하다. HTTP 요청의 파..
사용자로부터 전달되는 값의 종류 ▪ QueryString URL로 전달되는 문자열 ▪ POST 사용자의 입력으로 전달되는 문자열 ▪ Path 경로로 전달되는 문자열 ▪ Cookie 브라우저에 보관하고 있던 문자열 ▪ Header 요청 헤더로 전달되는 문자열
Maven dependencies에 Jackson Databind를 추가해준다. 파싱 속도가 빠르다고 함 문자열로 변환해서 받도록 해야함 XML, CSV, JSON CSV는 ,만으로 구분되기에 중첩하기가 힘들다 XML은 메타데이터를 같이 보내며 중첩도 가능. 하지만 너무 비대하고 느리다. JSON이 대안. @RequestMapping("list") public List getList() throws ClassNotFoundException, SQLException { List list = service.getList(1, "title", ""); return list; } 얘는 오류가 발생하지 않는다.........! list뿐만 아니라 어떤 객체를 반환해도 Spring이 알아서 JSON으로 바꿔서 반환..
이 글을 쓴 건 옛날인데, 지금도 이 글을 조회하시는 분들이 많이 계셔서 내용을 약간 추가하자면... Spring Boot의 경우에는 한 번도 한글이 깨지는 걸 보지 못했다. 아마도 기본 설정이 모두 UTF-x로 되어있는 듯하다. 그런데 Spring 프레임워크만 이용할 때에는 그렇지 않을 수 있다. 여기서는 XML로 설정했지만 이제는 이러한 방법을 잘 사용하지 않고, Java configuration을 활용해서, 즉 @Bean 어노테이션을 통해서 메시지 컨버터를 주입받으면 된다. 문서보다는 데이터 제공이 주된 역할인 Controller를 만들 때 사용. 예를 들어 JS 개발자에게 리스트 제공. 한글 출력에 또 문제가 있는데.. com.ddoongi.web.controller.api 패키지에 EmpCont..