728x90

기본 필터링 메서드

기본 필터링 메서드 .filter()의 두 가지 사용방법

<script>
	$(selector).filter(selector);
    //예제
    $("h1").filter(":odd").css("color","red");
    
    $(selector).filter(function(){});
    //예제
    $("div").filter(funtion(index,obj){
    	return index % 2 == 0;
    }).css("color","red");
</script>

필터 선택자 이용

  • 자주 사용하는 것들을 메서드로 제공한다.
  • .eq() - 특정 인덱스에 존재하는 객체 선택
  • .first() - 첫 번째에 위치하는 객체 선택
  • .last() - 마지막에 위치하는 객체 선택

. is() 메서드

  • 매개변수로 선택자를 입력받는다.
  • 선택한 객체가 선택자와 일치하는지 판별해 true/false를 반환한다.

 

728x90
728x90

jQuery 개요

  • 오픈소스 라이브러리
  • 복잡한 자바스크립트 문법을 간소화
  • 크로스 브라우징
  • 다양한 오픈소스 라이브러리 사용 가능

 

jQuery 기본 문법

<script>
	$(document).ready(function() {
    
    });
</script>

<!-- 간소화 -->

<script>
	$(function() {
    
    });
</script>
  • 문서가 준비 완료되면 전달된 함수를 실행하라는 의미
  • script를 html의 head안에 넣었을 경우 본문이 출력되기 전에 script가 먼저 실행되기 때문에 사용한다.
  • javascript의 onload와 같다.
  • $ 표시는 jQuery 문자를 간소화 한것

 

기본 선택자

<script>
	$("h1").css("color","red");
</script>
  • 가장 많이 사용하는 형태
  • $ 괄호 안에 들어가는 것은 선택 자이고. 뒤에 오는 것은 메서드이다.
  • h1 태그의 css color style을 red로 바꾼다.
  • 선택자에 쉼표를 사용해 하나 이상의 선택자를 사용할 수 있다.
  • id나 class 태그를 선택할 경우 css태그를 선택하는 것과 같다.
<script>
	$("h1").css("color","red");
    
    $("#id").css("color","red");
    $(".class").css("color","red");
    
</script>

 

자식 선택자/ 후손 선택자

  • 기본 선택자 앞에 붙여 사용하며 기본 선택자의 범위를 제한한다.
<script>
/* 자식 선택자 
바디의 E만 색이 변함 */
$("div > h1").css("color","red");

/* 후손 선택자 
바디의 A와 E의 색이 변함*/
$("div h1").css("color","red");

</script>
<body>
	<div>
    	<ul>
       		<li><h1>A</h1></li>
            <li>B</li>
            <li>C</li>
            <li>D</li>
        </ul>
        <h1>E</h1>
    </div>
</body>

속성 선택자

  • 기본 선택자 뒤에 붙여 사용
<script>
/*속성 안의 값이 특정 값과 같은 객체 선택*/
$("input[type=text]").css("color","red");

/*속성 안의 값이 특정 값을 단어로써 포함하는 객체 선택*/
$("input[type~='값']").css("color","red");

/*속성 안의 값이 특정 값으로 시작하는 객체 선택*/
$("input[type^='값']").css("color","red");

/*속성 안의 값이 특정 값으로 끝나는 객체 선택*/
$("input[type$='값']").css("color","red");

/*속성 안의 값이 특정 값을 포함하는 객체 선택*/
$("input[type*='값']").css("color","red");
</script>
  • 대괄호 말고 ":"을 사용하여 속성을 선택할 수도 있다.
<script>
	/*input 태그의 button 타입 선택*/
	$("input:button").css("color","red");
</script>

필터 선택자

요소:odd 홀수에 위치한 객체 선택
요소:even 짝수에 위치한 객체 선택
요소:first 첫 번째 위치한 객체 선택
요소:last 마지막에 위치한 객체 선택
요소:contains(문자열) 특정 문자열을 포함하는 객체 선택
요소:eg(n) n번째 위치하는 객체 선택
요소:gt(n) n번째를 초과하는 객체 선택
요소:lt(n) N번째 미만에 위치하는 객체 선택
요소:has(선택자) 선택자를 가지고 있는 객체 선택
요소:not(선택자) 선택자와 일치하지 않는 객체 선택
요소:nth-child(2n) 2n번째 위치하는 객체 선택

 

