반응형

2018/09 50

Servlet 기본 및 예제

# Servlet 개념 WAS(톰캣)이 요청을 받았을 때 해당 요청을 처리해줄 컨트롤러. 최초 한번 생성되고, 다른 요청이 있을땐 기존 생성된 서블릿을 사용하기 때문에, 매번 새로운 처리 객체를 만드는 다른 CGI언어에 비해 서버가 받는 부하가 적다.# Servlet 생명주기1) @PostConstructServlet이 생성될 때 1번만 실행됨, init메소드보다 먼저실행됨어노테이션을 이용해 PostConstruct메소드로 지정함으로써 구현 123456@PostConstructpublic void myInitMethod(){ // 초기화 내용 구현} cs 2) init()PostConstruct와 같이 Servlet이 생성될 때 1번만 실행됨 1234@Overridepublic void init() th..

Back-End/JSP 2018.09.17

JSP에서의 MVC 모델1, 모델2

1. MVC 패턴Model : 컨트롤러의 요청을 받아 데이터의 추출, 입력, 갱신 등 작업 수행View : 웹브라우저 등 사용자에게 보여지는 영역을 담당, 컨트롤러가 응답하는 내용을 받아 브라우저에 보여줄 페이지를 만듬Controller : 웹브라우저에서 요청을 받아 알맞은 Model들이 요청에 맞는 데이터를 처리하게 하고 처리결과를 받아 다시 알맞은 View에게 넘겨주는 역할 2. 모델1 구조사실상 별도의 컨트롤러가 없지만 굳이 분리하자면JSP가 Controller, View 역할을 다하는 구조웹브라우저의 요청을 받아 알맞은 Model을 선택해 처리요청하는 컨트롤러의 역할, Model의 처리결과를 받아 웹브라우저에 응답될 웹페이지를 생성하는 뷰의 역할을 같이 한다. # 장점변경사항, 요구사항이 적거나 ..

Back-End/JSP 2018.09.17

Spring Interceptor 사용 시 호출 Method 얻어오기

인터셉터의 preHandle, postHandle 메소드에 보면 Object형 handler라는 이름의 인자가 있다. 이 인자는 RequestMapping으로 매핑된 하나의 메소드로 스프링 프레임워크에 의해org.springframework.web.method.HandlerMethod라는 클래스로 바인드 되어 전달되는 인자다. getMethod()를 호출하면 실제 java Reflection의 Method형 객체를 얻을수 있다. Custom Annotation을 사용한다면 Interceptor에서 위 handler 객체를 HandlerMethod method = ((HandlerMethod)handler);MyAnnotation anno = method.getMethodAnnotation(MyAnnota..

Mybatis XML 쿼리 작성 시 비교 연산자 (<, >) 사용

XML에서 쿼리를 작성할 때 와 같은 비교 연산자를 사용하면 The content of elements must consist of well-formed character data or markup. 이런 오류메세지가 나타날 수 있다. XML에서 를 비교연산자로 판단하지 않고 등 태그의 시작과 끝으로 인식되어 생기는 일이다. 해결하기 위해서는 비교연산 사용하는 부분에을 로 감싸주면 된다. ex)select *from some_tablewhere 5 ]]>

Spring Path variable 사용 시 확장자

123456@RequestMapping("/temp/{filename}")public ResponseEntity tempView(@PathVariable String filename) throws IOException { logger.info("Return Temp image data"); logger.info(filename); return null;} Colored by Color Scriptercs위와같이 매핑한 후 localhost:8080/content/temp/testFile.jpg 이런 경로로 주소를 날렸더니 에러가 발생했다. 문제는 로그에 찍힌 filename .jpg는 사라진채 testFile만 들어와지는 것이었다. 1@RequestMapping("/temp/{filename:.+}")c..

Spring MVC image 반환

1. HTML1234 cs 위 이미지 태그는 IP주소:PORT번호/CONTEXT/getImage 의 주소로 요청을 날린다. 2. Controller1234567@RequestMapping("/getImage")@ResponseBody public ResponseEntity profileImage() throws IOException { HttpHeaders header = new HttpHeaders(); header.setContentType(MediaType.IMAGE_JPEG); return new ResponseEntity(IOUtils.toByteArray(new FileInputStream(new File("이미지 경로"))), header, HttpStatus.CREATED); }Colore..

커스텀 HandlerMethodArgumentResolver 사용시 MultipartHttpServletRequest 얻는 방법

12345@Override public Object resolveArgument(MethodParameter arg0,ModelAndViewContainer arg1,NativeWebRequest arg2,WebDataBinderFactory arg3) throws Exception{ MultipartHttpServletRequest request = (MultipartHttpServletRequest)arg2.getNativeRequest(); return request; }Colored by Color Scriptercs NativeWebRequest의 getNativeRequest() 메소드는 HttpServletRequest를 반환한다.MultipartHttpServletRequest는 HttpS..

Spring MVC MultipartHttpServletRequest 사용시 한글 문제

Ajax Multipart요청을 받는 컨트롤러에서 MultipartHttpServletRequest 안에 들어있는 parameter 들이 한글이 깨지는 문제가 발생했다. 때문에 12345678Enumeration paramNames = request.getParameterNames(); while(paramNames.hasMoreElements()) { String key = paramNames.nextElement(); String originalValue = request.getParameter(key); String encodedValue = new String(originalValue.getBytes("ISO-8859-1"), "UTF-8");}Colored by Color Scriptercs 위..