폼 요소에 레이블을 붙이기 위한 테그이다. 레이블 사용법 아이디 첫 번째 방법은 테그 안에 폼 요소를 넣는 것이다. 아이디 두 번째 방법은 요소와 폼 요소를 따로 사용하고 테그에서는 for 속성을 이용하고 폼 요소에서는 id 속성을 이용해 서로 연결하는 방법이다. 사용하는 이유 라이도 박스나 체크 박스 경우, 핸드폰 사용자가 누르기엔 너무 작은 버튼이다. 그러나 라벨로 감싸져 있다면, 텍스트를 눌러도 감싸져있는 라벨의 input이 작동 될 수 있기 때문에 사용자의 편의성이 높아진다. 이는 핸드폰 뿐만 아니라 pc에서도 활용된다.
우리가 흔히 클릭했을 때, 다른 사이트로 이동하는 기능은 대부분 a링크이다. 사용법 표시할 텍스트 사용법은 매우 간단하다. 로 시작해서 로 끝내면 된다. 속성 속성 설명 href 링크한 문서나 사이트의 주소를 입력 target 링크한 내용이 표시될 위치를 지정 download 링크한 내용을 다운로드 rel 현재 문서와 링크한 문서의 고나계를 알려줌 hreflang 링크한 문서의 언어를 지정 type 링크한 문서의 파일 유형 target 속성 어떤식으로 a링크를 불러오는 가를 지정 할 수 있다. 속성 설명 _blank 내용이 새창이나 새탭에서 열림 _self target의 기본 값, 현재 텝에서 열림 _parent 프레임을 사용했을 때 링크 내용을 부모 프레임에 표시 _top 프레임을 사용했을 때 프레임에..
약 2시간의 작업결과로 DB와 JSP의 연결을 끝낼 수 있습니다. CSS는 개인의 자유이므로, 별도로 건들지 않았습니다. 파일은 원하시는 형태로 둘 중 하나로 가져가시면 됩니다. JSP 부분 더보기 top.jsp 쇼핑몰 회원관리 ver1.0 nav.jsp 회원등록 회원목록 조회/수정 회원매출조회 홈으로 footer.jsp Mollang 20.08.29 ver1.0 template.jsp index.jsp JSP 부분 : 회원가입, 회원목록, 업데이트, 매출 정보 확인 더보기 join.jsp 홈쇼핑 회원 등록 회원번호(자동발생) 회원성명 회원전화 회원주소 가입일자 고객등급 도시코드 joinList.jsp 회원목록조회/수정 회원목록 회원성명 전화번호 주소 가입일자 고객등급 거주지역 update.jsp 홈쇼핑..
매출 표현하기 여기가 가장 하이라이트 입니다. DB의 SQL문을 얼마나 자유롭게 활용 가능한가? 를 테스트하는 것 같습니다. 서브쿼리 혹은 JOIN을 통해 난관을 해결해야 합니다. 2개 이상의 테이블을 사용할 경우, UNIQUE 성질을 가진 컬럼만 봅니다. 그리고 SELECT으로 표현할 구간을 살펴보면 끝납니다. CUSTNO라는 공통된 컬럼을 가졌으므로 JOIN을 활용해봅시다. 기본 JOIN을 사용할 경우, INNER JOIN이 활용 됩니다. 따라서 위와 같이 작성할 경우 중복된 값을 포함하여 이렇게 표시되는 것을 확인 할 수 있습니다. 이제 여기서 * 이 아닌,CUSTNO, CUSTNAME, GRADE, PRICE만 표시되도록 만들도록 합니다. 중복된 값을 없애기 위해서는 GROUP BY를 활용합니다...
회원정보 수정하기 시작은 update.jsp를 변경하면서 시작됩니다. 기존 회원가입이 아니라 업데이트를 진행하기 위해서 action부분만 변경하시면 끝납니다. 변경하시게 되었다면 DAO부분에서 회원등록에 사용한 메소드를 복사진행합니다. 당연히 메소드의 명칭은 변경하는 센스를 갖도록 합니다. 기존 회원가입에서 이 3개의 구간만 수정을 하면 끝납니다. return은 이 전에 만든 joinSelectOne.me 로 연결합니다. 기존값은 회원가입을 위한 작업이니, 수정만의 작업으로 변경해주셔야 합니다. Controller 딱 2줄만 추가하여, 수정하기는 끝났습니다. 코드 알아보기 MemberDAO package MemberDB; import java.sql.Connection; import java.sql.Dr..
회원 수정하기1 문제를 보시면 아시겠지만, 회원가입 화면과 매우 흡사합니다. 따라서 직접 만드시지 마시고 회원가입창을 그대로 복사하시길 바랍니다. 저는 이를 update.jsp로 만들었습니다. 이제 회원번호를 누를경우, 정보를 불러오도록 합니다. 벌써 눈치 채신분도 계실겁니다. 기존에 만든 Select만 조금 다듬으면 되는 것을 말입니다. DAO 만들기 //회원 정보 가져오기 public String joinSelectOne(HttpServletRequest request, HttpServletResponse response) { try { //*을 활용하여 모두 출력할 수 있지만, 컬럼을 확실하게 구분하기 위해 컬럼을 표시하였다. String sql = "select CUSTN..
회원 목록 만들기 회원가입 다음으로 초심자에게 어렵다고 한다면 회원목록 불러오기 입니다. 이부분은 대표적으로 ArrayList를 활용하며, 또한 이와같이 수정이라는 주제가 주어졌다면 무엇을 기준으로 회원을 나눌수 있는가?를 생각해보셔야 합니다. 이때 수정하기 위해 특정회원을 불러온다면 기본적으로 primary key(기본키) 혹은 unique 속성을 가진 컬럼을 가져오면 됩니다. joinList.jsp 회원목록조회/수정 회원목록 회원성명 전화번호 주소 가입일자 고객등급 거주지역 간단하게 회원목록을 나타내는 jsp를 만들었습니다. 이제 table에 출력할 수 있도록 db에서 값을 가져오도록 하겠습니다. MemberDAO 처음 활용했던 SELECT문의 확장판입니다. 검색된 SELECT의 여러개의 결과값을 담..
이제 DB를 다루는 부분이 끝났으므로, 유효성 검사부분을 하도록 하겠습니다. 여기부분에 대해서는 별도로 다른 방법을 제시하였습니다. 이유는, 예제에서 주어진 유효성 검사는 빈칸에 대한 유효성 검사를 제시하였지만 실제 시험에서는 빈칸뿐만 아닌 SELECT, CHECKBOX, RADIO 까지 주어진 경우가 있었습니다. 따라서 이부분은 별도의 시간을 갖도록 하였으며 예제에 대한 코드는 이를 활용하여 만들어보시는 것을 추천드립니다. 마지막 결과 코드는 제일 마지막 게시글에 올렸으므로, 참고하시면 감사하겠습니다. 유효성 검사 테스트 input 유효성 검사하기 1. text 2. select 없음 가 나 다 3. checkbox a 방법 b 방법 c 방법 4. radio 남성 여성 유효성..
회원가입 만들기 2 정상적으로 등록이 완료 되었습니다. 여기서, 이제 회원가입에 대한 조건을 살피고 마무리 짓겠습니다. 2. 회원번호는 자동 생성이 된다. 해당 페이지가 출력 될 경우, 자동으로 생성 됨을 의미합니다. 따라서, 이에 따른 작성이 필요하게 되었습니다. 가장 먼저 DAO부터 만들도록 하겠습니다. DAO 만들기 똑같이 메소드를 생성 후 위와 같이 작성해줍니다. select문을 사용할 경우 ResultSet의 객체가 필요하게 됩니다. 그리고 결과값이 여러개일 경우 배열을 사용하게 되지만, 위의 경우 한 개의 결과값만을 출력하도록 제한을 걸어놨기 때문에 굳이 필요 없음을 알 수 있습니다. 이제 else if를 활용하여 새로운 경로를 추가하도록 합니다. 여기서 잠깐! 문제가 생겼습니다. 회원가입 완..
회원가입 만들기가입 만들기 회원가입을 만들겠습니다. 먼저 제일 처음에 만든 join.jsp를 준비하시면 됩니다. 여기서 등록버튼을 누르게 되었을 경우를 가정하게 됩니다. join.jsp 홈쇼핑 회원 등록 회원번호(자동발생) 회원성명 회원전화 회원주소 가입일자 고객등급 도시코드 submit을 누를경우 form의 action이 동작됩니다. 이때 경로를 joinAction.me로 지정을 하게됩니다. web.xml에 설정된 *.me를 통해 Controller에 정상적으로 접속을 확인할 수 있습니다. System.out.println을 이용하여 체크하기 등록버튼을 눌렀을 경우, System.out.println을 활용하여 정상적으로 실행여부를 체크 할 수 있게 됩니다. 이제 Console에 뜬 결과를 equals..
centos 7.0에서는 방화벽이 firewall 이었다면, centos 6.0에서는 방화벽의 이름은 iptables이다. iptables 방화벽 명령어 1. 방화벽 종료 /etc/init.d/iptables stop 2. 방화벽 가동 /etc/init.d/iptables start 3. 방화벽 환경설정하기 vi /etc/sysconfig/iptables 4. 방화벽 확인하기 /etc/init.d/iptables status netstat -ntl
; 세미클론은 SQL의 종료를 의미합니다. 그러나 프로시저 같은 경우 실행문 중간중간에 표시되는 세미클론에 의해 SQL 종료로 인식하고 프로시저의 종료처리가 되는 안타까운 일이 발생하게 됩니다. 따라서 프로시저의 추가는 DELIMITER의 도움을 받을 수밖에 없습니다. DELIMITER란? SQL의 종료를 변경하는 명령어. 기본 값은 ; 세미클론으로 되어있으나, $$나 %% 같이 사용하지 않는 단어로 바꿈으로서 프로시저의 갑작스러운 종료처리를 방지할 수 있게 됩니다. 따라서 프로시저를 추가할 때에는 DELIMITER [종료 문구] 로 변형해주시고. 프로시저의 사용이 모두 끝나게 되었을 경우 다시 DELIMITER ; 로 원상복구해주면 됩니다. 만약 안 하시게되면, 나중에 간단한 INSERT, UPDATE..
안녕하세요. 이번 시간에는 max_allowed_packet 오류 조치에 대한 글을 쓰도록 하겠습니다. INSERT를 진행하거나 CREATE 테이블을 만드는등 과정 등 에러는 심심치 않게 발생 됩니다. 그래서 이와 같은 오류가 발생하게 될 경우 제일 먼저 DB에서 이와 같은 명령어를 입력해봅니다. SHOW VARIABLES LIKE 'max%'; max라는 단어를 가진 결과값만 검색하므로 해당 SQL ERROR에 대한 조치가 더 빨리 진행 될 수 있습니다. 현재 ERROR를 표현하는 'max_allowed_packet의 값이 2048인 것을 확인 할 수 있습니다. DB에 max_allowed_packet의 변경을 표시합니다. 약 16MB로 기존보다 크게 확장을 시켰습니다. SET GLOBAL max_al..
안녕하세요. 이번 시간에는 DB 백업, 복원하기 시간을 가졌습니다. 어떠한 원인에 의해 DB서버는 언제든지 문제가 생길 수 있으므로 백업은 매우 중요합니다. 가령, 서버를 포맷한다거나 이동으로 장애가 아닌 경우에도 사용할 수 있으므로 매우 중요한 기술입니다. 따라서 TEST를 위한 DB를 아무거나 무작정 사용할 수 없으므로 MariaDB를 사용하여 DB를 직접 만들고 사용하였습니다. 백업에 활용한 방식은 mysqldump 방식입니다. 이 방법은 innoDB 엔진에 한해 백업방식이며, 논리 백업 방식을 사용하면서도 간단하게 실행할 수 있어 무난히 사용할 수 있습니다. 다만, 데이터 수가 많아질수록 속도는 매우 느려지는 치명적인 단점을 지녔습니다. 테스트를 위해 maria db에서 실험을 위한 DB를 생성하..