부분의 필터 선택자의 경우 배열에 담아 그 배열에 위치한 인덱스를 기준으로 객체를 선택한다.

때문에 예를 들어 odd의 경우 홀수에 위치한 객체를 선택하는데

배열에 [1,2,3,4,5]가 있을 경우 홀수라 1,3,5 가 선택되어야 할 것 같다.

[1,2,3,4,5]의 인덱스가 [0,1,2,3,4]라서 실제로는 2,4가 선택된다.

 

<script>
	/*예시*/
    /*여러 선택자를 사용해 봅시다.*/
    $("table tr:eq(1) td:gt(0)").css("color","yellow");
    $("table tr:eq(2) td:gt(0)").css("color","yellow");
    $("table tr:lt(3) td:nth-child(2)").css("color","yellow");
    $("table tr:lt(3) td:nth-child(3)").css("color","yellow");
</script>
728x90

'노트' 카테고리의 다른 글

jQuery 여러 메서드  (0) 2022.05.19
jQuery 필터링 메서드  (1) 2022.05.18
5월 6일 JSP  (0) 2022.05.07
5월 3일 JSP 게시판 페이징 학습  (0) 2022.05.03
4월 28일 게시판 글 삭제하기  (0) 2022.04.28
728x90

라이브러리

  • imgscalr-lib.jar

    - JAVA로 구현된 간단하고 효율적인 이미지 크기 조정 및 조작 패키지

  • cos.jar

    - MultipatRequest 및 MultipartParser 클래스를 포함한 패키지

    - 파일 업로드 기능을 구현한다.

HTML

  • document.form.enctype = "multipart/form-data"

    - enctype 속성은 form 태그의 method 속성 값이 post인 경우에만 사용할 수 있고, 폼 데이터가 서버로 제출될 때 해당 데이터가 인코딩 되는 방법을 명시한다.

    - multipart/form-data는 모든 문자를 인코딩하지 않음을 뜻하고 주로 파일이나 이미지를 서버로 전송할 때 사용한다

JAVA

  • MultipartRequest

    - 파일 업로드 및 폼 요소를 처리하는 클래스

    - .getFilesystemName() : 서버에 실제로 업로드된 파일의 이름을 반환한다.

    - .getOriginalFileName() : 클라이언트가 업로드한 파일의 원본 이름을 반환한다.

  • DefaultFileRenamePolicy()

    - 동일한 파일명에 대한 처리 방식을 설정한다.

    - 같은 이름의 파일이 있을경우 test.jpg, test(1). jpg, test(2). jpg 형식으로 설정된다.

  • Enumeration

    - 객체들을 집합의 형태로 관리해주는 인터페이스다.

    - .getFileName() : Enumeration 형식으로 업로드된 파일 이름들을 반환한다.

    - .nextElement() : 다음 요소를 반환한다.

  • Files.probContentType()

    - 파일의 컨텐츠 유형을 파악한다.

  • ServletOutputStream 

    - 이진 데이터를 클라이언트로 보내기 위한 출력 스트림을 제공한다.

    - 자체로는 추상클래스이기 때문에 인스턴스를 생성할 수 없고 ServletResponse 클래스의 getOutputStream()이라는 메서드를 통해 사용한다.

    - 게시판에 파일을 올릴 때 사용할 수 있다.

728x90

'노트' 카테고리의 다른 글

jQuery 필터링 메서드  (1) 2022.05.18
jQuery 개요, 기본 문법  (0) 2022.05.17
5월 3일 JSP 게시판 페이징 학습  (0) 2022.05.03
4월 28일 게시판 글 삭제하기  (0) 2022.04.28
4월 27일 JSP 게시판 글 수정하기  (0) 2022.04.27
728x90

BoardDAO.java

  • boardSelectAll(Criteria cri) 메서드 수정

    - 메서드의 매개변수로 cri를 추가

    - 기존의 DB에서 모든 글을 가져오던 메서드였으나 페이지별로 일정 숫자의 글을 가져오도록 수정

  • boardTotal()

    - DB에서 게시글의 총개수를 가져오는 메서드

    - select count를 사용

Criteria.java

  • 페이지 갯수와 한 화면에 출력되는 글 개수를 담는 객체를 생성하는 클래스

