Back End

Back End/Java

Java 프로젝트 초기설정하는 방법

너무 Spring 만 사용했더니 일반 자바파일 생성하는 방법을 까먹어가서 정리하는 자바 프로젝트 생성방법이다. 별건 없음. 자바 프로젝트 생성하기 1. 새 자바 프로젝트를 생성한다. 2. 새 자바 프로젝트에 패키지 생성 패키지는 생성하지 않아도 (default)로 패키지가 할당된다. 3. 생성한 패키지 밑에 Class 생성 클래스를 생성할 때 public static void main (String[] args)에 체크를 해주면 좋다. 안해도 상관은 없지만, 자바 파일만 사용하면 나중에 따로 작성해주어야 한다. 결과 그럼 다음과 같은 경로로 결과가 나온다! 이제 저 안에 원하는 코드를 작성하면 된다.

Back End/Spring

RestApi, Spring JWT 토큰기반 인증(로그인)

그동안 로그인 유지에 세션을 사용하였었다.하지만 RestApi 는 stateless(상태 유지 안함)이기 때문에 세션과는 맞지 않는 특성을 가지고 있다. 그렇기 때문에 rest-api 에서는 로그인 유지로 token을 사용한다. 토큰에 정보를 담아서 암호화 ➡️ 복호화 한다. 인증을 통과한 유저에게 생성한 토큰을 주고, 유저는 받은 토큰을 요청 헤더에 담아서 보낸다. 사용방법 pom.xml에 의존성을 추가한다. io.jsonwebtoken jjwt-api 0.11.5 io.jsonwebtoken jjwt-jackson 0.11.5 runtime io.jsonwebtoken jjwt-impl 0.11.5 runtime demo 패키지 밑에 패키지 생성, jwttokenprovide 파일을 넣어준다. pac..

Back End/Spring

Spring 실행 시 Oracle Insert 문으로 데이터 '한번만' 삽입

문제상황 프로젝트에서 teacher이 회원가입 할 때 class가 null 이면 회원가입이 안되는 오류가 있어, class에서 기본적으로 '무소속' 값을 하나 가지고 있어야 했다. 그런데, 클래스를 생성하려면 선생님이 로그인을 해야하는 상황이다. 여기서 문제가 발생했다. 만약 선생님이 한명도 없고, 클래스도 한명도 없는 초기 상황에서 선생님은 어떻게 회원가입을 할 것인가? 회의에서는 ... 실행하자마자 선생님을 한명 넣자 (관리자) 실행하자마자 클래스를 하나 넣자 class가 null이 가능하도록 하자. 회의 결과는 2번이었다. 무소속을 처음부터 집어넣고 시작하자고 했다. Teacher table의 classnum은 다음과 같은 방식으로 입력하였다. https://skylarcoding.tistory.c..

Back End/Spring

Spring 초기 환경설정 (application.properties, pom.xml)

application.properties 프로젝트를 새로 생성하면 자동으로 application.properties가 생성된다. 프로젝트의 환경설정 부분으로, 애플리케이션의 설정을 구성하는 데 사용되는 속성 파일이다. 아래와 같이 사용한다. 필요할때마다 필요한 설정을 추가해서 사용하면 된다. # port. 서버 포트 설정 server.port=8082 # JSP view spring.mvc.view.prefix=/WEB-INF/views/ spring.mvc.view.suffix=.jsp # oracle set. 데이터 베이스 연결 설정 spring.datasource.driver-class-name=oracle.jdbc.OracleDriver spring.datasource.url=jdbc:oracle..

Back End/Spring

Spring Boot 와 Spring의 기본 개념

Spring 자바 기반 웹 프로그래밍에서 많이 활용되는 프레임웍 (프로그램의 기본 뼈대와 api를 구축해놓은 미들웨어) Spring boot spring 을 경량으로 최적화한 프레임웍 spring 보다 훨씬 간편하고 서버를 stand alone 으로 사용한다. 하나의 서버에 하나의 어플리케이션만 돌아간다. 즉, 프로젝트 하나만 돌아가기 때문에 (stand alone) 경로에 프로젝트 이름을 작성할 필요가 없다. application.properties # port server.port=8081 # JSP view //앞뒤에 붙는 prefix, subfix 지정 spring.mvc.view.prefix=/WEB-INF/views/ spring.mvc.view.suffix=.jsp # oracle set s..

Back End/Java

