본문 바로가기

DevDevDev306

#7-2 / mybatis(ibatis)를 이용 DAO + config,mapper,xml DB연결 ⚡ insert 테스트dbcong.xml 의 하단 bean id="template" 여긴 아직 사용 x - 주석처리 한 뒤 테스트- /META-INf/config.xml //이름 맘대로 - /META-INf/mapper.xml //이름 맘대로 //이름 맘대로 insert into coupon (cidx,cpname,cprate,cpuse,cpdate,indate) values ('0',#{cpname},#{cprate},#{cpuse},#{cpdate},now()) - @Controller @Injectprivate SqlSessionFactory sqlfact;/*@Resource //어디선가 쓸거임 아직 x private SqlSessionTemplate sqlsession;*/@GetMa.. 2024. 7. 22.
#7-1 / Mybatis 설치 및 Setting 👀 [Mybatis]DB Connection ,spring DB의 DDL을 빠르게 처리해주는 대표 라이브러리- mybatis / mybatis-spring / javax.inject  3개 다운- Controller가 너무 무거워짐을 방지- Mybatis 사용시 Connection 사용하지 않음config.xmlJAVA의 DAO(getter,setter)  => 얘가 없으면 db연결조차 못함,모든 DAO가 여기 다들어감mapper.xml모든 DDL이 여기 다들어감 .. 등 => 이 두개에 다 몰아져있어 유지보수 용이 , 이 두개가 Controller의 보조역할을 한다...? DB  Module ( DAO or VO / Data DDL Module 을 포함 )DAO or VO : config.xml.. 2024. 7. 19.
CORS 연습방법 1. 브라우저 : localhost:8080/~2. ajax : http://ip숫자.ip숫자.ip숫자:8080 /~   =>  www만 없어도 도메인이 다른걸로 인식함 2024. 7. 19.
#5-6 / ECMA - Ajax 데이터 로드 - ajax5.jsp  - ajax5.js ( ajax5.jsp 와 연결 )export let data = { keycode : "a1234", //가상 변수 선언 - 인증키는 요런식으로 쓰면 댐 ajax : function(){ //console.log(this.keycode); //해당 가상변수이며, 출력시 this를 활용함- a1234 출력 //Get일 경우 별도의 method 사용하지 않아도 됨 fetch("http://172.30.1.5:8080/jq/rest_ajax5.do",{ method:"GET", cache:"no-cache", //mode:"no-cors", //이거 쓰면 안됨 - get은 무조건 backend가 처리! (위에 두줄도 안써도 되는듯) }) .. 2024. 7. 19.
#5-5 / Javascript- Ajax 데이터로드(database+인증키 사용) front에서 버튼 클릭 => database에서 select 로 받아온걸 배열에 담아서  ajax로 전송⚡ 보안키를 통한 외부 서버에서 data호출(from database)- ajax4.jsp 쿠폰명 할인율 사용기한 쿠폰이 없습니다 - @controller //javascript ajax MappingPreparedStatement ps = null;ResultSet rs = null;@CrossOrigin(origins="*", allowedHeaders = "*")@GetMapping("/jq/rest_ajax4.do")public String rest_ajax4(String keycode,HttpServletResponse res) throws Exception { res.se.. 2024. 7. 19.
🎫 spring note 👀 배우진 않지만..너무 많은게 있다.. 공부하시길..SPRINGAOP (  관점지향 프로그래밍(AOP) vs 객체지향 프로그래밍(OOP) )Batchinitializr..이런 것들이 있다 👀 게시판 제작시 주의모든 게시판의 리스트, 상세보기 => 무조건 GET으로 처리모든 게시판의 글쓰기 => 무조건 POST 👀 [Servlet과 Spring의 차이점 ] 👀Spring과 Servlet 모두 Class 사용하지만Servlet : Module은 class를 쓰지만 Controller는 servlet을 사용함parameter값 받는 방식 차이 (Get이든 Post든)- Spring : HttpServletRequest req or 인자값 or DAO 으로 받을 수 있음- Servlet : HttpSe.. 2024. 7. 19.
#5-4 / Jquery Ajax & 외부 서버 통신(CORS) ⚡ CORSspring - @CrossOrigin(origins = "*", allowedHeaders = "*") 해당 annotaion 추가=> origins에 특정 ip 작성시 - 해당 ip에서만 대응하겠다 (* : 전체)=> allowedHeaders 에 "GET" 작성시 get일 경우만 대응하겠다      (* : 전체 , "application/json" 처럼 type을 작성하는 경우도 있음)res.addHeader("Access-Control-Allow-Origin","*"); res.addHeader("Access-Control-Allow-Credintials","true");=> class내에 요걸로 작성으로 대체 가능 (retrun에 경로 넣어줘야함)json으로 받는다면@GetMappi.. 2024. 7. 19.
#5-3 / Jquery Ajax & API 서버통신 (XML 로드) ⚡ XML 로드xml파일 강제루 미리 제작해둠- data.xml 홍길동 hong hong@nate.com 25 이순신 lee sunsin@daum.net 33  - ajax2.jsp 2024. 7. 19.
#5-2 / Jquery Ajax & API 서버통신 (URL JSON 로드) ⚡ URL JSON 로드$("#btn3").click(function(){ $.ajax({ url : "./rest_json2.do", cache : false, type : "GET", dataType : "JSON", success : function($data){ console.log($data); }, error : function($data){ console.log($data); } });}) //produces : 해당 mapping에 속성을 변환 시키는 데이터 타입 (기본은 html)@GetMapping(value="/jq/rest_json2... 2024. 7. 19.
#5-1 / Jquery Ajax & API 서버통신 (JSON) / JSONArray,JSONObject 사용 ecma랑 jquery 는 사실 매칭이 잘 안됨.. 버그 생김ㅋ ❓ API 서버REST ( get,post )xml,json 로드받는 역할아키텍처 구조RESTful ( get,post,put,delete ) - url 파라미터로 세팅CDN ( get,post ) - Image,VideoSOAP ( xml만 사용 )나중에 공부해보길 추천ㅋ , REST보다 어려움REST와 특성이 비슷함금융권에서 많이 사용 - 보안 좋아서프로토콜 구조(서버와 서버간의 DATA 교환)❓ 아키텍처 , 프로토콜아키텍처 : 데이터의 구조 형태프로토콜 : 서버와 서버간의 통신1. html로 받아서 json으로 변경하는 방식2. 처음부터 json파일로 받는 형식⚡ REST (JSON 이니까) - (dataType : "HTML" 로 받.. 2024. 7. 19.
#4-3 / Ecma + 배열로 Ajax(fetch)로 전송 혼돈.. 방법이 굉장히 상당히 많다/... ⚡ ModelATtribute(dao) or RequestParam 으로 받을 경우 - ecma_11.jsp@PostMapping("/ecma/ecma11ok.do")public String ecmall( @RequestParam String mid, HttpServletResponse res, HttpServletRequest req ) throws Exception {//public String ecmall(@ModelAttribute data_dao dao,HttpServletResponse res, HttpServletRequest req) throws Exception{//publ.. 2024. 7. 17.
외부 페이지 팝업 결과값 CORS 해결법 ⚡ CORS 해결message는 외부의 값에 대한 내용을 가져오게 되며해당 값을 data 및 배열키를 이용하여 부모창으로 값을 넘기는 cors해결 방식- ecma_10.jsp 값 : - popup.jsp : 짝꿍 jsp java html ecma-popup2.jsp 2024. 7. 17.
#4-2 / ECMA + Ajax (POST통신) post통신은 method을 post로 적용 및 headers에 application~으로 작성(배열이 아닐 경우 ?를 이용하여 GET과 비슷한 형태로 전송)가상의 변수를 이용하여 Backend가 받는 파라미터 이름을 이용하여 body 속성에 값을 적용하여 보내는 방식도 있음단,배열값 전송시에 body : {} 필수임 ⚡ 아이디 중복확인- ecma_9.jsp 아이디 : - ecma_9.jsexport class logins { ajax_idck(id){ this.mid = id; fetch("./ecma9ok.do",{ method : "POST", headers : {"content-type":"application/x-www-form-urlencoded"}, body : thi.. 2024. 7. 17.
#4-1 / ECMA + Ajax (GET통신) - 아이디 중복확인 ⚡ 아이디 중복확인- @Controller//ecma Ajax (GET통신)@GetMapping("/ecma/ecma8ok.do")public String ecma8ok(@RequestParam String mid, HttpServletResponse res) throws Exception{ this.pw = res.getWriter(); if(mid==null) { this.pw.print("error"); }else { Connection con = dbInfo.getConnection(); String sql = "select count(*) as ctn from login where mid=?"; PreparedStatement p.. 2024. 7. 17.
#11-4 / ECMA 로 data insert,select create table movies( midx int(6) unsigned not null auto_increment, msubject varchar(100) not null, /*영화 제목*/ cinema set("CGV","MEGA BOX","LOTTE CINEMA") not null, /*등록된 영화관*/ ticketing int(5) not null, /*예매가격*/ screen_date date not null default '0001-01-01', /*상영일자*/ primary key (midx) );table 만듬 ⚡ ecma로 데이터 등록(영화 정보 등록 페이지 제작) - insert👀 FRONT-END- ecma_6.jsp 영화 제목 : 영화관 : 영화관 선택 CGV .. 2024. 7. 16.
IDE - database source Explorer install help - about Spring tool suite 으로 eclipse 버전 확인 후 메모장에 적어놓기.. 나는 현재 Platform: Eclipse 2021-09 (4.21.0) 이거임help - install new Software work width : Latest Eclipse Release - https://download.eclipse.org/releases/2021-09 (버전 맞아야함)=> database Develpment에 원하는것만 or 전체 선택=> contact all update sites during install to find required software  이거 체크 해제 (꼭!!)=>  죽죽 next~ accept ~ fisish => install anywayres.. 2024. 7. 16.
#11-3 / ES7 class 핸들링,constructor,get,set export 단점 : field 안에 전역변수 사용시 핸들링이 어렵다⚡ 인증번호 전송 es7 class로 제작constructor : 즉시실행 메소드get 메소드명(){} : getterset 메소드명(){} : setter (set 굳이 안붙여도 됨)- ecma_5.jsp 연락처 : - - - ecma_5.jsexport class tels{ constructor(){ //class 호출시 즉시 실행되는 메소드 console.log('test'); } tel_check(){ this.tel1 = document.querySelector("#tel1").value; this.tel2 = document.querySelector("#tel2").value; this.tel3 = docu.. 2024. 7. 16.
#11-2 / ECMA Script (함수 사용법) - ES7 👀 import 있음 !!필요한것만 골라서 호출하기 때문에 속도가 빠르며 핸들링이 용이하다!가상변수 핸들링함수 this 명령어  - 일반 함수에서는 사용 x , class함수에서만 사용!⚡ import   해당 방식으로 js파일 로드함모든 코드가 암호화됨 , script src 보다 속도는 훨씬 빠름- ecma_3.jsp - emca_3.jsvar dd = "test ecma 코드";export default console.log(dd); //import에서 요청한 사항을 export를 이용하여 값을 내보냄//abc 함수를 import 호출할 수 있도록 export로 설정export function abc(data){ return console.log(data + "님");}//이벤트 핸들링 함수ex.. 2024. 7. 16.
#11-1 / ECMA Script (함수 사용법) - ES6:class,class 상속 ECMA ScriptjQuery 사용 형태 + Javascript 사용형태 로 바뀐 것ES5 ~ ES6 사용  ES15까지 나옴 (ES7에서 많이 바뀜)일반 script보다 빠름 는 body 아래 작성  👀 ES6 ~  => class 함수를 사용하여 모든 메소드를 컨드롤하는 형태 구조⚡ 일반 class형태  ⚡ 선언식 class형태    👀 extends 있음!!⚡ extends - class상속 2024. 7. 16.
#6-9 / PathVariable(- API 서버 제작시 사용) PathVariableREST API URI에 변수값을 이용하여 해당 페이지를 로드하는 형태의 data출력 방식{ }를 이용하여 id값을 핸들링api 서버 제작시 가장 많이 사용하는 annotation - mapping에 있는 파라미터 이름을 로드하여 변수로 변환하는 역할/* api서버를 만들때 주로 사용하는 방식 */@GetMapping("/api/{id}")public String apiurl(@PathVariable String id) { System.out.println(id); return null;}~/api/100  접속시 =>  /api/100.jsp 를 찾음!!  API 서버? REST, RESTful, CDN  해당 모든 사항이 포함됨 ❓ API 서버REST ( get,pos.. 2024. 7. 15.
#6-8 / Ajax 동기화 및 비동기화 차이점 비동기를 많이씀⚡ 비동기,동기 차이- async_sync.jsp=>true : 비동기 /  false : 동기- shop_main2.java (Controller)/*-------Ajax 동기화 및 비동기화 차이점 페이지-------*/@PostMapping("/ajaxok.do")public String ajaxok(String mid,HttpServletResponse res) throws Exception{ PrintWriter pw = res.getWriter(); System.out.println(mid); Thread.sleep(5000); //응답 대기시간을 설정할 수 있음 pw.write("ok"); pw.close(); return null; //Print.. 2024. 7. 15.
#6-7 / JSTL - SPA 검색 기능 사용법 ⚡ 반복문 + 조건문 , 전역변수로 값 체크" /> 검색어 : [ ${search} ] 검색결과 "> ${ck} --> "> ${dt} ${dt} 해당 메뉴는 없는 데이터입니다. 2024. 7. 15.
#6-6 / JSTL - Split을 이용하여 출력하기 " /> ${user_arr}=> 문자열을 fn:split을 이용하여 원시배열로 변환 후 -> 해당 값을 forEach를 이용하여 출력 2024. 7. 15.
#6-5 / JSTL - 외부페이지 로드 ⚡ : import import를 이용하여 외부의 jsp파일을 로드할 수 있음.단, 해당 page에 set태그를 이용하여 공유하는 데이터 방식은 작동불능=> 페이지 로드는 되나 데이터 공유는 불가능⭐❗ ❗ ❗ but ❗ ❗ ❗ ⭐ Controller에서 Model,ModelandView를 활용하면 외부 import된 jsl에서 jstl로 결과값 출력 가능- jstl_6.jsp- test.jspjstl_6.jsp ${member}- main.java (Controller)@GetMapping("/jstl_6.do")public String jstl_6(Model m) { m.addAttribute("member", "강감찬"); return null;}=> jstl_6.do 접속시 - 이렇게 .. 2024. 7. 15.
#6-4 / JSTL - database 연결 ⚡ 타이틀 --!> select * from ${table} ${order} 쿠폰명 할인율 사용가능 여부 사용기한 제작일 5}"> ${fn:substring(row['cpname'],0,10)}${jum} ${row['cprate']}% ${row['cpuse']} ${row['cpdate']} ${fn:substring(row['indate'],0,10)} 2024. 7. 15.
#6-3 / JSTL 문법3 - 반복문,varStatus while문 , forEach문 有 => forEach만 거의 사용! JSTL 에 반복문 처리 => 배열형태로 출력(원시배열,클래스배열)JSTL에서는 클래스배열 사용 권고 (ArrayList,LinkedList,Map) ⚡ forEach- 원시배열attribute 사용하지 않을시 jsp문법 으로 사용!item 속성 모든 배열 값을 처리할 때 사용하는 속성값배열에만 사용!begin, end (사용해도되고 안해도됨)begin : 시작값end : 종료값 "> ${dt} " begin="1" end="3"> ${dt2} ${dt3} "> ${dt5} ⚡ forEach - Class 배열 al = new ArrayList();.. 2024. 7. 15.
#6-2 / JSTL 문법2 - 조건문 ⚡ if문-  if문 선언시 test에 조건식을 사용 - else는 사용 x - var : true,false 로 결과 출력...해당 숫자는 100이하의 숫자입니다 100}">해당 숫자는 100이상의 숫자입니다해당 숫자는 100입니다 ⭐ ⭐ ⭐ ⚡ choose문을 활용한 when 조건식- 해당 방식 쿼리문 조건식에 사용 多-  == 대신 eq로 비교 가능(같은 경우)  /  != 대신 ne로 비교 가능(같지 않을 경우)- choose 안에는 html 주석을 사용하지 못함... 약관 동의 약관 비동의 약관 동의없이 페이지 이동 해당 값은 인식하지 못하였습니다 //약관 동의없이 페이지 이동 출력 2024. 7. 15.
#6-1 / JSTL 문법 - 1 👀 JSTLJSTL은 단독으로 사용하는 경우는 없음 => do에서 호출받아서 사용 多 (Model, ModelandView)반복문 외에는 태그와 태그 사이에 값을 넣지 X - or 방식으로 사용반복문은    - 자주 사용하는 JSTL 엔진 ⚡  out - 값출력 / out.print와 같은 형태의 출력 태그 => 받아서 처리 X , 걍 value값을 단순 출력만 하는 기능 (잘사용x) //우왕 출력⚡  set - setAttribute와 동일현 한텨로 태그 값을 받아서 변수로 처리- jsp에 있는 값을 JSTL로 변환시 무조건 set태그 사용! //에이핑크 출력${a}"/> //에이핑크 출력${b} ⚡  scope="session"  - session을 활성화시 session 생성 또는 로드도 활용.. 2024. 7. 15.
#5-4 / [ legacy ] 로그인 내가 해봉거 table 만듬 create table member(midx int(7) not null auto_increment,mid varchar(100) not null,mpass varchar(100) not null,mtss enum('SKT','KT','LGT','알뜰폰') not null default 'SKT',mphone char(11) not null,joindate timestamp not null default current_timestamp,primary key(midx),unique id(mid)); 2024. 7. 12.
#5-3 / spring - legacy setting legacy project 생성encoding 변경 등 window - preferences settingD:\legacy\.metadata\.plugins\org.springsource.ide.eclipse.commons.content.core에 html 넣고D:\legacy\.metadata\.plugins\ 에 폴더 넣기 (하단에 zip파일 첨부해놓음 - 실제 사이트에서 다운받아도 됩니다)javaIDE/STS.ini 의 javaw.exe를 D:\Java\jdk-11\bin => 요 경로로 변경 및 version 변경- spring lecacy 는 java17번 이하에서만 가능하기때문! 우클릭 - spring legacy project - spring MVC project=> next => kr.co.. 2024. 7. 12.