본문 바로가기

웹 개발(OLD)

(27)
GET과 POST의 차이 HTTP HTTP는 웹상에서 클라이언트와 서버 간에 요청/응답으로 데이터를 주고 받을 수 있는 프로토콜입니다. 클라이언트가 HTTP 프로토콜을 통해 서버에게 요청을 보내면 서버는 요청에 맞는 응답을 클라이언트에게 전송합니다. 이 때, HTTP 요청에 포함되는 HTTP 메소드는 서버가 요청을 수행하기 위해 해야할 행동을 표시하는 용도로 사용합니다. 이 HTTP 메소드 중 GET과 POST의 특징과 차이점을 알아보겠습니다. GET HTTP/1.1 스펙인 RFC2616의 Section9.3에 따르면 GET은 서버로부터 정보를 조회하기 위해 설계된 메소드입니다. GET은 요청을 전송할 때 필요한 데이터를 Body에 담지 않고, 쿼리스트링을 통해 전송합니다. URL의 끝에 ?와 함께 이름과 값으로 쌍을 이루는 요..
jsp파일이 웹브라우저로 응답되는 과정 위와 같이 views폴더밑에 fortune.jsp 페이지를 뒀었다. jsp라는게 java기반인데 그러면 클라이언트로 응답을 하려면 결국 java파일이 컴파일되어서 class파일로 되어야 한다는건데 어떻게 그리고 언제 이런 작업들이 되는걸까? 위의 views폴더에 해당하는 서버쪽의 경로로 찾아가보면 아래 처럼 .jsp파일은 없고 .java파일과 .class파일이 있다.즉, 작성된 fortune.jsp파일은 fortune.java파일로 바뀌어 저장되어있다가 해당 jsp페이지로의 요청이 클라이언트로부터 최초로 들어왔을때, .java파일이 컴파일되어 .class파일이된다. 그리고 이 내용이 클라이언트로 응답되는 것이다.즉, 웹브라우저에서 fortune.do 라는 경로로 요청이 들어왔다고 하면, 비즈니스 로직을 ..
전자정부프레임워크 jsp, 컨트롤러간 json데이터 ajax통신 -pom.xml -web.xml(확장자 나눌거면 하는데 그냥 .do로 통일시킬거면 할필요 없음 즉 optional)필자는 아래 설정 후 ajax로 서버 url 지정할때 .ajax붙이고 컨트롤러에서도 매핑url을 .ajax로 해서 테스트 해본 후 되는 걸 확인하고, 다시 아래 설정을 없애고 원래 .do로도 되는지 테스트 해본 결과 이상없어서 그냥 .do로 통일시켰다. - dispatcher-servlet.xml컨트롤러의 메소드에서 return "jsonView" 라고 하면 알아서 객체를 json형식으로 파싱하여 ajax통신을 요청한 곳으로 응답하도록 설정하는 부분..(아마도) - main.jsp 부분 : 서버의 listAll.do 로 ajax요청을 한다. - 컨트롤러요청으로 날아온 주소, 위도, 경도 정보..
스프링 게시판 검색처리(동적 SQL) 1. 먼저 검색 처리를 위해서는, 게시물 검색을 하고 페이지가 이동되더라도 검색조건과 관련된 파라미터가 페이지 간 유지되어야 한다. 따라서 현재 페이지 번호(page), 페이지당 보여지는 데이터 수(perPageNum), 검색 옵션(searchType), 검색 키워드(keyword)의 네 가지 정보가 필요하다. 이미 Criteria 클래스에서 page, perPageNum을 관리하고 있기 때문에 이를 상속받아 searchType, keyword를 함께 관리하는 SearchCriteria 클래스를 만든다.(getter & setter, toString() 생략) 2. 그럼 검색처리까지 완료된 게시물 CRUD를 관리할 컨트롤러인 SearchBoardController를 만들고 가장 먼저 리스트 페이지를 띄워..
페이지간 정보 유지( 목록 -> 조회 -> 삭제 -> 원래 목록페이지 ) 특정 게시물 조회 페이지에서 삭제를 했을 때, 삭제 처리 후 다시 원래 보고 있었던 리스트페이지로 이동하고 싶었다. redirect를 이용하여 웹페이지를 이동할 때 RedirectAttributes 클래스의 addAttribute() 또는 addFlashAttribute() 를 이용한다. 그래서 session에 값을 담았다가 한 번 사용되고 나면 자동으로 없어지는 addFlashAttribute()를 이용하여 시도해봤다. 즉,1. readPage.jsp 에서 아래와 같이 form 태그에서 hidden타입으로 page, perPageNum, bno값을 가지고 있는 상태에서( 이 값들은 목록 페이지에서 model에 담아서 넘겨준 값들이다.) 아래의 삭제 버튼을 클릭한다. 2. 그러면 해당 버튼의 클릭 이벤트..
스프링 애노테이션 종류 http://noritersand.tistory.com/156
Spring 게시글 CRUD 1. 게시글의 TITLE을 클릭하면 해당 게시글을 조회할 수 있도록 링크를 걸어준다. 1-1. 그러면 컨트롤러에서 @RequestParam을 이용해서 요청으로 들어온 bno를 읽어온다. 그리고 해당하는 게시글을 DB에서 가져와 Model객체에 담아준다. 2. 그러면 화면에 해당 게시글 정보를 뿌려주면 되는데, 이때 조회 페이지다보니까 읽기 전용이어야 한다. 따라서 각 에 readonly속성을 추가해준다. 이때 중요한게 조회페이지에서 추후 삭제나 수정을 처리할 때 bno값을 넘겨주어야 한다. 근데 딱히 조회페이지에서는 bno를 보여줄 필요는 없기 때문에 hidden 타입으로 갖고 있고 버튼을 누를 때 이 값이 보내지도록 from 태그로 감싸놓는다. 수정, 삭제, 그리고 다시 모든 리스트조회 페이지로의 이동..
Spring 페이지 무한스크롤 구현한 결과부터 보면 ( 기능에 초점을 뒀다.. 매끄럽지는 않다. ) 구현 과정 1. 먼저 최초에 미리 정한 뿌려줄 갯수인, 20개의 게시물 리스트를 띄워준다. 경로는 /board/listAll 1-1. 쿼리는 MySQL에서 제공하는 'limit 시작, 몇개까지' 를 이용해서 20개를 뿌려주도록 한다.1-2. (Mapper를 호출하는 DAO클래스, dao를 호출하는 Service 클래스는 생략하고, ) 컨트롤러에서 이 20개의 데이터를 DB로부터 받아와서 Model객체에 list라는 키 값으로 담은 후, View로 보낸다. 이때 메소드의 리턴 타입이 void이므로 해당경로 즉, board/listAll.jsp를 렌더링 하게된다.1-3. 그러면 listAll.jsp에서는 jstl의 c:forEach문을 이..