이 포스팅을 보러왔다면 잡 스케쥴러에 대한 기본 지식은 있고 설정하는 방법을 찾으러 왔다는 가정하에 간단하게 셋팅 내용만 포스팅할 예정이다. 1.servlet-context.xml 에서 task 추가하기간단하게 Namespaces에서 체크해 추가해주자, 메이븐으로 라이브러리를 추가할 필요도 없이 스프링에 내장되어 있다. 2.어노테이션으로 설정123 csservlet-context.xml에서위와 같이 어느 패키지까지 스캔할지 범위를 지정하고 task스케쥴러를 정의한 다음 id값으로 어노테이션과 맞춰준다. 3.스케쥴러 사용하기1234567891011@Controllerpublic class CommunityController { @Autowired CommunityService service; private..
스프링에서 AJAX 작업을 하고 있었는데 STS 자체의 UTF-8과 필터로 UTF-8 셋팅을 다 해줬는데도 한글이나 다른 데이터들이 깨지는 경우가 있었다. 그럴때 찾은 방법으로 spring에서 WEB-INF 아래에 있는 web.xml 아래에 설정 했던 필터에 아래 코드를 추가해주면 된다. 123456789101112131415161718192021 encodingFilter org.springframework.web.filter.CharacterEncodingFilter encoding UTF-8 forceEncoding true encodingFilter /* Colored by Color Scriptercs
1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556@RequestMapping("/board/filedownLoad.do") public void fileDownLoad(String oName, String rName,HttpServletRequest request,HttpServletResponse response) { BufferedInputStream bis=null; ServletOutputStream sos=null; String dir=request.getSession().getServletContext().getRealPath("/resources/upload..
WebSocket은 Transport Protocol로써 웹에서 사용하는 Socket이다. HTTP에서 클라이언트와 서버는 연결을 유지하지 않는 ConnectionLess특징이 있다. Socket은 클라이언트와 서버가 연결을 유지하는 특성을 갖는데, WebSocket을 사용함으로써 웹에서 양방향 실시간 통신이 가능해진다. 즉, 소켓으로 연결되어 있다면 클라이언트가 서버로 뭔가 요청하지 않더라도 서버가 보내고 싶을 때 클라이언트에게 데이터를 보낼 수 있다. 웹소켓은 RFC6445 표준이며, 프로토콜은 ws를 사용한다.HTTP에서 WebSocket으로 포로토콜 전환을 WebSocket HandShake라고 한다. 브라우저는 프로토콜을 HTTP에서 WebSocket으로 전환하려는 요청을 Header에 Upgr..
오늘은 스프링에서 파일 업로드를 해볼 계획이다. 전체적으로 MVC1패턴과 유사하게 진행된다. 하지만 중간에 service부분에서 기존의 방식과는 좀 다른 방식으로 진행되는 부분이 있으니 그 점에서 유의하면 될 것 같다. 1. 라이브러리 추가하기12345678910111213 commons-io commons-io 2.6 commons-fileupload commons-fileupload 1.3.3 Colored by Color Scriptercs 2.Controller에서 여러가지 처리하기12345678910111213141516171819202122232425262728293031323334353637383940414243444546@RequestMapping("/board/boardFormEnd.do..
오늘은 스프링에서 페이징 처리를 해볼 것이다. 페이징 처리는 MVC1 패턴에서도 쓰이던 기법인데 MVC2 패턴에 와서는 더 쉽고 편리하게 구성되어서 좋을 것이다. 기본적인 로직이나 구성은 똑같되 편리한 메소드만 가져다 쓰면되므로 페이징의 기초를 모른다면 아래의 링크로 먼저 학습을 하고 볼 것을 권장한다.https://smujihoon.tistory.com/88 그리고 이번 포스팅에서는 페이징처리를 템플릿화해서 사용할 것이다. 왜냐하면 어느곳에서 쓰이던 공식에 의해 똑같은 로직을 여러 번 구성하는것 보단 템플릿으로 만들어서 필요한 부분에 가져다 사용하는게 방법이 더 효율적이기 때문이다. 1.템플릿을 만들어보자1234567891011121314151617181920212223242526272829303132..
AOP란? 1.공통적으로 실행되는 것을 따로 빼서 사용하는 것예) 은행관련 로직을 수행할 때 항상 본인 인증을 요구하는데 본인 인증 로직을 따로 구현하고 이체나 현금서비스등 돈과 관련된 로직을 수행하려고 하면 그 전에 본인 인증을 요구하게 만드는 것(interceptor나 filter와 유사) 2.관점 지향 프로그래밍을 말한다. 관점 지향 프로그래밍이란??객체가 가지고 있는 기능을 분리하는 것.예를 들자면 dao가 DB에 접근해 데이터를 가져오는데 가지러 갈 때 DB에 대한 커넥션 정보를 그때 넣어주고 다 쓴 객체는 닫아주는 로직을 한번에 구성할 수 있지만 dao와 service를 나눈다. 그리고 service에서 커넥션에 대한 정보를 넣어서 dao를 호출을 한다. 데이터를 리턴받은 service는 그때..
내가 구성한 홈페이지가 있는데 특정 기능들은 로그인 이후에 사용이 가능한 메뉴들이 있을 것이다. 이러한 기능을 사용할 때 이전에는 해당 서블릿에서 session값이 null이 아닐 경우 사용하고 null이면 로그인창으로 재요청을 했다. 이번에 그러한 필터와 비슷한 역할을 해주는 Intercept를 해볼 것이다. Interceptor필터와 비슷한 역할, 서블릿으로 들어오고 매핑된 메소드한테 가기 전에 가로챔 Interceptor 분기 시점 3가지1.요청하자 마자 동작 (서블릿으로 도착하고 매핑된 메소드로 가기 직전에) - preHandle2.응답되고 동작 (View화면 보이기전) - PostHandle3.응답이 View화면이 보이고 난 이후 동작 - afterCompletion 사용방법HandlerInte..