Purple Bobblehead Bunny

Backend/JSP SERVLET 16

[JSP] webapp, WEB-INF

webapp 폴더 안의 welcome.jsp와 webapp폴더의 하위 폴더인 WEB-INF 폴더 안에 Login.jsp가 있다. webapp안의 welcome.jsp 실행 WEB-INF 폴더 안의 Login.jsp 실행 다음과 같이 webapp의 welcome.jsp는 실행이 되지만, WEB-INF의 Login.jsp는 접근이 되지 않는다. webapp폴더에 파일이 있을 경우 로직 없이도 가상의 결과물을 만들어 직접적으로 살펴볼 수가 있다. 반대로 WEB-INF 폴더의 경우에는 브라우저에서 직접적으로 접근이 불가하다. 이렇게 서로의 장단점을 유추할 수 있다. webapp 장점 jsp파일을 바로 접근할 수 있다. 앞에서 확인한 결과 jsp 파일의 경과를 바로 볼 수 있다. 단점 webapp폴더로 작성을 완..

Backend/JSP SERVLET 2022.07.27

[Servlet] doGet, doPost

form 태그를 이용해 클라이언트의 데이터를 입력 받고 서버에 request하는 작업을 수행하기 위한 양식을 만든다. 주 목적은 데이터 전송이기 때문에 input 태그와 같이 사용한다. action : 데이터를 전송 할 URL(or 매핑 값) method : 데이터를 전달하는 방식 (GET, POST) Post 주소창에는 데이터가 보여지지 않아서 보안에 강하다 로그인 정보 같은 것 들을 넘길 때 사용 Get 데이터를 사용자가 그대로 볼 수 있어서 보안에 취약하다. Get 방식은 Post 방식에 비해 빠르다는 장점이 있다. 자주 쓰는 메서드 request.getCookies(); 쿠키 가져오기 request.getSession(); 세션 가져오기 request.getAttribute(); request 속..

Backend/JSP SERVLET 2022.07.04

[Servlet] 서블릿 이해