PageMaker.java

  • BoardDAO의 boardTotal() 메서드의 게시글 총개수를 매개변수로 받아서 시작 페이지와 끝 페이지를 계산하고 반환한다. 

boardList.jsp

  • 글 하단의 페이지 번호를 누르면 BoardController의 가상주소에 매핑되고 페이지 번호를 파라미터로 보낸다.
  • 추가로 PageMaker의 속성들을 공유받는다.

BoardController.java

  • boardList로 부터 받은 페이지 숫자와 boardTotal 메서드로 반환받은 게시글 총개수를 변수에 담는다.
  • 두 변수의 값을 PageMaker의 객체에 담는다.
  • BoardDAO의 boardSelectAll 메서드를 실행한다.
728x90

'노트' 카테고리의 다른 글

jQuery 개요, 기본 문법  (0) 2022.05.17
5월 6일 JSP  (0) 2022.05.07
4월 28일 게시판 글 삭제하기  (0) 2022.04.28
4월 27일 JSP 게시판 글 수정하기  (0) 2022.04.27
4월 26일 자바스크립트 객체 개념  (0) 2022.04.26
728x90

BoardDAO.java

  • BoardDelete(int bidx){} 메서드를 만들었다.
  • DB table에서 데이터를 실제로 삭제하지는 않고 delyn 열의 값을 'y'로 바꿔주는 update 구문을 사용했다.
  • 글 목록을 가져올 때 where 조건에 delyn = 'n'값을 주어서 그렇다.

BoardController.java

  • 가상주소 boardDelete.do와 boardDeleteAction.do로 접속할 때 상황을 구현했다.
  • boardDelete.do

    - confirm을 이용해 확인창이 뜨고 누르면 삭제되는 방법이 있는데 구현하는 것을 늦게 알아서

    일단 boardDelete.jsp 파일을 만들어서 이쪽으로 이동하게 했다.

  • boardDeleteAction.do

    - boardDelete.jsp 페이지에서 삭제하기 확인을 누르면 작동

    - BoardDAO의 BoardDelete() 메서드를 이용한다.

    - 성공적으로 삭제된 경우 글 리스트 페이지로 이동, 아닐 경우 다시 글 내용 페이지로 이동한다.

728x90

'노트' 카테고리의 다른 글

5월 6일 JSP  (0) 2022.05.07
5월 3일 JSP 게시판 페이징 학습  (0) 2022.05.03
4월 27일 JSP 게시판 글 수정하기  (0) 2022.04.27
4월 26일 자바스크립트 객체 개념  (0) 2022.04.26
4월 25일 jsp 게시판 글 목록 보이기  (0) 2022.04.25
728x90

BoardDAO.java

public int BoardModify(String subject, String content, String writer, int bidx){}
  • BoardModify 메서드 추가

    - 해당 메서드의 매개변수로 DB를 수정한다. UPDATE 구문을 사용하고 bidx를 조건절로 준다.

BoardController.java

  • boardModify.do, boardModifyAction.do 두 개의 가상 주소에 맞는 컨트롤을 추가한다.
  • boardModify.do

    - request.getParameter("")를 사용해 bidx를 받아온다.

    - 서버의 데이터를 담는 BoardVO 클래스의 객체를 생성하고 메서드와 받아온 bidx를 이용해 데이터를 담는다.

    - 담은 데이터를 boardModify.jsp에 뿌려준다.

  • boardModifyAction.do

    - 수정하기 페이지에서 수정 버튼을 누르면 작동하는 동작이다.

    - 수정하기 페이지에서 subject, content, writer, bidx를 파라미터로 받아오고

    boardDAO 클래스의 BoardModify() 메서드를 사용해 서버 DB를 업데이트한다.

boardModify.jsp

  • boardContent.jsp 파일과 형식은 비슷하지만 값을 입력받기 위해 input 태그를 사용한다.
  • 수정하기 버튼을 눌렀을 때 글 번호도 같이 보내주기 위해서 input태그의 hidden 타입을 사용해 bidx값을 보내준다.
728x90
728x90