[Java] 자바 입출력스트림

자바 입출력스트림 바이트 스트림 한 바이트씩 읽고 씀 1) InputStream 입력 스트림 FileInputStream ( 파일에서 1바이트씩 읽는 스트림) int read() : 파라메터 없는 read 1 byte 읽어서 int 타입으로 반환한다. int read(byte[]) : int 타입, byte 배열을 파라메터로 받는 메소드 파라메터로 넣은 배열 크기만큼 읽어서 배열에 저장. 읽은 바이트 수를 반환 int read(byte[], offs, size) size만큼 읽어서 배열에 저장 저장 시작 위치를 offs 로 지정 읽은 바이트 수를 반환 2) OutputStream 출력 스트림 FileOutputStream ( 파일에서 1 바이트씩 출력 스트림) ✎ 1 바이트 : 영어 한 개씩 void w..

Back End/Servlet

[Servlet] Dispatcher Servlet 디스패처 서블릿 정리

Dispatcher Servlet 이전에는 하나의 jsp마다 Servlet을 만들어 사용했다. 그러한 번거로움을 해결하기 위해 Dispatcher Servlet을 이용하는 법을 배웠다. (맞나?) 아래의 파일과 폴더들을 만들 것이다. 이 포스팅의 handler.member 에서는 join만 할테니 나머지는 혼자 해보도록 하십쇼~ 포항항 Java Resources - src/main/java - handler / handler.member / req src - main - webapp - member src - main - webapp - web-inf - lib - commands.properties Handler.java Handler.java 는 interface이다. 앞으로 이 인터페이스는 모든 요..

Back End/AJAX

[AJAX/JSON] 댓글 기능 만들기 1, 게시판 만들기

댓글 작성 기능은 두가지 방법이 있다. 1. 댓글 테이블을 따로 만들지 않는 방법 2. 댓글 테이블을 따로 만드는방법 이번 포스팅에서는 댓글 테이블을 따로 만들지 않는 방법을 이용한다. 댓글 테이블을 따로 만들지 않는 법 댓글 테이블을 따로 만들지 않는 방법은 댓글도 게시글처럼 올릴 수 있도록 하고 원글번호랑 연결하여 댓글이 원글번호에서만 나오도록 하는 방법이다. 1. 원글번호 객체 추가 private int parent 먼저 기본 보드 Vo에 private int parent;를 추가한다. parent는 댓글에서 원글번호를 알 수 있도록 나타내주는 변수이다. 2. 생성자, getter, setter 선언 이미 만들어진 board의 기능들까지 수정할 필요 없도록 parent 를 포함한 새로운 생성자를 추..

Back End/AJAX

[AJAX/JSON] ID 중복 체크 기능 , 회원 기능 만들기

1. AJAX 미사용 join.jsp (id중복체크 버튼) IdCheck.java (객체 생성해 아이디 비교 후 true,false 결과값 도출) String id = request.getParameter("id"); MemberService service = new MemberService(); MemberVo vo = service.getMember(id); 서비스 객체를 생성해서 서비스의 getMember 기능 사용. => 아이디(id) 검색 boolean flag = (vo==null); request.setAttribute("flag", flag); 만약, vo가 null 이면 null == null :true 값이 나온다. 반대의 경우엔 false. flag를 setAttribute로 보낸다...

Back End/AJAX

AJAX 동기, 비동기(get,post) 요청

AJAX (비동기 자바스크립트와 xml) 웹 동기 요청 : 요청을 보내면 응답페이지를 받아온다. 전체 페이지가 바뀐다. 웹 비동기 요청 : 응답페이지가 출력된 상태에서 요청을 보낸다. 페이지 이동이 없고 결과로 텍스트, json,xml 데이터를 받는다. 이 데이터를 파싱해서 Dom으로 페이지 일부만 수정한다. 차이 동기 : 새로운 페이지로 결과값을 보낸다. 비동기 : 해당 페이지에서 할당된 공간에 결과값을 보낸다. 서버에서 요청에 대한 응답이 오면 결과 페이지로 이동하는지, 아니면 결과를 텍스트로 받아와 현재 페이지에 결과를 보여주는지에 대한 차이다. 웹 동기 요청 name : 비동기 요청 방법 1. 비동기 request 객체를 생성한다. const xhttp = new XMLHttpRequest(); ..

Lar
'Back End' 카테고리의 글 목록 (4 Page)