서블릿 서버 쪽에서 실행되면서 클라이언트의 요청에 따라 동적으로 서비스를 제공하는 자바 클래스 다양한 클라이언트 요청에 의해서 동적인 콘텐츠(content)로 응답 가능한 자바 기반의 웹 컴포넌트 서버에서 실행되다가 웹 브라우저에서 요청을 하면 해당 기능을 작업한 후 웹 브라우저에 결과 전송 서버에서 실행이 되기 때문에 보안과 관련된 기능도 안전하게 작업 가능 서블릿 웹 컴포넌트 특징 자바 기반의 웹 컴포넌트로서 java 확장자를 가짐 클라이언트의 요청에 의해 동적으로 실행(다양한 클라이언트 요구 사항을 처리 가능) 클라이언트는 브라우저를 이용한 URL 지정을 통해 서블릿에 요청 가능 서블릿의 응답 결과는 일반적으로 HTML 형식으로 서비스(자바 코드를 이용해 클라이언트에 HTML 코드로 전송하는 추가 ..

Backend/JSP SERVLET 2022.07.04

[JSP] JDBC

JDBC(Java Database Connectivity) 자바 프로그램과 관계형 데이터 베이스를 연결하는 인터페이스 - JDBC 라이브러리는 관계형 데이터베이스에 접근하고 SQL 쿼리문을 실행하는 방법을 제공한다. JDBC 드라이버 테스트 Connection 객체 DB를 연동 해 여러 작업을 하기 위해 필요. DriverManager 객체의 getConnection 메서드를 호출하여 매개값으로 호스트 이름과 포트,SID의 접속 정보가 들어있는 url, 접근할 테이블이 있는 계정의 아이디, 비밀번호를 받아 Connection 객체를 생성한다. Class 클래스의 forName 메서드 입력한 클래스를 불러오는 메서드로, 그 클래스에 접근 가능하게 해준다. ojdbc6.jar 안의 oracle.jdbc 패키..

Backend/JSP SERVLET 2022.07.02

[Servlet]MVC Pattern

디자인 패턴 소프트웨어를 설계할 때 특정 맥락에서 자주 발생하는 고질적 문제가 또 발생 했을 때 재사용할 수 있는 해결책 이미 만들어 진 것을 처음부터 다시 만들 필요가 없다는 의미 패턴은 공통의 언어를 만들어주며, 팀원 사이의 의사 소통을 원활하게 해주는 중요한 역할을 한다. 디자인 패턴 종류 생성(Creational) 패턴 구조(Structural) 패턴 행위(Behavioral) 패턴 추상 팩토리(Abstract Factory) 빌더(Builder) 팩토리 메서드(Factory Method) 프로토 타입(Prototype) 싱글톤(Singleton) 어댑터(Adapter) 브리지(Bridge) 컴퍼지트(Composite) 데커레이터(Decorator) 퍼사드(Facade) 플라이웨이트(Flyweig..

Backend/JSP SERVLET 2022.07.01

[JSP] 쿠키, Cookie

쿠키(Cookie) 클라이언트와 웹 서버 간의 상태를 지속적으로 유지하는 방법 쿠키는 상태 정보를 클라이언트에 저장 ex) 어떤 웹 사이트를 처음 방문한 사용자가 로그인 인증을 하면 아이디와 비밀번호를 기록한 쿠키가 만들어지고 그 다음부터 사용자가 동일한 사이트에 접속하면 별도의 절차 없이 쉽게 접속이 가능 클라이언트의 일정 폴더에 정보를 저장하기 때문에 웹 서버의 부하를 줄일 수 있다. 웹 브라우저가 접속했던 웹 사이트에 관한 정보와 개인 정보가 기록이 되기 때문에 보안에 취약하다. 쿠키의 동작 과정 생성 단계 쿠키는 주로 웹 서버 측에서 생성 생성된 쿠키는 응답 데이터에 함께 저장되어 웹 브라우저에 전송 저장 단계 웹 브라우저는 응답 데이터에 포함된 쿠키를 쿠키 저장소에 보관 쿠키는 종류에 따라 메모..

Backend/JSP SERVLET 2022.06.30

[JSP] request.getParameter(), getAttribute()

request.getParameter() 메서드는 HTTP 요청의 파라미터 값을 얻기 위해 사용하는 것이다. 로그인 폼에 ID를 입력하는 가 있고, 서블릿에서 String strId = request.getParameter("id"); 와 같은 방식으로 클라이언트가 입력한 ID가 뭐였는지 알 수 있다. 로그인에 성공을 했다면, 서블릿은 회원정보를 JSP에게 보내줘야 한다. 여기서 다른 곳으로 정보를 넘겨주기 위해서 request 객체의 속성(Attribute)를 사용한다. 회원 정보 중, '휴대폰번호'를 JSP에게 넘겨주기 위해서 서블릿에서 request.setAttribute("phone",strPhone); 로 속성을 집어넣고, JSP에서 로 속성을 얻어온다. 둘의 가장 큰 차이점은 리턴 타입이다. ..

Backend/JSP SERVLET 2022.06.28

[JSP] 세션(Session)

세션 클라이언트와 웹 서버 간의 상태를 지속적으로 유지하는 방법 웹 쇼핑몰에서 장바구니나 주문 처리 사용자 인증을 통해 특정 페이지를 사용할 수 있도록 권한 상태를 유지하는 것. 웹 서버에서만 접근이 가능하므로 보안 유지에 유리하며 데이터를 저장하는 데 한계가 없다. 웹 서버에 존재하는 객체로 웹 브라우저마다 하나씩 존재 웹 서버의 서비스를 제공받는 사용자를 구분하는 단위가 된다. 웹 브라우저를 닫기 전까지 웹 페이지를 이동하더라도 사용자의 정보가 웹 서버에 보관되어 있어 사용자 정보를 잃지 않는다. 세션 생성 setAttribute() 메서드를 사용하여 세선의 속성을 설정 - 계속 세션 상태를 유지할 수 있다. 동일한 세션의 속성 이름으로 세션을 생성하면 마지막에 설정한 것이 세션 속성 값이 된다. v..

Backend/JSP SERVLET 2022.06.28

[JSP] 내장 객체(implicit object)

내장 객체(implicit object) JSP 페이지에서 사용할 수 있도록 JSP 컨테이너에 미리 정의된 객체 JSP 페이지가 서블릿 프로그램으로 번역될 떄 JSP 컨테이너가 자동으로 내장 객체를 멤버 변수, 메서드 매개변수 등의 각종 참조 변수(객체)로 포함 JSP 페이지에 별도의 import 문 없이 자유롭게 사용 가능 스크립틀릿 태그나 표현문 태그에 선언을 하거나 객체를 생성하지 않고도 직접 호출하여 사용 가능 request 내장 객체 JSP 페이지에서 가장 많이 사용되는 기본 내장 객체 웹 브라우저에서 서버의 JSP 페이지로 전달하는 정보를 저장 폼 페이지로부터 입력된 데이터를 전달하는 요청 파라미터 값을 JSP 페이지로 가져옴 JSP 컨테이너는 웹 브라우저에서 서버로 전달되는 정보를 처리하기 ..

Backend/JSP SERVLET 2022.06.28

[JSP] useBean, setProperty, getProperty

JavaBean java파일로(객체)를 생성하고, jsp 필요에 따라 class를 가져다 쓰는데 이 때 class(객체)를 빈 이라고 부른다. 반복적인 코드를 따로 작성할 수 있께 하여 코드를 재사용하기 위한 기술이다. 자바빈즈 액션태그 빈 관련 태그 설명 빈을 생성하여 둔다. 빈에 값을 저장한다. 빈의 값을 가져온다. Scope 종류 종류 설명 page 해당 jsp페이지 내에서만 존재 request 사용자의 요청을 처리하는 동안에만 존재 session 사용자가 최초에 접속하여 접속이 종료되기 전 까지 존재 application 해당 어플리케이션이 살아있는 동안 함께 존재 빈 생성 class login { private String id; // property private String passwd; /..

Backend/JSP SERVLET 2022.06.27