객체

  • 객체의 고유한 속성을 프로퍼티(property)라고 부르며 객체는 여러 프로퍼티와 값의 쌍으로 표현된다.
  • 한 객체는 여러 함수를 가질 수 있는데 이를 메서드(method)라고 부른다.
  • 브라우저는 많은 자바스크립트 객체들을 만들어 제공하므로 주로 이들을 사용한다.
  • 3가지 유형으로 나눌 수 있다. 

    - 코어 객체

    - HTML DOM 객체

    - 브라우저 관련 객체(BOM)

 

코어 객체

  • 기본 객체로서 Array, Date, String, Math 타입 등이 있으며, 웹 페이지나 웹 서버 응용프로그램 어디서나 사용할 수 있다.

HTML DOM

  • HTML 페이지에 작성 된 HTML 태그들을 브라우저가 하나씩 객체화한 것들로 HTML 페이지의 내용과 모양을 제어하기 위해 사용되는 객체들이다.

브라우저 관련 객체(BOM)

  • Browser Object Model이라고도 부른다.
  • 브라우저의 종류나 스크린의 크기 정보를 제공하거나 새 윈도우를 생성하는 등 브라우저와 관련된 객체들이다.
728x90
728x90

index.jsp

  • a태그의 href를 통해서 게시판 목록의 가상 주소를 서버에 보낸다.

BoardController.java

  • BoardDAO 클래스의 boardSelectAll() 메서드를 이용해 ArrayList <BoardVO> alist 객체를 생성한다.
  • RequestDispatcher 클래스의 rd 객체를 생성하고 forward 방식으로 보낸다.

BoardVO.java

  • oracle sql의 데이터를 담을 때 사용할 클래스
  • private 멤버변수와 setter, getter 메서드만 존재한다.

BoardDAO.java

  • 여러 쿼리 실행 함수를 만들어 둔 클래스
  • oracle 데이터베이스의 a_board 테이블에서 쿼리문으로 데이터를 가져와 BoardVO 객체에 담고, 이를 ArrayList 객체에 담아서 반환하는 함수를 생성했다.

boardList.jsp

  • for 문을 사용해 ArrayList<BoardVO> alist의 값을 표로 출력한다.
728x90

'노트' 카테고리의 다른 글

4월 27일 JSP 게시판 글 수정하기  (0) 2022.04.27
4월 26일 자바스크립트 객체 개념  (0) 2022.04.26
4월 21일 web.xml, 컬렉션 프레임워크  (0) 2022.04.21
4월 20일 JSP Servlet 학습  (0) 2022.04.20
4월 18일  (0) 2022.04.18
728x90

Web.xml

  • 자바 웹 애플리케이션은 배포 설명자 파일을 사용하여 URL이 서블릿에 매핑되는 방법, 인증이 필요한 URL, 기타 정보를 확인하는데 이 파일의 이름이 Web.xml이다.
  • 이클립스의 WEB-INF 디렉터리에 위치하고 있다.
  • 애플리케이션의 클래스, 리솟, 구성을 기술하고, 웹 서버가 이를 사용해서 웹 요청을 처리하는 방법을 기술한다.
  • 웹 서버가 애플리케이션에 대한 요청을 수신하면 배포 설명자를 사용해서 해당 요청을 처리해야 하는 코드로 요청의 URL을 매핑한다.

