*servlet & jsp* 12

[myBatis] 댓글달기 / 페이징처리

1. jsp에 검색필터 selection 만들어두기 * form 태그 action속성엔 쿼리스트링 사용X 2. 서블릿에서 사용자로부터 검색 카테고리값과 키워드 입력받아 값 뽑기 3. 사용자로부터 입력받은 검색카테고리와 키워드를 HashMap에 담아서 서비스로 보내기 4. 전달받은 HashMap dao로 전달하기 5. HashMap전달받은 dao에서 쿼리문 실행하고 검색된 항목들의 총갯수 받아오기 6. 마이바티스를 이용하여 동적 sql생성하고 실행하기 검색항목과 사용자가 입력한 키워드로 조회된 게시글의 총 수 가져오기 7. 사용자가 요청한 검색결과에 맞는 게시글의 총 갯수 구하여 페이징처리처리하는 인스턴스 PageInfo 구해옴 8. 검색된 항목들로 게시글 ArrayList로 담아오기 9. 서비스단 10...

[myBatis] 게시글 상세보기 / 댓글달기

1. 댓글(Reply) Vo class 만들기 2. 뷰단에 글제목을 클릭하면 해당 특정 게시글페이지로 넘어갈수 있도록 쿼리스트링으로 유니크속성인 boardNo을 같이 넘겨준다. 3.detail.bo 서블릿으로 이동 4. 조회수를 증가시키기위하여 mapper에 등록해놓은 쿼리문 5. dao에서 쿼리문 날리고 나온 결과값 서비스로 반환 6. 서비스단에서 받아온 결과값 트랜잭션 처리후 다시 서블릿(컨트롤러)단으로 결과값 전달 7. 조회수 증가시킨 후 서블릿에서 다시 해당 게시글의 상세정보를 db에서 조회해온다(결과값 한행) 8. DB에 날릴 쿼리문들 9. 위의 mapper파일에서 날리 쿼리문을 실행하는 dao 10. db결과값을 전달받은 서비스단 11. 해당 게시글에 달려있는 댓글들을 조회해오기 12. 서블릿..

[myBatis] 페이징처리

1. 페이징바로 쓸 class를 생성한다. 2. 게시판 클릭 이벤트 발생 3. 서블릿단의 가공처리 4. 페이징바 코드공식의 중복방지를 위한 class를 하나더 생성한다. 5. DB에 가서 게시판의 총 갯수 구해오기 (서비스단) 6. DB에 날릴 mapper파일 및 쿼리문 생성 7. dao에서 쿼리문 실행하고 조회 결과값 서비스단으로 반환하기 DB에서 이렇게 한행으로 조회되는 것을 확인할 수 있다 8. 전달받은 총 게시판의 수 서비스단에서 서블릿으로 반환하기 9. 총게시글 수 반환받기(서블릿; 컨트롤러단에서) 10. 본격 게시판 페이징 처리 시작, 서블릿에서 PageInfo객체 셋팅해서 서비스단으로 전달 (게시글 ArrayList로 담아오기 ) 11. 서비스단에서 SqlSession객체 생성해서 PageI..

[myBatis] 로그인하기

