DevDevDev306 #3-1 / form 예제 MVC: Module(class) , View(JSP) , Controller(Servlet)⚡ SPA 로그인 - 일반회원,사업자 : 해당 조건 외에는 로그인 실패하는 프로세서 제작radio,checkbox name이 동일한 경우 java에서 배열로 사용ex) 2개 => part[0],part[1]!! radio,checkbox onclick="함수명(this.value)" 활용시 해당 value값 인자로 전달 !! good* html 일반 회원 사업자 회원 * java servlete 파일 - Controller(servlete) 담당public class loginok extends HttpServ.. 2024. 5. 30. #9 / html include (by php) * 실제 도메인이 작동되야만 먹힘 ( 로컬에서는 x ) 2024. 5. 30. SPA / MPA SPA(Single Page Aplication) - 페이지를 이동하지 않고 한 페이지 내에서 컨텐츠가 변경되는 방식- 모든 페이지에 적용x , 특정페이지에만 적용하는 경우가 많다=> 장점 : 로딩없이 페이지 전환 가능 ex) Layer(BlackScreen - modal창) 이용 - 일반회원/사업자회원(회원가입,로그인) , 인증창 MPA(Multiple Page Aplication)- 레이아웃 각각 뜯어서 조립?해서 제작하는 방식(include) MVC : Module(class) , View(JSP) , Controller(Servlet)- 코드량이 줄어듬 - 예제 : https://dev-eunse.tistory.com/110 2024. 5. 30. #2-4 / double form 👀 한 페이지에 form 두가지 형태로 구성되었을 경우 1.각 form 안에 input type hidden으로 넣어 구분하는 방법(파라미터 x) 2. action에 파라미터값을 이용하여 구분하는 방법 (get + post 방식)action="./userinfo.do?part=1"action="./userinfo.do?part=2" => java에 doGet,doPost 둘다 사용 (Service) Service doGet,doPost 모두 통신ㅇ르 받을 수 있는 전용 메소드 Front에서 form과 action에 모두 값을 적용하여 보낼 경우 get,post 모두 필요하므로 해당 상황에 활용단, 한글이 깨질 수 있으므로 encoding 필수 3. action에 각각의 다른java 파일을 별도로 분리.. 2024. 5. 29. #2-3 / html 태그별 데이터 전송 ⚡ select, date, color 통신사 : 통신사를 선택하세요 SKT KT LGT 알뜰폰 예약 일자 및 시간 : 색상 선택 : public class htmlcode_ok extends HttpServlet { private static final long serialVersionUID = 1L; protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { response.setContentType("text/html;charset=utf-8"); request.se.. 2024. 5. 29. #2-2 / 검색에 따른 get 전송방식 ⚡ get방식- 2가지 방식!form에 method에 get 입력 후 전송하는 방식form 전송 없이 location.href - 파라미터명,data값 이용하여 전송 검색어를 입력하세요 : --> 검색어를 입력하세요 : public class searchok extends HttpServlet { private static final long serialVersionUID = 1L; PrintWriter pw = null; protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { response.setContentType("te.. 2024. 5. 29. #2-1 / checkbox 및 라디오 핸들링 ❗ checkbox 는 기본적으로 value값을 적용하게 되어있음해당 값이 없을 경우 - null로 적용되며 해당 파라미터를 처음부터 변수선언 시 조건문에 error가 발생함또한 equals라는 메소드 사용면 문제 발생함=> 체크박스(checked 안되어있고) 체크 안할시 null값 들어옴 - 핸들링 불가 (checkbox만 !) 프론트에서 아무리 input type checkbox value값을 변경해줘도 체크가 되어잇지 않으면 뭐가됐는 걍 null로 들어옴 equals 도 절대 X ❗ radio 처리방식 : 무조건 데이터가 전송됨 (on / off 형태로 출력 - 중복 name값 사용하므로 value 무조건 사용) - intert() 사용시 연산기호 가능 ⚡ checkbox 자.. 2024. 5. 29. #1-2 / Front form태그 + servlet ✅ servlet - 데이터를 주고 받는 방식user 사용자가 url 입력🔽web Abache web.xml🔽html or jsp or .do 사용자가 정보 입력🔽form or afjax (with front)1. Form or ajax 데이터 전송 방식2. Post,Get,Put,Delete,... 3. name값 통일화 or 파라미터명 조율4. javascript 전송🔽web.xml 작동🔽java 핸들링(Servlet + Class + Abascact...등) ◀-▶ Database🔽결과출력 doPost : 프론트에서 request로 날라옴 (문자로)⚡ html + javaweb.xml.html 명칭과는 무관 /프론트가 html- form action에 url-pattern만 잘 .. 2024. 5. 28. #1-1 / Servlet start,setting JAVA -> OOP -> I/O -> Network -> Network(Servlet) Network(Servlet)에디터에 Java Web Develper가 있어야 돌아감 👀 servlet sts setting (기존 workspace가 잇엇다면 new workspace 변경) 1. preferences 세팅encoding 먼저 변경 - content types 의 text 안에있는거 싹다 바꿔줘야함intall/update updates - Autometic updates 체크박스 해제java copiler,installed jres 버전 맞추기 2. 서버 생성Apache Tomcat v8.5 , jre jdk-11 3. dinamic web project 생성target rundime : A.. 2024. 5. 28. #18-2 / Thread를 이용한 멀티 서버 ⚡ TCP 멀티서버public class multi_server { public static void main(String[] args) { new server_port(); }}//멀티 포트 설정class server_port { /* -싱글포트로 한다면? int port = 9001; server_open so = new server_open(port); //배열의 포트번호 so.start(); */ /*멀티포트*/ public server_port() { int port[] = {9001,9002,9003}; //원시배열 사용 - 해당 포트를 다 열어버리겠다 int w=0; while(w ⚡ Thread를 이용한 clientpublic class.. 2024. 5. 27. #18-1 / 서버 - UDP UDP : 내부 포트 UDP와 TCP는 따로 놈❗ 서버 관련 변수는 모두 private 으로 선언 하는게 좋음 : 중간에 채갈 수 있음 ex) UDP Server(UDP 5000) Client(UDP 5000) -> 그다음 접속자는 UDP 5001, UDP 5002.... (가상포트)만약 client가 UDP 5000번을 이미 사용하고 있는경우 접속이 되지 않음- 포트 하나개로 여러개를 사용 할 수있음- 한개의 포트를 열어서 여러개의 가상포트와 통신을 할 수 있는 구조- 보안상 연결을 체크 할 수 있음- 자신의 포트가 열려있는지 아닌지를 체크해서 서버로 넘겨야함(보안 good)- 가상포트는 자동생성- 역추적 가능- packet 필요 TCP ( https://dev-eunse.tistory.com/94 .. 2024. 5. 27. IO,Network 정리 👀 IO,Network : try~catch 필수사용 [ IO ]io (buffered 필요) / nio(buffered 필요x - 이미 장착)File : 경로를 로드 [ IO - String,char 단위 ]FileReader,FileWriter : ASCII 를 핸들링 (문자)BufferedReader,BufferedWriter - FileReader,FileWriter의 한계(문자를 하나씩만 찍음) 때문에 사용하는데 전체를 찍기 위해 사용- 단독사용 X , FileReader,FileWriter 랑 같이 사용해야함- Writer를 쓰고 close()를 하지 않으면 저장이 되지 않는다 - nio는 close() 작성 X [ IO - string과 byte를 오가는 아이] Stream + Reader.. 2024. 5. 24. 2024-05-24 숙제 http://mekeyace.dothome.co.kr/shop_product.csv상품에 대한 order별 구매수량 및 1개당 비용을 산출한 csv파일입니다. 각 order번호 별로 구매수량*1개당 비용에 대한 매출액을 배열로 생성하고 총 합계매출비용을 출력하는 프로세서를 구축하시오. 흰트 : 2차배열로 나와야함 , 총 합계매출비용 출력 2024. 5. 24. interface 정리 interface ) => implements이용하여 로드 조립하듯 찍어낼때 많이 사용내부에 반복문,조건문 사용하는 경우는 잘 없음 주의사항(규칙)public 클래스 형태로 만들지 않음 default void 메소드(); : {} 중괄호 사용public void 메소드(); : 중괄호xprivate,protected 사용 불가override 활용해야함 - interface내 메소드 필수 사용interface class 내 field에 변수 사용시 무조건 상수!int a=0; String b=null; / public final int money = 5000; - 필드에 이런거 사용 x , 어차피 값 못바꿈interface class 안에 abstract 사용 가능여러개의 interface 한꺼번에 로.. 2024. 5. 24. #17 / remind3 ⚡ abstract/* [응용문제 1] 추상클래스 응용 - ex_ab.java 해당 프로세서를 실행시 현재 날짜와 시간이 출력되는 코드를 작성하시오. 단, 해당 날짜와 시간은 abstract에서 return 받아서 출력되도록 합니다. 결과 : 2024-05-24 09:45:22 */public class exam20 { public static void main(String[] args) { new ex20_box(); }}class ex20_box extends ex_ab{ public ex20_box() { System.out.println(this.ex20_abs("yyyy-MM-dd hh:mm:ss")); System.out.println(this.ex20_abs("yyyy-MM-dd"));.. 2024. 5. 24. abstract 정리 추상 클래스(abstrack) => extends 이용하여 로드 abstrack 사용 목적 : 코드 은닉화, 통일성- 제작시 사용성이 최대한 좋게 하는게 좋다 ( 공용파일이라고 생각하고 제작 )Override : 추상클래스에서 선언한 메소드(상속)Overload : 추상클래스 외에 메소드 생성해서 사용(상속 x)주의사항(규칙)abstract 내 메소드 : default,public,protected는 사용가능 (private 사용 불가)override 활용 - 써도 되고 안써도 됨필드에 변수 선언 : public,protected 사용가능 (단, abstract에서 private으로 처리하는 변수일 경우 사용 가능)abstract에서 즉시실행 메소드는 abstract를 붙이지 않는다즉시실행 메소드 호출 .. 2024. 5. 24. #16-2 / 서버 - TCP 해당 기능 제작시 무조건 서버 먼저 제작 -> 클라이언트 제작해야함 1. s : 내 서버 구축(port번호 정해서 socket open -> cmd로 열렸나 확인)2. c : client에서 접근 : Socket sk = new Socket(ip,port);3. c : OutputStream os = sk.getOutputStream : 클라이언트 -> 서버로 전송하는 역할 4. s : InputStream is = sk.getInputStream : 클라이언트에서 적용된 메세지를 받는 역할 ⚡ 네트워크 url 정보 현황해당 페이지 크롤링 되어서 html파일 생성public static void main(String[] args) { String url = "https://nain.co.. 2024. 5. 23. #16-1 / network 🔥 [ 알아야함 ]ip or 도메인주소Port 정보 포트 중복사용 불가 - 단, TCP와 UDP가 구분될 경우 가능(cmd로 열려있는지 닫혀있는지 확인 netstat -an)TCP : 외부 연결 프로토콜 (전송속도 빠름)UDP : 내부 연결 프로토콜 (전송속도 느리나 1:1일 경우 TCP보다 빠름)[ network ]예외처리 필수Inet4Address,Inet6Address : ipv4,ipv6 ( InetAddress : 부모 , 무조건 엄마먼저 써야함) -> new 안씀⚡ ip 확인//getByName : 접속할 도메인 또는 ip 주소명 출력 InetAddress ia = Inet4Address.getByName("localhost");System.out.println(ia); //localhost/12.. 2024. 5. 23. io.. 헷갈리는... 👀 기억하는애 Buffer ex) io 사용시 좀더 빨리 가져오기 위함 - FileReader => BufferedReader 👀 가져오거나 저장하는애Stream(InputStream,OutputStream) -> 바이너리(이미지 , 동영상, 오디오, pdf,zip 등..) Stream은 byte단위로 변환 후 집어넣어야 함!byte[] data = ag.getBytes();InputStream 사용시 read 필수 FileReader,FileWriter -> ASCII ⚡ Writer ,Reader ( ASCII 전용 )FileReader : 문자 데이터 즉 (ASCII)만 해당 / 읽기 - BufferedReaderFileWriter : 문자 데이터 저장파일 ,(ASCII)만 해당 / .. 2024. 5. 22. #15-3 / csv 데이터 저장 ❗ csv 파일은 UTF-8 언어셋을 사용하지 않음 : EUC-KR로 변환 필요 txt 파일 문서파일 외에 한글 깨짐이 발생할 경우 FileWriter(파일경로,언어셋,이어쓰기여부)❗ csv 특성 : , 로 구분함 ⚡ csv 데이터 추가//csv 데이터 저장public class file20 { public static void main(String[] args) { new file_csv("member.csv"); //,쉼표 형태 csv여야 함 }}//writer로 csv파일에 사용자 추가class file_csv{ String file_src = ""; //파일 위치 및 파일명 File f = null; FileWriter fw = null; BufferedWriter bw = null; p.. 2024. 5. 22. #15-2 / StreamWriter,StreamReader Stream의 기본은 byte , Reader의 기본은 stringread를 사용하면 buffered에는 1개 loss데이터 발생⚡ InputStreamReader InputStreamReader : Stream + Reader,변환 가능한 라이브러리public static void main(String[] args) { try { //InputStreamReader : Stream + Reader,변환 가능한 라이브러리 System.out.println("입력값 : "); InputStreamReader isr = new InputStreamReader(System.in); //int data = isr.read();//read를 사용하면 buf.. 2024. 5. 22. 해당 디렉토리에 있는 모든 filelist를 가져오는 코드 서버에 업로드시 동일한 이름이 이미 있을 경우 해당 부분을 조건문으로 처리하여 다른이름으로 저장되도록 하기 위해 사용public void directory() throws Exception{ String url = "D:\\product\\"; File f = new File(url); File allfile[] = f.listFiles(); System.out.println(Arrays.asList(allfile));} 2024. 5. 22. substring .substring(단어시작 노드번호,검색할 단어갯수-생략시 전체갯수)//파일속성public void property() throws Exception{ String url = "D:\\product\\pd1.jpg"; File f = new File(url); System.out.println(f.getName()); //파일명을 가져와라 //파일 속성명(확장자)만 가져오기 String filename = f.getName(); //해당 단어를 기준으로 맨 마지막에 해당되는 단어 노드번호 int n = filename.lastIndexOf("."); //(단어시작 노드번호,검색할 단어갯수-생략시 전체갯수) String modify = filename.su.. 2024. 5. 22. #15-1 / 이미지(binary) * 이미지(binary) - stream으로만 가능 * stream 사용시 유의사항 1. byte[] 변환 필요 2. InputStream 사용시 read 필수 3. write를 이용할 경우 flush 사용하면 에러가 적다 : 한번 초기화해줌⚡ 이미지 복사-반복문 없이 처리public static void main(String[] args) { try { String img = "D:\\webpage\\agree\\src\\main\\java\\io\\img.jpg"; //원본이미지 FileInputStream fs = new FileInputStream(img); //파일을 로드 byte[] by = new byte[fs.available()]; //이미.. 2024. 5. 22. #14-3 / Stream 활용법 Reader ,Writer,File -> ASCII 전용 Stream -> 바이너리(이미지 , 동영상, 오디오, pdf,zip 등..) Stream은 byte단위로 변환 후 집어넣어야 함! byte[] data = ag.getBytes(); InputStream(입력) 부모 - 하위: FileInputStream , AudioInputStream, ObjectInputStream..등 자식 OutputStream(출력) 부모 - 하위: FileOutputStream..등 자식 ⚡ FileInputStream FileInputStream : io - buffer 필수대상 파일을 로드 한 후 해당 내용을 byte로 변환하여 결과 출력 (입력 X) - 걍 출력만 함available() : 파일 용량 (byt.. 2024. 5. 21. Git setting Cmd등록 :git config --global user.name ""git config --global user.email ""확인 : git config user.name git config user.email Git 프로그램 설치 Github 로그인 => git 사용 이름,git 사용 이메일 정보 겟 =>토큰 제작(패스워드) - admin:ssh_signing_key 빼고 체크=> Git repository( ? 자료를 공유할 수 있는 공간)에 참여,혹은 만들기 => 아이디,패스워드 등록 => repository 생성 STSshow view create new local .. - 경로(src)remotes 우클릭 - create remote - uri , 비밀번호 등록 -> save and .. 2024. 5. 21. #14-2 / nio ⚡ Files(nio 형태) 이용한 파일 내용을 배열에 저장 File : io / Files : nio(Buffer 장착) => (https://dev-eunse.tistory.com/3) 참고io,nio 둘중 하나만 사용 ! - 알아서 선택Files : new 작성할필요 x - 어차피 메모리에 저장되기때문에- nio 방식 public static void main(String[] args) { String url = "D:\\webpage\\agree\\src\\main\\java\\io\\agree.txt"; try { //List interface 구성 형태로 nio 배열 저장 List data = new ArrayList(); //List로만 사용 가능 .. 2024. 5. 21. byte단위 배열 데이터 출력 ⚡ byte를 이용한 배열형태 -> 문자열로 변환String word = "abc";byte data2[] = word.getBytes(); //ASCII 코드로 배열에 저장System.out.println(Arrays.toString(data2)); //[97, 98, 99] 출력String unbox = new String(data2); //언박싱System.out.println(unbox); //abc 출력 2024. 5. 21. #14-1 / FileReader => Buffer Buffer : 메모리를 활용하여 데이터를 출력 또는 입력(temp : 임시저장소)buffer는 기억하는애FileReader fr = new FileReader(url);System.out.println((char)fr.read());//파일을 읽을때 해당 방식은 텍스트 파일의 한글자만 출력됨..▶ 이걸 개선한게 Buffer ⚡ BufferFileReader fr = new FileReader(url);BufferedReaderbr = new BufferedReader(fr); ( 이걸 맞춰주면 에러날일 X , buffer가 먼저 나올 순 없음)👀주의- reader(or write) 선언 후 buffer 선언- Buffer는 임시 저장된 공간의 데이터이므로 read 또는 readLine() 사용시 .. 2024. 5. 21. 12. io와 nio의 차이점 https://dev-coco.tistory.com/42https://velog.io/@jihoson94/BIO-vs-NIOhttps://blog.naver.com/rain483/220636709530 👀 io블로킹 방식Blocking API란 API를 호출한 Thread가 API의 작업이 끝날 때까지 다른 동작을 하지않는 API를 블록킹이라고 합니다.하나의 thread가 read() or write()를 발생시킬때, 해당 thread는 데이터를 읽을 때까지 혹은 데이터를 적을때까지 blocked. 막혀있습니다.Blocking API들은 반환값을 받을 때까지(작업이 끝날 때) Blocking 되기 때문에 해당 Thread는 idle상태로 유지되게 됩니다. -IO 스레드가 블로킹되면 다른 일을 할 수 없.. 2024. 5. 21. 이전 1 ··· 5 6 7 8 9 10 11 다음