프로그래밍

    @ResponseBody, jackson-databind 라이브러리 활용

    @ResponseBody, jackson-databind 라이브러리 활용

    이 포스팅에서는 @ResponseBody와 jackson을 활용해보도록 하겠다. 코드는 다음과 같다. @Controller public class controller3 { private static final Logger logger = LoggerFactory.getLogger(controller3.class); @RequestMapping(value = "/rb-test") @ResponseBody public String testString() { logger.info("testString() 호출"); return "Hello, Spring!"; } @RequestMapping(value = "/json-test") @ResponseBody public Product testJson() { log..

    MVC Patterns 기본적 컨트롤러 생성 / redirect 활용

    MVC Patterns 기본적 컨트롤러 생성 / redirect 활용

    여기서는 저번에 생성한 프로젝트를 바탕으로 기본적인 패턴을 연습삼아 만들어 보도록 하겠다. 밑의 product를 먼저 이야기하자면 private int pid; // 상품아이디 private String pname; // 상품 이름 private int price; // 상품 가격 이런 형태의 모델 클래스이다.getter/setter와 생성자는 길어서 뺏다. 저번에 만든 컨트롤러 클래스에서 controller를 만들었다.코드는 아래와 같다. @Controller public class controller { // 1 private static final Logger logger = LoggerFactory.getLogger(controller.class); // 2 @RequestMapping(value..

    intelliJ에서 SpringMVC 생성하기

    intelliJ에서 SpringMVC 생성하기

    이 글은 https://nesoy.github.io/articles/2017-02/SpringMVC Nesoy 님의 흐름을 바탕으로 제가 새롭게 캡쳐해서 올린 글입니다. 이클립스는 검색하면 많이 나오기에 intellij만 정리합니다. 먼저 new project에서메이븐 프로젝트를 생성합니다 프로젝트 이름은 artifactId입니다.적당히 입력해줍니다. 컨텐트 루트를 바꾸고 싶으신 분은 바꿔줍시다. 생성됬으면 프로젝트 이름 우클을 하여 add Framework support를 선택해 줍니다. 스프링 MVC 패턴을 선택하여 진행합시다. 그러면 디렉토리 형식에 조금 변화가 있을 것입니다. 그 후 web 디렉토리 우클을 하여'views' 폴더를 하나 만들어 줍시다. 그리고 web 아래있는 index.jsp를 v..

    JSP Filter

    JSP에서 필터라는 개념을 생각해보자 필터는 당연 무엇인가를 거르는 속성이 있어야 한다. 간단한 예제코드를 보자 public class TestFilter implements Filter { public TestFilter() { } public void destroy() { } public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException { System.out.println(">>> TestFilter::doFilter() 실행 전"); // pass the request along the filter chain chain.doFilter..

    Ajax - Asynchronous JavaScript And XML (2/2)

    Ajax - Asynchronous JavaScript And XML (2/2)

    가장 많이 사용하는 jQuery의 $.ajax 방식에 대해 알아보도록 하자 일단 코드를 짜봤다. jQuery Ajax $.ajax() 함수 ajax get ajax post 결과 출력 get방식이던, post 방식이던 디렉토리에 포함된 txt 파일 or jsp를 서버로 보내 그 결과값을 받는 형식의 코드다 이미지는 어떤 것이든 상관없고 txt파일의 내용은 이러하다 jQuery Ajax load() 함수 테스트 여기는 단락(p1)입니다... post에서 보내는 jsp 파일의 형식은 이렇게 된다. ID: ${param.id} PW: ${param.pw} 이 코드를 실행하면 이런 페이지가 뜬다. get방식을 하면 간단하다. 텍스트 정보와, 텍스트 정보에 포함된 이미지를 불러오는 코드로 인해디렉토리에 저장된 이..

    Ajax - Asynchronous JavaScript And XML (1/2)

    Ajax - Asynchronous JavaScript And XML (1/2)

    Ajax는 비동기 웹통신 방식이다. 안드로이드를 배웠다면, 안드로이드의 어싱크탱크와 유사하다고 보면 된다. 사용자가 웹에서 작업을 할 때 보통 반응이 오면 웹페이지의 형식이 바뀐다. Ajax는 이를 웹페이지 변화 없이 가능하게 한다. 예를 들어보자 이는 네이버의 회원가입 페이지이다. 아이디를 불가능하게끔 입력해보자 그러면 이런 메시지가 뜬다. 이러한 메시지는 즉시 발생하는 것이며, 웹페이지의 변화없이 발생한다. Ajax가 적용된 웹페이지 인 것이다. 회원가입하는 사용자 입장에서 틀릴 때마다 틀린 정보를 알려주면서웹을 갱신해버리면 이전에 알맞게 쓴 항목까지도 새로 써야하니 짜증이 이만저만이 아닐 것이다. Ajax는 이러한 고민을 해결해주는 훌륭한 도구이다. Ajax의 적용원리는 아래와 같다. /* Ajax..

    JSP에서 쿠키와 세션

    쿠키는 웹 사이트가 있는 서버에 의해 사용자의 컴퓨터에 저장되는 정보를 뜻한다짧은 시간 사용되는 것이 일반적인 정보데이터인데의도적으로 유효시간을 늘릴 수도 있다. 세션은 서버가 브라우저의 상태를 저장하는 웹데이터 컨테이너 같은 느낌이다.사용자가 브라우저에서 로그인한다면 일반적으로 로그인한 정보를 세션에 저장한다.그 세션의 주소값을 브라우저에게 보내주고브라우저는 그 세션의 주소값을 읽고 주기적으로 접속하여세션에 저장된 데이터를 사용한다.로그인이 계속 유지될 수 있는 이유도 그것이다. 세션의 유효시간은 서버 소프트웨어마다 차이는 있지만일반적으로 30분이다.(일반적으로 설치 시 설정이 가능하다)마지막 세션 접근 시기부터 30분이 지나면 서버는세션에 접근한 데이터가 더이상 없다고 판단하고세션을 지워버린다. 사용..

    MVC Model2 패턴 / 간이 게시판 제작 기록 (4/4)

    마지막으로 검색 방법에 대해 다루도록 하겠다 사실 여지껏 한 페이지 만들기에는 회원 테이블, 정보조회도 들어가있지만 게시글 조회와 거의 99% 똑같다 걍 빼도록 한다. 먼저 게시글 검색의 형태이다 코드는 이런 형태가 된다. 작성자 글제목 글제목 + 내용 보통 검색페이지는 작성자, 글 제목, 글제목과 내용으로 분류된다 때문에 이러한 방식으로 구성하였고 board-search 서블릿의 doGet이 받아서처리할 수 있게끔 form을 구성해준다 private BoardService boardService; public BoardSearchServlet() { super(); boardService = BoardServiceImple.getInstance(); } protected void doGet(HttpSe..

    MVC Model2 패턴 / 간이 게시판 제작 기록 (3/4)

    이 페이지에서는 수정과 삭제를 다루도록 하겠다. 게시글 추가가 가능했다면 수정 기능도 거의 비슷하다 먼저 수정 jsp에 접근할 공간을 찾아보자게시글을 수정한다면, 게시글을 표현해주는 구체적인 페이지가 좋겠고그 페이지는 상세 페이지가 좋을 것이다. 상세 페이지의 코드는 생략하도록 한다. SQL 코드의 차이를 제외하면 조회 코드와 거의 유사하다. 수정 페이지는 대략 이런페이지로 구성되어있다.. 수정 버튼을 클릭하게 되면 이러한 구체적인 페이지로 넘어가게끔 한다. 제목과 내용 항목은 모두 readonly 형태로 구성한다 작성시간은 자동으로 수정될 것이며제목과 내용 이외의 항목이 수정되는 것은 너무나 부자연스럽다. 이젠 jsp를 살펴보자상세페이지에서 버튼을 만들어준다.게시글 수정 게시글을 수정했을 시 컨트롤러를..

    MVC Model2 패턴 / 간이 게시판 제작 기록 (2/4)

    본격적으로 게시판을 만들 것이다. 먼저 논리의 흐름대로 만들 것이다. 먼저 데이터베이스에 들어있는 자료를 뽑아오는 조회 클래스를 만들도록 하자. private BoardService boardService; public BoardMainServlet() { super(); boardService = BoardServiceImple.getInstance(); } protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { System.out.println("BoardMainServlet::doGet() 호출"); // 게시글 전체 검색 List list = ..