본문 바로가기

DevDevDev306

#3-1 / 2예제 상세보기-고객별 포인트,구매내역 추가 https://dev-eunse.tistory.com/170해당 작업 이어서 상세 버튼 클릭 -> 포인트,상품구매리스트도 출력하기 (points,mall_product 테이블) ⚡ 상세 table에 포인트 추가~생략 포인트(적립금) // //이렇게해도되고 //이렇게하면 ,찍힌 값 출력 DecimalFormat  : , 찍는 라이브러리  => 실무에선 join or view를 사용한다 ! 이렇게하면 막코드👎  🔽 이걸 join으로 한다면?sql 문법 : select a.*,sum(b.mall_point) as total from mall_member as a join points as b where a.midx='7' and a.mall_id=b.mall_i.. 2024. 6. 26.
#2-1 / jsp include , 수신여부에 따른 회원정보 리스트 출력 , node추가 ⚡ includejsp,servlert등 스크립트 언어는 서버가 없으면 돌아가지 않음​▶ include file     정적 문법 - 변수활용 가능    외부파일 로드(단,다른 서버에 있는 파일은 로드하지 못함)    @ : 라이브러리 불러오기,파일 로드,페이지 표시할 때 사용 / jstl 엔진 로드 시 사용▶ jsp:include page=" " :     동적 문법-변수 활용 불가능    flush : cache 메모리에 있는 buffered 사용 유/무 (거의 false 씀, ?v=1 같은느낌..?)              false - 데이터를 새롭게 반영 , true - 데이터 반영 x (반대임)👀정적형태 - DB사용X , ex) 로그인,회원가입변수활용 가능동적형태- DB사용O 배열 백엔드 투.. 2024. 6. 25.
post 통신에 따른 조건문 핸들링 - input type hidden,text null일 경우 - 연산기호 , 값이 있는 경우 - equalsequals("hong") 또는 == "hong" 으로 체크한다면 새로고침하고 들어갈 시 초기값이 null이어서 아예 인식불가 - 에러가 떠버림==> 이럴땐 그냥 값을 핸들링하지 말고 null로 좌지우지 해주자!      ( 연산기호 == 로값이 있는지 없는지만 체크 ) ^_________^"); //새로고침->인식불가(500) if(data==null){ //버튼을 누르기 전 out.print("11"); }else{ //버튼을 눌렀을 때 out.print("22"); }%>  🔽 2024. 6. 25.
#1-2 / database jsp로 연결 정통은 이렇게 쓰진 않는다~ 절대루 ~ 보안👎걍 해보는거⚡ user table 연결 후 table로 출력 - idx 내림차순 아이디 고객명 가입일자 2024. 6. 24.
#1-1 / 🌺 JSP 기초 JavaServer Pages  jsp는 보안상 뚫리기가 쉽기 때문에do를 실행시켜서 jsp로 data를 출력시키는 경우가 많다! view1. webapp에서 jsp를 로드하는 방식 ( 외부에서 직접 해당 jsp를 실행 가능 )2. META-INF에서 jsp를 로드하는 방식 (외부에서 직접 해당 jsp를 실행 불가)     META-INF 에 파일을 넣을시 외부에서 절대 접근 금지  (보안 아주 good 👍) - 정통     ∴ 중요한 jsp파일은 META-INF에 넣는다!! -> do로 실행 response.setContentType("text/html;charset=utf-8");//view(출력 역할)RequestDispatcher rd = request.getRequestDispatcher("... 2024. 6. 24.
#2-1 / id 중복체크 연습용(ajax) - POST Ajax Get : json 파일을 로드하기 위해but 중복체크는 값을 보내야 하므로 ( Ajax jsp -> do 로 ) => Post 통신 사용( 보내고 받는게 없으면 .do파일은 error뜨는게 맞음 ! )⚡ ajax POST 통신 연습용 : 문자열을 return 시켜서 사용함- jsp아이디 :  - jq (js는 하단에 있음)$(function(){ $("#btn").click(function(){ $.ajax({ url : "./jsp1ok.do", cache : false, type : "post", //pot 전송(data type,data,contentType 필요) //json 배열을 리턴받을 경우 : do 파일이라도 json type으로 받아야함 //(걍 문자열만.. 2024. 6. 24.
#8-2 / 게시판 insert 모듈화... 게시판 insert 모듈화..... 선생님.. ⚡ 게시판 insert 모듈화.....- qa_writeok2.java@MultipartConfig( fileSizeThreshold = 1024 * 1024 * 2, maxFileSize = 1024 * 1024 * 10, maxRequestSize = 1024 * 1024* 100)public class qa_writeok2 extends HttpServlet { private static final long serialVersionUID = 1L; PrintWriter pw = null; ArrayList al = null; ArrayList> all = null; protected void doPost(HttpServletRequest req, .. 2024. 6. 21.
#8-1 / 게시판 login.html 과 이어짐-> top.jsp 에 추가 ( )   =>   top.jsp 아래 qawrite.jsp가 들어감 로그인| 회원가입 | 고객센터 님 환영합니다. | 장바구니 | 고객센터 |  🔽 🔽 글쓰기 input 검토 등 기능 js로 구현 ⚡ 파일첨부 input 핸들링 찾아보기 + 추가  $.fn.fileck = function(){ var $fnm = .. 2024. 6. 21.
data primary key를 중간에 추가 또는 수정 하고싶다면..? 만약 data primary key를 중간에 추가 또는 수정 하고싶다면..?단, 서비스가 개시하지 않은 상태에서만 가능안하는게 좋다알고만 있으세요 1. auto_increment 해제 2. 기존 primary key 삭제 3. 신규 primary key 등록 4. auto_increment 재등록alter table user change uidx uidx int(7) not null;alter table user drop primary key;alter table user add primary key (uidx,uid);alter table user change uidx uidx int(7) not null auto_increment; 2024. 6. 21.
#1-4 / js, jquery - 외부 data load (CORS 해결) ❌❌  CORS 에러 ❌ ❌ : 도메인(ip)이 서로 다를경우 Access 오류로 인하여 데이터를 로드하지 못하는 상황 localhost일때는 문제발생X해결 : 1. json에서 ajax로 바로 로드가 안됨(CORS) , JSON -> JSP로 변환 후 외부로 송출2. script 통신(script 파일로 CORS JSON로드방식) - ajax안쓰고 jsp파일에 fileReader로 outprint 해주기=> 둘다 backend(상대방)에서 작업해줘야함 ⚡ 1. JSON -> JSP로 변환 후 외부로 송출 json파일을 바로 핸들링하기 어려우므로 jsp파일을 load후 핸들링- 내가 로드할 html파일 - 상대방(backend) 에서 만든 jsp파일trimDirectiveWhitespaces="true".. 2024. 6. 20.
#1-3 / 🌺 ajax(jquery) 🔽 이거갖구 놀거임=> product.json의 대표key : flat_product       => 나중에 mysql의 table명이 대표key가 됨 ,  mysql의 colomn명이 일반 key가 됨 ⚡ ajax(jquery) 기본=> javascript에 반해 parse를 따로 작성하지 않아도 됨!🔽반복문(jquery - each문) 이용한 html 출력//통신이 끝난 후 얘가 실행되어야 함$.fn.htmls = function(){ //jquery each : 2개인자 , js foreach : 3개인자 $.each($data["flat_product"],function($a,$b){ //$a : index번호 / $b : 자기자신 $("#box").app.. 2024. 6. 20.
#1-2 / ajax + json(key가 있는 배열) => 5초에 한번씩 실행 json의 [ ] 안에 { } 로 들어갈 시 key배열 ! => 백엔드가 가장 많이 만드는 형태key배열은 { }에 넣을것!! 나중에 mysql의 coloumn명이 key가 됩니다대표키는 table명[ {"seq": 1,"product":"모니터","price":195000}, {"seq": 3,"product":"냉장고","price":295000}, {"seq": 4,"product":"에어컨","price":395000}, {"seq": 9,"product":"세탁기","price":495000}]  👀 변수 형태의 function => 변수 형태의 function이 먼저 읽힘//일반 functionfunction aaa(){ alert("function")}//변수 형.. 2024. 6. 20.
#1-1 / 🌺 ajax(javascript) 기본 구조 1. javascript ajax2. jquery  ajax3. es ajax4. react ajax=> 다 다름 => 다알아야함 ⚡ json 구조원래는 database + java 로 만들어야함 배열 => [ ] (key 없는 배열)  or  { } (key배열일경우)json파일 내 주석사용  Xdatafile 종류 : xml,json(api서버가 없을 때) / jsp,do (api서버가 있을 때 )[ ["hong","kim","park"], ["22","32","42"]]  ⚡ ajax 기본 구조 : ajax는 비동기 통신전체 페이지를 새로 고치지 않고도 페이지의 일부만을 위한 데이터를 로드하는 기법 JavaScript를 사용한 비동기 통신, 클라이언트와 서버간에 XML 데이터를 주고받는 기술이다.즉.. 2024. 6. 20.
jquery ui ⚡ jquery ui$(function(){ $("#today").datepicker(); $("#popup").draggable(); $("#popup").droppable({ //다른 오브젝트가 해당 오브젝트 안에 들어오면 작동 drop : function(){ $(this).css("background-color","pink"); } }); $("#popup2").draggable(); $("#menu").selectable(); //선택한 오브젝트를 표시하는 함수(css와 함께 사용) $("#menu2").sortable(); }) datepicker minDate: "0",  오늘부터선택가능maxDate: "7", 선택가능 max 지정 showOn: "both"buttonText: ".. 2024. 6. 20.
#7-3 / 첨부파일 기능 + database 저장 https://dev-eunse.tistory.com/155 예제의 html파일에 review 받는 input 추가리뷰내용 :   🔽 create table filelist( fidx int(7) unsigned not null auto_increment, f_img text null, f_text varchar(200) not null, f_indate timestamp not null default current_timestamp, primary key(fidx) ); 🔽 ⚡ 리뷰등록 fileok2.java@MultipartConfig ( fileSizeThreshold = 1024*1024*2, maxFileSize = 1024*1024*10, maxRequestSize = 1024*1024*1.. 2024. 6. 19.
^^ 1. 회원가입,로그인 2. 첨부파일 3. 패스워드 변경 (update) 4. 아이디 찾기 5. 아이디 중복 - ajax 6. 사용자 검색 7. data 수정(게시판) 8. 패스워드 암호화 2024. 6. 19.
#7-2 / 첨부파일 기능 - java + io cos 사용하는 방법도 잇음 - 궁금하면 google에 쳐보세욘 이 예제는 database 전달 없음⚡ 첨부파일 기능첨부파일은 get으로 날릴수 없음 => post로만 날릴 것!- fileupload.html enctype : 기본(따로 작성안할시)이 application/x-www-form-urlencoded 으로 되어있음 multipart/form-data : input type이 파일일 경우는 무조건 이걸로 받아야함form태그 속성 첨부파일 : - fileok.java@의 역할 - 첨부파일 환경설정 세팅@MultipartConfig( )fileSizeThreshold :한개의 파일 전송 크기maxFileSize = 업로드 가능한 최대 크기 maxRequestSize = 여러개의 파일 전체 .. 2024. 6. 19.
#7-1 / 회원 가입 후 로그인,로그아웃 👀 참고out.print(); : 웹페이지(jsp)에 출력로그인| 회원가입 | 고객센터님 환영합니다. | 장바구니 | 고객센터님 환영합니다. | 장바구니 | 고객센터 요것도 가능!-->  * session 가져올 시 null일 경우 String으로 변환  관련 https://dev-eunse.tistory.com/153⚡ 회원가입 후 로그인기능 이전 과정들은  https://dev-eunse.tistory.com/150 여기에 있음! = 회원가입(sql data 저장) + 로그인(성공시 세션저장)- top.jsp 로그인| 회원가입 | 고객센터 님 환영합니다. | 장바구니 | 고객센터 | - logout.java (.do)public class logout extends HttpServlet { p.. 2024. 6. 19.
문자열로 변환하는 형태 : String.valueOf,toString(),(String) 문자열로 변환하는 형태 : String.valueOf,toString(),(String)  => 물론 문자로 다 변환은 된다만 이 세개를 잘 구분해서 알고 써야함 toString() => null 포함하지 않음, 무조건 뭐라도 들어가있어야함 (String) => object형태의 배열구조일 시 (int등 나머진 불가) , null 포함가능 String.valueof => 자료형 자체를 문자형으로 변환 , null 포함가능 ⚡ session값에 아무것도 저장되어있지 않은 경우HttpSession hs = request.getSession(); //object 배열형태String id = String.valueOf(hs.getAttribute("id"));//String name = hs.getAttribu.. 2024. 6. 19.
#6-3 / storage ⚡ 1. local storage 사용법( - front 주로사용)key값은 중복 불가!!  ⚡ 2. session storage 사용법(- backend 주로 사용)  => 1,2파일 닫아도 localstorage도 product,냉장고 들어가있음 - 창 닫았다 켜도 계~~~~속 남아있음∴ 아이디 비밀번호 이런거 넣으면 절~~~~~대 안됨!!  session storage는 해당페이지에서만 작동 - 창 닫을시 사라짐 (해당페이지에서만 사용 가능하기때문에 백엔드가 주로 사용)  🔽 로그인 저장https://dev-eunse.tistory.com/150   여기서 하던거를 로그인 저장기능 붙이기⚡ localstorage 이용한 로그인 정보 저장사실 이 기능을 실무에서 잘 만들진 않음 회원 로그인 .. 2024. 6. 18.
5~7월 일정 ~5.30 java 5.31 ~ 6.12 mySql   6월6.10  java 시험 (OOP,IO) 6.12 mysql 마무리 / js(~6.19)6.13 mySql 시험6.14 풀이겸 ...6.20 (mySql 2차시험)6.21~6.28 통신(ajax)  7월 (시험 4개..) 미니프로젝트7월초 진행하는 짝꿍이랑 만드는 [스키장 예약 시스템 - 모바일전용] (7.1~7.3 3일): 6.28 기획서 전달 예정,html-css 6장,jquery 엔진2개 분량 - 메뉴를 나누는게 좋을겁니당database는 실서버에서 진행 - 선생님 회사 서버... [ 파트 ]- 로그인- 비회원- 회원가입- 예약시스템 (예약취소 가능 , 예약이 이미 차있으면 예약불가)- 물품대여및구매- 최종 예약 확인 정보출력(비용포함)- .. 2024. 6. 18.
#6-2 / session,cookie - session 입력,출력,삭제 여깃음 ❓cookie브라우저의 cache 메모리에 값을 저장하는 방식최대 20개까지밖에 저장 불가(cache 메모리에 한계가 있음 - 4KB)java,js 둘다 있음 (back,front)최근엔 cookie로 사용하는 형태에서 storage사용하는 형태를 주로 사용하는게 추세ex) 오늘 하루 팝업 닫기 , 아이디 저장session 일정시간동안 브라우저에 해당 값을 저장,유지시키는 방식(일정시간 지나면 파기됨)java (backend전용)server , web.xml 에서 세팅브라우저별로 각각 작동됨, 사용 브라우저 닫았다가(tab x) 키면 파기됨ex) 은행 로그인시 일정시간 유지 5​storage(session)cache메모리localstorage(js-frontend) , sessions.. 2024. 6. 18.
#6-1 / 간편 회원가입⭐ ⚡ 회원가입- html 회원 로그인 아이디 : 패스워드 : 로그인 ​-  module : database 접속 환경설정 파일 생략 (https://dev-eunse.tistory.com/148 와 동일)- servelete (insertok.java)public class insertok extends HttpServlet { private static final long serialVersionUID = 1L; dbconfig db = new dbconfig(); //db정보 PrintWriter pw = null; private Connection con = null; //보안 중요 private Statement st =.. 2024. 6. 18.
게시판 editor api 설치 [ ckeditor4 ] ckeditor4 download(full package) : 게시판 editor - lts는 유료임 다운 x -> 폴더에 복붙  jquery or js로 에디터 내용 확인var ed = CKEDITOR.instances.editor.getData(); if(ed==""){ alert("내용을 입력하세요");}=> editor body 내의 컨텐츠 검토 =>  많이쓰는 editor API 순서1. CKeditor : 유료(영상 등 가능)/무료 잇음 2. SmartEditor : naver에서 제공하는 API3. DaumEditor : daum,nate에서 제공하는 API4. FCKeditor : ckeditor 무료버전 (옛날 ..)5. RainEditor :  보안 구림 - 조심 2024. 6. 17.
#5 / 🌺 MVC? / excute,statement정리 mysql-memo에 연습버전도 잇음 👀  초반 설명  java => jquery + javascript => mysql => servlert => jsp⚡ MVC  :java -> Servlet + Class -> jspServelt : Controller (통신 언어를 받음)Class : Module (순수 java)Jsp : View (html,css,jquery 등 여러가지 담당)=> 각 해당 역할이 아닌 다른 역할을 작성할시 👎view  ↔ Controller  ↔ Module꼭 거쳐야만 전달 가능참고 : https://dev-eunse.tistory.com/110   ⚡ dababaseRDBMS : mysql,mssql..등DBMS : nosql 등=> database 연결 시 라이브러리가.. 2024. 6. 17.
정규식 👀 정규식 관련 참고(js)https://inpa.tistory.com/entry/JS-%F0%9F%93%9A-%EC%A0%95%EA%B7%9C%EC%8B%9D-RegExp-%EB%88%84%EA%B5%AC%EB%82%98-%EC%9D%B4%ED%95%B4%ED%95%98%EA%B8%B0-%EC%89%BD%EA%B2%8C-%EC%A0%95%EB%A6%AC    ⚡ 숫자가 아닌것- jsvar t1 = document.getElementById("test1");var j1 = t1.value.match(/\D/g);if(j1 != null){ console.log(t1.value.replaceAll(/[\D]/gi,"")) alert("숫자만 입력해야함") t1.value = t1.valu.. 2024. 6. 17.
#5 / 회원가입 data mysql로 전달 1.약관.html -> 2. Backend -> 3. 회원가입.jsp(or .do) -> 4. Backend -> 5. Database 저장=> 회원가입 페이지는 post로 data 전송!! (get은 보안 포기) ⚡ step1 (agree.html) 약관동의 전체선택 (필수)이용약관 (필수)개인정보 수집 및 이용 🔽 backend로 전달 (member_ship.java) member_ship.jsp에 step2 html 코드 복붙 후 핸들링 ⚡ member_ship.java (servlet)public class member_ship extends HttpServlet { private static final long serialVersionUID = 1L; protected .. 2024. 6. 14.
java => mysql 전송시 timezone error 대응 java => mysql 전송시  time-zone error 이 뜨면 🔽my.ini 파일(txt파일)=># server_type=3 [mysqld] default-time-zone='+9:00'   변경 (노란줄 추가) 🔽 2024. 6. 14.
룰렛 data mysql로 전달 선생님의 폭주 ^^ㅎ=> 나중에 다시 배울거임! 일단 메모~  진짜 모르겠땀! ㅎㅅㅎ https://dev-eunse.tistory.com/143여기서 룰렛 만들고 왓음ㅎ 🔽 mysql table 생성create table game( gidx int(6) not null auto_increment, mid varchar(30) not null, mname varchar(30) not null, ginfo1 varchar(100) not null, ginfo2 int(4) null, //꽝인경우 null일수 있음 mdate timestamp not null default current_timestamp, primary key(gidx) );  🔽 [ MySQL Connector Java ] settin.. 2024. 6. 13.
#4-1 / jquery 이용 룰렛 제작 ⚡ 룰렛 페이지 제작  var data = ["500포인트","5000포인트","꽝","3000포인트","2000포인트","1000포인트"];var count = 3; //기회 count$(function(){ var arr = new Array(); $rd = 0; $("#gamebtn").click(function(){ if(count =5 && $random=66 && $random=126 && $random=186 && $random=246 && $random306 && $random pc값 무시하고 직.. 2024. 6. 13.