본문 바로가기

DevDevDev172

#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.
study git - source https://github.com/mekeyace/java-basic 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.