분류 전체보기

    HTML parsing - 타 사이트 정보 가져와서 DB에 저장

    HTML parsing - 타 사이트 정보 가져와서 DB에 저장

    시작하기에 앞서 DOM의 개념과 HTML parsing 개념을 대충 정리하고 시작해보자. 2022.03.25 - [분류 전체보기] - DOM(Document Object Model) - 문서 객체 모델 기초개념 DOM(Document Object Model) - 문서 객체 모델 기초개념 DOM이란? 문서 객체 모델은 XML이나 HTML문서에 접근하기 위한 일종의 인터페이스이다. + dom은 문서 내의 모든 요소를 정의하고, 각각의 요소에 접근하는 방법을 제공한다. DOM의 종류 Core DOM : 모든 dys-r.tistory.com HTML parsing : String으로 받아온 HTML 파일을 DOM객체(HTML DOM)로 변환 후 원하는대로 Parsing ------예제 시작------- 목표 타..

    DOM(Document Object Model) - 문서 객체 모델 기초개념

    DOM이란? 문서 객체 모델은 XML이나 HTML문서에 접근하기 위한 일종의 인터페이스이다. + dom은 문서 내의 모든 요소를 정의하고, 각각의 요소에 접근하는 방법을 제공한다. DOM의 종류 Core DOM : 모든 문서 타입을 위한 DOM모델 HTML DOM : HTML문서를 위한 DOM모델 XML DOM : XML문서를 위한 DOM모델

    자바스크립트 소스코드 난독화 !

    자바스크립트 소스코드 난독화 !

    우리가 구현한 웹에 누군가 들어와 소스보기만 해도 script내에 소스가 그대로 노출되는 경우가 있다. 이에 대해 악의적인 의도를 가진사람이 CSRF(Cross-Site Request Forgery)나 XSS(Cross-Site Scripting)를 통해 여러분의 어플리케이션에서 코드가 실행된 것처럼 꾸며서 사용자의 정보를 탈취하기가 너무나도 쉬워진다. 난독화는 말그대로 난독화일 뿐 암호화가 아니니 암호화를 생각한다면 CORS policy, SOP 정책을 더 살펴보자. -난독화 결과 웹에서 확인. -기존에 있던 reply.js 파일 본문을 복사해서 https://www.toptal.com/developers/javascript-minifier/ JavaScript Minifier JavaScript Mi..

    [JAVA_SERVLET] 파일 업로드 (다중업로드, 자동 요일별분류)

    [JAVA_SERVLET] 파일 업로드 (다중업로드, 자동 요일별분류)

    작업에 필요한 라이브러리! 1. Controller - FileUpload package test; import java.io.File; import java.io.IOException; import java.text.SimpleDateFormat; import java.util.List; import java.util.UUID; import javax.servlet.ServletException; import javax.servlet.annotation.WebServlet; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletRespons..

    [JAVA_SERVLET] 회원 목록 조회 (+DB 연동)

    [JAVA_SERVLET] 회원 목록 조회 (+DB 연동)

    1. 데이터 베이스 테이블 생성(커밋 필수) 2. 테이블 스페이스 생성, 권한부여 3. JSP 아이디 비밀번호 이름 이메일 가입일 삭제 ${member.id} ${member.pwd} ${member.name} ${member.email} ${member.joinDate} 삭제 4. DBconn package utils; import java.sql.Connection; import java.sql.DriverManager; import java.sql.SQLException; public class DBConn { // 이제 갖다쓰면 된다! 일일이 안만들어도됨! public static Connection getConnection() throws SQLException, ClassNotFoundExce..

    [JSP] 로그인 기능, 창 만들기 (bootStrap5 적용), 유효성 검사

    [JSP] 로그인 기능, 창 만들기 (bootStrap5 적용), 유효성 검사

    1. Controller package ex01; import java.io.IOException; import javax.servlet.ServletException; import javax.servlet.annotation.WebServlet; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; @WebServlet("/login2") public class Login2 extends HttpServlet{ @Override protected void doGet(HttpServletRequest req, HttpServ..

    [JAVA_SERVLET] 서블릿을 이용한 환율 계산기.

    [JAVA_SERVLET] 서블릿을 이용한 환율 계산기.

    모델(Model), 뷰(View), 컨트롤러(Controller) 따로 mvc패턴으로 구분을 두지않고 한번에 모두 만들어봤다. 1. 환율계산기 package ex01; import java.io.IOException; import java.io.PrintWriter; import javax.servlet.ServletException; import javax.servlet.annotation.WebServlet; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; @WebServlet("/calc") public class..

    [JAVA] 입출력( Input / Output ) - 바이트기반, 문자기반 입력스트림의 차이점

    [JAVA] 입출력( Input / Output ) - 바이트기반, 문자기반 입력스트림의 차이점

    본 예제는 문자기반과, 바이트기반의 차이점을 보기 위한 예제이다. 본 코드를 실행하면 내가 해당 파일 입력한 모든 문자를 읽어서 총 글자수가 얼마인지 보여줄것이다. 바이트기반 입력스트림은 해당 파일의 byte수와 동일한 반면, 문자기반 입력스트립은 수가 더 작다. 그 이유는 utf-8에서 문자는 1글자당 3byte를 차지하기 때문이다.

    [DB_ORACLE] 디비_오라클 계정, 권한에 관한 기능 구현

    [DB_ORACLE] 디비_오라클 계정, 권한에 관한 기능 구현

    계정 생성하기 CREATE USER 유저ID IDENTIFIED BY "비밀번호"; 유저id는 까먹으면 안된다! 계정 비밀번호 변경 ALTER USER "유저ID" IDENTIFIED BY "비밀번호"; 계정 삭제 DROP USER "유저ID" CASCADE; + drop은 매우 강력한 명령어!(테이블, 시퀀스 등에도 적용 가능!) + CASCADE 명령어로 관련 SCHEMA 를 모두 삭제 가능! 모든 계정 조회 SELECT * FROM ALL_USERS; SELECT * FROM DBA_USERS; 시스템 권한 리스트 CREATE USER : 데이터 베이스 유저 생성 권한 SELECT ANY TABLE : 모든 유저의 테이블 조회 권한 CREATE SESSION : 데이터베이스 접속 권한 CREATE ..

    [JAVA_SERVLET] .jsp 적용이 안된 경우

    [JAVA_SERVLET] .jsp 적용이 안된 경우

    자바에서 동적웹프로그래밍 예제를 만들어 보던 도중 이렇게 .jsp에서 만들어준 틀이 들어가지 않고 흐트러진 상황이 발생해서 어느 곳이 잘못된곳인고 하니, 테이블 태그가 이미 닫혀있는 상태에서 작업을 했다. 정상적으로 테이블태그를 닫아주니, 원하던대로 정상 적용 완료! 완성코드 다시 보자.