모든 URL 경로(/*.do)를 서블릿 클래스 jspstudy.controller.FrontController에 매핑한다.

<web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee
         http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd"
         version="3.1">
    <servlet>
        <servlet-name>FrontController</servlet-name>
        <servlet-class>jspstudy.controller.FrontController</servlet-class>
    </servlet>
    <servlet-mapping>
        <servlet-name>FrontController</servlet-name>
        <url-pattern>/*.do</url-pattern>
    </servlet-mapping>
</web-app>

 

 

JAVA 컬렉션 프레임워크(Collection framework)

  • 자바에서는 필요한 자료구조를 미리 구현하여 java.util 패키지에서 제공하는데 이를 컬렉션 프레임워크라고 한다.
  • 자바 컬렉션 프레임워크에는 여러 인터페이스가 정의되어 있고 그 인터페이스를 구현한 클래스가 있다.
  • 전체 구조는 Collection 인터페이스와 Map 인터페이스 기반으로 이루어져 있다
  • Collection인터페이스는 하나의 자료를 모아서 관리하는 데 필요한 기능을 제공
  • Map 인터페이스는 쌍으로 된 자료들을 관리하는데 유용한 기능을 제공한다. (key값과 value)

Collection 인터페이스

  • 하위에 List 인터페이스와 Set 인터페이스를 가지고 있다.
  • List의 경우 순차적인 자료를 관리하는데 사용하고 Set은 중복되지 않은 객체를 다루는 데 사용한다.
  • 자주 사용하는 메서드

- boolean add(E e) 객체를 추가한다.

- void clear() 모든 객체를 제거한다.

- boolean remove(Object o)  매개변수에 해당하는 인스턴스가 존재하면 제거한다.

- Iterator <E> iterator 순환할 반복자(iterator)를 반환한다.

- int size() 요소의 개수를 반환한다. 

 

Map 인터페이스

  • Key - Value 쌍이라고 표현하는 자료들을 관리하는 메서드들이 선언되어 있다.
  • 키값은 중복될 수 없다.
  • 기본적으로 검색용 자료구조이다. 주로 key값을 알고 있을 때 value값을 찾기 위해 사용한다.
  • 자주 사용하는 메서드

- V put(K key, V value) key에 해당하는 value값을 map에 넣는다.

- V get(K key) key에 해당하는 value값을 반환

- boolean isEmpty() map이 비어있는지 여부를 반환

- boolean containsKey(Object key) map에 해당 key가 있는지 여부를 반환

- boolean containsValue(Object value) map에 해당 value가 있는지 여부를 반환

- Set keyset() key집합을 Set으로 반환

- Collection values() value를 Collection으로 반환

- V remove(key) key가 있는 경우 삭제

- boolean remove(Object key, Object value) key가 있는 경우 key에 해당하는 value가 매개변수와 일치할 때 삭제

728x90

'노트' 카테고리의 다른 글

4월 26일 자바스크립트 객체 개념  (0) 2022.04.26
4월 25일 jsp 게시판 글 목록 보이기  (0) 2022.04.25
4월 20일 JSP Servlet 학습  (0) 2022.04.20
4월 18일  (0) 2022.04.18
4월 15일 JSP  (0) 2022.04.15
728x90

Servlet

  • 자바로 만든 웹페이지, 클래스이지만 실행 시 웹페이지로 출력된다.
  • HttpServlet 클래스를 상속받았기 때문에 그렇다.
  • 메서드

- 입력받은 값을 get방식으로 넘기느냐 post방식으로 넘기느냐의 차이

- doGet()

    - URL값으로 정보가 전송되어 보안에 취약

- doPost()

  • 자바코드 안에 HTML 코드 작성 가능
// PrintWriter 클래스를 사용한다.
// ex)
PrintWriter out = response.getWriter();
out.println("<HTML>"
	+"<HEAD>"
            +"<Title> servlet </Title>"
            +"</HEAD>"
            +"<BODY>"
            +"<h1>하이</h1>"
            +"</BODY>"
            +"</HTML>");

 

request (HttpServletRequest request)

http://127.0.0.1:8080/contextpath/servlcetpath/index.jsp
  • . getRequestURI()

 - 요청 URL 중 포트번호 와 쿼리 사이의 부분을 얻어온다.

/contextpath/servlcetpath/index.jsp
  • . getContextPath()

 - 콘텍스트 경로를 가져온다.

/contextpath
  • . getRequestDispatcher()

 - RequestDispatcher 객체를 생성해주는 메서드

  • . setAttribute()

 - Servlet에서 JSP로 객체를 보낼 때 사용한다.

 - Servlet에서는 request.setAttribute("이름", 객체)로 전달하고 JSP에서 

    변수를 할당해 = request.getAttribute("이름")으로 받는다. 

response (HttpServletResponse response)

  • . sendRedirect()

 - 특정 url로 재요청

RequestDispatcher

 

  • . forward()

 - 페이지 전환

728x90

'노트' 카테고리의 다른 글

4월 25일 jsp 게시판 글 목록 보이기  (0) 2022.04.25
4월 21일 web.xml, 컬렉션 프레임워크  (0) 2022.04.21
4월 18일  (0) 2022.04.18
4월 15일 JSP  (0) 2022.04.15
4월 12일 oracle SQL, JAVA  (0) 2022.04.12

+ Recent posts