일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | |
7 | 8 | 9 | 10 | 11 | 12 | 13 |
14 | 15 | 16 | 17 | 18 | 19 | 20 |
21 | 22 | 23 | 24 | 25 | 26 | 27 |
28 | 29 | 30 | 31 |
- start.spring.io
- 싱글턴
- https://start.spring.io
- 자동형변환
- 제너릭
- dependency
- bootstrap
- 내장객체
- maven
- 박싱
- 인텔리제이
- 메소드
- 언박싱
- 루프
- 콜렉션
- 빌드
- suvlet
- Short
- Jenkins
- wrapper
- 컬렉션
- 제네릭
- 무한
- Java
- 싱글톤
- 클래스
- 스프링
- unboxing
- Scanner
- boxing
- Today
- Total
목록K-DigitalTraining 강의/8. JSP (31)
Developer Gonie
list.jsp에서 구현해야할 사항 첫번째 사용자가 요청(클릭)한 페이지 번호를 넘겨받아 이에 해당하는 게시글들을 pageSize 개수만큼 보여준다. 두번째 하단에는 다른 페이지로 넘어갈 수 있도록 페이지 번호를 보여준다. 첫번째 사항 구현하기 사용자가 페이지 번호를 클릭하면 페이지 번호를 넘겨받아 해당 페이지를 보여주면 되는데, 맨 처음에는 사용자가 페이지 번호를 클릭해서 list.jsp를 접근하는게 아니기 때문에 pageNum 값을 열어봐서 null 이면 1페이지를 보여줘야 하는구나를 알도록 해줘야 한다. 그리고 한 줄로 표현할 수 있는 부분을 굳이 두 줄로 나눠 작성한 이유는 pageNum이 null인 경우 Integer.parseInt() 연산을 시도하려고 하면 에러가 나기 때문에 이렇게 구현한 ..
* 아래의 글을 이해한다면 답글의 깊이가 한개인 경우가 되도록 수정할 수도 있을 것이다. board테이블에서 원글, 답글의 관계를 나타내기 위한 column num 답글 혹은 원글의 레코드가 삽입된 순서로 자동으로 1씩 증가함 수정 혹은 삭제 할 때 특정 레코드의 정보를 가져오기 위한 용도로 사용됨 subject 글의 제목을 갖는 column인데 아래 그림에서는 이해를 돕기위해 아래와 같이 써두었음 ex) a2 : 원글 ex) a21: 제목이 a2인 원글에 달린 첫번째 답글 ex) a211: 제목이 a2인 원글에 달린 첫번째 답글에 추가로 달린 첫번째 답글 ex) a22: 제목이 a2인 원글에 달린 두번째 답글 ref 최상위 부모의 모든 자손들은 같은 번호를 갖게하여, 나중에 DB에서 select로 뽑아..
request.getRemoteAddr() 사용시 IP를 읽어들이는 형식 변경방법 아래는 해당 메소드의 반환값으로 ipv6 타입의 값이 반환되어 8자리의 형태로 입력된 것이다. 아래의 설정을 바꿔준다면 4?자리의 ipv4 타입의 값이 반환될 것이다. 아래서 4대신에 6을 써주면 IPv6 방식으로 읽혀짐
파일 업로드 기능 구현시 지켜야할 규칙 * enctype 이 form의 속성으로 추가된 경우 MultipartRequest 클래스의 객체를 통해서만 파라미터를 읽어들일 수 있다는 점을 알아두자. 1. 요소에 enctype 속성을 추가해야함. 파일을 업로드 할 때는 form 요소에서 enctype 속성이 필요하다. enctype 속성은 데이터가 서버로 제출될 때 해당 데이터가 인코딩되는 방법을 지정한다. 2. 요소의 method 속성의 값은 post 이어야 함. 위의 속성은 요청방식이 post 일때만 사용가능하기 때문. 3. cos.jar 파일이 lib 폴더에 위치해야함 파일 전송을 위해 사용되는 클래스들이 이 파일 내에 위치하기 때문임 파일을 업로드한다는 것의 의미 "사용자가 서버 측으로 네트워크를 통해..
1. 커넥션 객체란? DB와 미리 연결 해놓은 객체를 커넥션 객체라고 한다. 아래의 코드를 참고해 볼때 getConnection() 메소드의 결과로 얻어진 conn 객체를 말하는거 같다. public class MovieDao { String driver = "oracle.jdbc.driver.OracleDriver"; String url = "jdbc:oracle:thin:@localhost:1521:orcl"; String id = "jspid"; String pw = "jsppw"; Connection conn = null; // 생성자를 public 으로 해주지 않으면 클래스를 찾을 수 없다는 오류가 자꾸 뜸. public MovieDao() { // 1. 드라이버로드 try { Class.for..
싱글톤 패턴(Singleton Pattern)이란? 특정 클래스의 인스턴스(객체)가 단 하나만 존재하고, 이를 프로그램 상에서 보장하는 패턴을 '싱글톤 패턴'이라고 한다. 이로인한 특징은 객체를 단 1번만 만들어 사용하여야 하므로, 처음에 만든 것을 전역변수처럼 모두가 공유하여 사용한다. 이로인해 시스템 전반에 걸쳐서 특정한 자원이 공유된다. 다수의 인스턴스가 존재하는 경우, 상호간에 영향을 주어 예기치 못한 오류가 발생할 확률이 높아 이를 제한하는 경우에 사용한다. 싱글톤 패턴 방식으로 클래스를 설계하는 방법 1. 생성자 추가 생성자는 무조건 추가해주며, 접근제어자는 private으로 해준다. 접근제어자가 default로 남아있지 않도록 하기 위함 && 외부에서 마음대로 생성자를 사용해 객체를 만들 수..
* 아래의 조건들을 모두 통과해야 다음으로 넘어갈 수 있도록 코딩해야 함. 1) ID입력란이 공란이 아니어야 하고 2) 중복체크를 했어야 하고 3) 중복인 ID가 존재하지 않아야 한다. 방법1. 변수 1개로 하는 방법(가장 쉽고 단순) var ajaxResult = ""; // 이 변수는 3가지 상태를 가질 수 있음(" ", "POSSIBLE", "IMPOSSIBLE") ajax 의 읍답 결과를 담는 변수를 문자열 타입으로 사용하면 가능 1) " " : 중복체크를 안한 상태 2) "POSSIBLE" : 중복체크까지 되어 완벽한 상태(조건문이 따로 필요없는 상태) 3) "IMPOSSIBLE" : 중복되는 아이디가 존재하는 상태 + 여기에 아이디가 입력된 상태인지만 확인해주면 됨 방법2. 변수 2개로 하는 ..
이 게시글에서 가이드 해주는 부분 1. 중복체크 버튼을 누를시 Ajax 요청 2. 요청을 받은 곳에서 해당 아이디가 DB에 존재하는지 체크후 결과를 응답해줌 3. 결과를 받아 상태에 맞는 메시지를 버튼 옆에 출력해줌 insertForm.jsp 에서 ajax() 메소드로 중복여부 요청 id_check_proc.jsp 작성 DAO클래스의 searchId() 메소드 작성
이 게시글에서 가이드 해주는 부분 0. 맨 앞에 체크박스 추가 1. 맨 위의 체크박스로 전체선택, 전체선택해제 하는 기능 2. 여러개 선택된 행들의 primary key 값을 전달해 이들을 동시에 삭제하는 기능 0. 맨 앞에 체크박스 추가 1) 맨 위의 체크박스 추가 2) 그 아래의 모든 체크박스 추가 * 위의 체크박스와 name 속성의 값이 다르다는 점에 유의하자. * 여기서는 체크박스를 추가할 때, value 값으로 이 행을 식별할 수 있는 값을 넣어줘야 한다.(테이블의 primary key) 1. 맨 위의 체크박스로 전체선택, 전체선택해제 하는 기능 1) 요소가 요소의 자식이 되도록 만들어줘하며, name과 action 속성을 추가. 2) 맨위의 체크박스에 onClick 속성을 추가하고 사용자 정의..
DB에서 해당 데이터를 저장하기 위한 타입 사용자가 선택한 것들을 문자열 한줄로 이어붙여 저장할 예정이라서 varchar2 타입으로 저장한다.(이건 무조건 고정) 이어붙여 저장할 땐 ',' 혹은 ' ' 을 단어 사이사이 이어붙여 구분자를 넣은상태로 저장한다. Bean클래스에서 해당 데이터를 담기위한 타입 둘 다 사용 가능하고 어느 방식이든지 큰 불편함은 못 느꼈다. 두 방식으로 각각 모두 해보니 뭐가 더 쉽고, 어렵고의 차이는 없었다. 다만, 방식에 따라 고려해야할 것을 바로 알고 사용하면 될거같다. 1) 방법1, String 타입으로 하는 것(개인적으로 배열을 덜 다뤄서 쉬운편인거 같음) - 을 호출했을 때 체크박스로 여러개 선택한 값 중 맨 앞의 딱 1개만 bean 객체의 관련 변수에 바로 담긴다. ..
* 아래 글을 참고하면 태어난 년도, 월, 일 등을 선택할 수 있는 선택박스를 펼쳤을 때 보여지는 option 요소들을 반복문을 통해 구현하는 방법도 알 수 있다. 글의 제목이 의미하는바 수정 버튼을 눌러 화면이 이동했을 때 수정하고자 했던 정보들이 그대로 입력되어 있도록 할 수 있는 기능을 구현하고자 한다. 선택박스나 체크박스에 대해 이를 처리해 주는 것이 가장 어려웠음. 수정버튼을 누르게 되는 화면에서 꼭 추가해줘야 하는 부분 a 태그를 통해 get 방식으로 어떤 num 값을 가지는 행이 눌렸는지에 대한 정보를 전달해 줘야함. /* a태그에 파라미터 추가해서 get 방식으로 보내기 */ out.print(" 수정 "); out.print(" 삭제 "); out.print(""); 선택박스나 체크박스가..
다음은 updateProc.java에 대한 예시이다.(구조가 비슷해서 이것만) response.sendRedirect("select.jsp"); 로 구현하면 무언가 화면에 나타나기 전에 화면이 바로 넘어가므로 아래와 같이 마지막 부분 처럼 javascript로 처리해줄 수 있다 0){ msg = "수정성공"; url = "select.jsp"; //response.sendRedirect("select.jsp"); }else{ msg = "수정실패"; url = "updateForm.jsp"; //response.sendRedirect("insertForm.jsp"); } %>