1. 서블릿단으로 사용자한테 입력받은 아이디, 패스워드 전달해서 값 추출하기 2. 값 가공해서 서비스단으로 가공한 값 넘기기 3. mybtis 프레임워크 이용하여 SqlSession()객체 생성하고 dao단으로 서브릿단에서 가공처리한 Member와 방금 생성한 SqlSession()가지고 dao단으로 전달 4. Dao에서 아까 서비스단에서 만들어온 SqlSession으로 selectOne메소드로 쿼리문을 실행하고 Member 객체를 전달한다. => 위치홀더 채울값 5. memeberMapper의 실행시킬 쿼리문 * SELECT 문의 경우 SQL문 => parameterType 속성은 전달받을 값이 없다면 생략 가능하다. => 반드시 resultType(자바에서 제공하는 자료형) 또는 resultMap(내..

[sevlet&jsp] EL(Expression Language) 표현 언어

EL(Expression Language) 표현 언어 기존에 사용했던 표현식(출력식) 과 같이 JSP상에서 표현하고자 하는 값을 ${ name }의 형식으로 표현해서 작성하는 것 EL => JSP내장객체(== Scope 내장객체) request, session, application, page에 담았음 * 데이터를 담을 수 있는 JSP 내장객체 종류 4가지 1. ServletContext(application scope) - 어플리케이션 당 1개 존재하는 객체 - 이 영역에 데이터를 담으면 어플리케이션 전역에서 사용 가능 => 공유 범위가 가장 큼 2. HttpSession (session scope) - 브라우저당 1개 존재하는 객체 - 이 영역에 데이터를 담으면 jsp/servle..

*servlet & jsp* 2022.02.08

[jsp] JSP(Java Server Page)

JSP란? HTML형식 내에게서 자바코드를 쓸 수 있는 "자바언어"로 서블릿(자바코드 내)에 응답화면을 구현했던 복잡함을 보다 간단하게 해결 가능한 기술 => 즉, JSP의 큰 장점은 Servlet에서 비지니스 로직 처리에만 집중하고 프레젠테이션 로직 처리(응답화면을 만들어내는 뷰 역할)는 JSP에서 집중할 수 있게금 분리하는 것 JSP 표현법 1. JSP 스크립팅 원소(Scripting Element) JSP페이지에서 자바 코드를 기술할 수 있게 해주는 기능 - 선언문 : ; 멤버변수나 메소드를 선언하기 위해 사용 - 스크립틀릿 : 자바에서 작성한 값(변수 또는 메소드 호출)을 출력하기 위해 사용 - 표현식(출력식) : 자바에서 작성한 값(변수 또는 메소드 호출)을 출력하기 위해 사용 * < == 2...

*servlet & jsp* 2022.01.03

[servlet] POST 방식으로 요청

특징 1. POST 방식으로 요청하는 건 URL의 BODY영역에 데이터를 포함시켜서 요청 => 사용자가 입력한 값(데이터)들이 URL에 노출되지 않음 => 보안유지가 가능함 => 즉, 로그인이나 회원가입 같은 경우 POST방식이 적합함 특징 2. BODY영역은 전송하는 길이에 제약이 없음 => 즉, 게시판 작성 같은 경우 POST 방식이 적합함 특징 3. 즐겨찾기는 가능하나 전달되는 데이터가 URL에 노출되어 있지 않음 (기존에 봤던 응답화면을 볼 순 없을 것) 특징 4. 최대 요청받으는 시간(Time out)이 존재함 기다리는 시간 ; 제한시간이 있다.(응답해주는 제한시간) 0단계 인코딩 설정(UTF-8) 1단계 request의 parameter영역에서 값 뽑아내기 2단계 처리 -> Service ->..

*servlet & jsp* 2022.01.03

[servlet] GET방식으로 요청

GET방식으로 요청 후 응답페이지 받아보기 특징 1. GET방식으로 요청하는건 URL의 Header영역에 데이터들을 포함시켜서 요청함 => 사용자가 입력한 값(데이터)들이 URL에 노출됨 => 보안에 취약함 => 즉, 로그인이나 회원가입같은 경우 GET방식이 부적합하다. 특징2. Header영역은 전송하는 데이터의 길이에 제한이 있음 => 방대한 데이터를 담았을 경우 초과된 데이터틑 절단되서 넘어감 => 즉, 게시판 작성 같은경우 GET방식이 부적합하다. 특징3. 장점이라고 한다면 URL 데이터가 노출되기 때문에 즐겨찾기(북마크) 가능(즐겨찾기 해놨다가 해당 그 URL 재요청 가능) => 검색 기능 같은경우 GET방식이 가장 적합 form태그에서 get방식은 서블릿에서 doGet()메소드를 호출된다. 첫..

*servlet & jsp* 2022.01.02

[servlet] web.xml (배포 서술자)

web.xml 배포 서술자(DD, Developmetn Descriptor)라고 해서 해당 웹 어플리케이션의 기본적인 설정을 위해 작성하는 파일 - 해당 웹 어플리케이션을 구동시키는 서버가 start시 제일 먼저 읽혀지는 파일 - 개발자가 web.xml파일을 수정하지 않고도 개발 및 운영이 가능하지만 규모가 커지고, 다양한 API들을 사용하게 되면 직접 수정을 해야하는 경우도 생김 welcome-file 처음에 url로 해당 이 어플리케이션 루트(뿌리==시작점) 요청 시 제일 처음 보여지게 되는 메인페이지를 지정해놓는 것 http://구동중인서버의ip주소(내pc주소):포트번호/ http://localhost:8888/1_Servlet(요게 어플리케이션 root, 별칭) => 각자 본인 컴퓨터에 구축해놓은..

*servlet & jsp* 2022.01.02

[servlet] Dynamic Web Project만들기 (동적인 웹 어플리케이션)

Context root : 이 어플리케이션만의 고유한 이름으로 지어줄것(기본값==프로젝트명/보통재정의함) => 하나의 서버로 여러개의 어플리케이션을 구동시킬 수 있음. 고유한 이름을 따라서 해당 어플리케이션에 접근하는 경로로 사용가능하고, 어플리케이션들을 구분할 수 있음 Content directory : 실제로 배포되는 폴더(즉, 서버에 올라가는 폴더) 최상위 폴더명 지정하는것 => default output folder의 WebContent 폴더로 지정할것!!!! Generate web.xml deployment descriptor 무조건 체크할것(기본적으로 체크 안되어있음) => web.xml 문서에 기본적으로 해당 어플리케이션에 대한 전체 설정 정보를 가지고 있는 파일 (서버 실행과 동시에 메인페..

*servlet & jsp* 2022.01.02