ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 08 게시판 검색 기능 추가하기(2)
    Spring/03 MyBatis로 게시판 만들기 2023. 7. 23. 14:00
    반응형

    게시판 검색 기능 추가하기(2)

    1) 실습

    - 게시판 검색 기능 추가하기(1) 2-1) 실습에서 이어진다

     

     

    BoardServiceImpljava

     

    BoardService.java

     

     

    - Board 컨트롤러로 가기 전에 pagepageSizeSearchCondition.java에 만들어 주었다

    (+option ,keyword) 따라서 PageHandler.java를 수정하여 Board 컨틀로러의 List를 변경한다

     

     

    PageHandler.java(수정)

    >> SearchCondition.javapagepageSize을 가지고 있고

         추가로 option, keyword의 값을 가지고 있다\

    >> 생성자에 doPaging( )호출하게 하였다

     

    >> 이전에 page값을 sc.getPage( )sc.getPageSize( )로 가져울 수 있도록 변경하였다

    >> 나머지 pagepageSize getter and setter 삭제

         SerachCondition scgetter and setter를 추가

         sc가 포함된 toString으로 변경(기존 toString삭제)

     

     

    BoardController.java(변경)

    >> BoradController.java에 모든 메서드에

          pagepageSize를 받는 매개변수를 지우고 SerchCondition sc로 변경

     

     

    BoardController.java(변경 이전)

    - SerchCondition sc로 변경되기전 코드 참고용으로 가져왔다

     

     

    결과 확인

    >> boardList.jspquerString에서 에러가 발생

     

     

    SearchCondition.java

    >> 검색 결과를 받고 목록으로 돌아 올때

         값들을 유지하기 위해 getQueryString( )을 만들었다

    >> UriCompoentsBuilderUriCompoents를 만들어 준다

    >> boardMapper.xmloffset값을 전달

     

     

    결과 확인

     

     

     

     

    2) MyBatis의 동적 쿼리 실습

    boardMapper.xml(동적 쿼리 수정)

    >> test= 이후에는 (“ ”)(‘ ’) 둘 다 사용가능

    <when>에서 문자열을 사용해야되므로 1차로(‘ ’)으로 묶고 2차로 문자열을 (“ ”)로 묶는다

     

     

     

    BoardDaoImplTest.java

    >> boardMapper.xml에 동적 쿼리 테스트 진행 결과는 통과하였다

     

     

     

    결과 확인

    >> 동적 쿼리 변경 결과는 이상없이 잘 출력되었다

     

     

     

     

    3) 문제점

    >> 입력란에 <scrpot>alert을 입력하게되면 태그를 인식하여 출력된다

     

     

     

    해결 방안

    board.jsp

    - title 입력란

    - content 입력란

     

     

    boardList.jsp

    - title 출력란

    >>  <c:out value=“ ”/>의 안에 태그</> 명령어는 모두 텍스트로 변환한다

     

     

    결과 확인

    >> 텍스트로 변경되었다 해커나 다른 외부침입을 막을 수 있다

     

     

     

    추가로 jsp 버전으로 오류가 발생하는 경우

    _rt 로 해결 할 수 있다

     

    board.jsp

     

    boardList.jsp

    >> 가끔 버전 불일치로 문제가 발생하면 _rt를 붙이면 해결 된다

     

     

     

    반응형
Designed by Tistory.