Cute Hello Kitty Kaoani

WebServer/JSP&Servlet

WebServer/JSP&Servlet

[JSP&Servlet] JSTL (JSP Standartd Tag Library)

JSP에서는 사용자가 필요하면 tag를 자체적으로 만들어 사용할 수 있다. Apache에서는 메우 유용한 커스텀 태그를 제공하고 이 것을 JSTL이라 한다. ⚙️ 환경설정 프로젝트의 WEB-INF/lib 폴더에 jstl.jar standard.jar 파일 추가 제공 라이브러리 라이브러리 URI Prefix Core http://java.sun.com/jsp/jstl/core c XML Processing http://java.sun.com/jsp/jstl/xml x I18N formatting http://java.sun.com/jsp/jstl/fmt fmt SQL http://java.sun.com/jsp/jstl/sql sql Functions http://java.sun.com/jsp/jstl/fu..

WebServer/JSP&Servlet

[JSP&Servlet] EL (Expression Language)

데이터를 웹 브라우저에 출력하기 위한 문법으로서 다른 출력방법과 비교하여 훨씬 사용하기 쉽게 구성되어 있다. 서블릿에서 setAttribute(key, value) 메서드를 통해 scope에 저장된 데이터 값을 JSP에서 브라우저에 매우 편리하게 출력하는 용도로 사용한다. ${key} null 값을 비어있는 값으로 처리 ➡️ NullPointerException 발생 X null 여부 확인 방법: ${empty xxx} DTO에 저장한 경우 ${key.변수명} 형식으로 사용한다. 단, 조건 및 반복 처리를 못한다. ➡️ JSTL를 이용 🧩 테스트 서블릿에서 scope에 데이터를 저장한다. package com.controller; @WebServlet("/ELServlet") public class EL..

WebServer/JSP&Servlet

[JSP&Servlet] JSP 태그

JSP는 자바 코드 사용과 관련하여 다섯 가지의 스크립트 기반 태그를 제공한다. 태그 형태 의미 주석문(Comment tag) 주석처리 지시자(Directive tag) JSP 페이지에서 설정 가능한 속성들을 지시 선언문(Declaration tag) 변환된 서블릿의 멤버 변수와 메서드 선언 수행문(Scriptlet tag) 실행될 자바 코드 작성 표현식(Expression tag) 브라우저에 출력할 데이터 설정 💡 서버는 브라우저가 요청한 JSP파일을 찾아 서블릿 클래스로 변환한다. 이후 서블릿 객체와 동일하게 서블릿 컨테이너에 의해 생성되고 관리된다. hello.jsp ➡️ hello_jsp.java ➡️ hello_jsp.class ➡️ 실행결과는 html로 반환 지시자 Directive tag J..

WebServer/JSP&Servlet

[JSP&Servlet] 파일 업로드 (File upload)

개요 Apache 그룹에서 제공하는 Commons Fileupload 라이브러리를 이용하여 파일 업로드 기능을 구현한다. Apache Commons – Apache Commons Welcome to Apache Commons Apache Commons is an Apache project focused on all aspects of reusable Java components. The Apache Commons project is composed of three parts: The Commons Proper - A repository of reusable Java components. The Commons Sandbox - A commons.apache.org 💡 실행환경 Fileupload: comm..

WebServer/JSP&Servlet

[JSP&Servlet] 쿠키를 이용한 간단한 로그인&로그아웃

쿠키(Cookie)란? 클라이언트가 서버에 정보를 요청할 때 생성되는 상태정보 클라이언트에 데이터 저장 LoginServlet.java package com.servlet; @WebServlet("/login") public class LoginServlet extends HttpServlet { protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { // 1. 로그인 폼에서 전송되는 아이디와 비밀번호 입력하기 String userid = request.getParameter("userid"); String passwd = request.getPara..

WebServer/JSP&Servlet

[JSP&Servlet] 세션을 활용한 간단한 로그인&로그아웃

세션(Session)이란? 클라이언트가 서버에 정보를 요청할 때 생성되는 상태정보 서버에 데이터를 저장 LoginServlet.java package com.controller; @WebServlet("/login") public class LoginServlet extends HttpServlet { protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { // 1. 로그인 폼에서 전송되는 아이디와 비밀번호 읽어오기 String userid = request.getParameter("userid"); String passwd = request.getP..

WebServer/JSP&Servlet

[JSP&Servlet] 쿠키 관리 (Cookie)

쿠키(Cookie) 쿠키(Cookie)🍪는 사용자의 상태정보를 클라이언트에서 관리하는 메커니즘이다. 클라이언트에 정보가 저장되기 때문에 서버 부하가 크지 않으나 누구나 클라이언트에 접근할 수 있기 때문에 보안에 매우 취약하다. 쿠키 정보는 브라우저의 메모리 또는 OS 파일로 저장할 수 있다. 기본 저장은 브라우저 메모리기 때문에 브라우저를 종료하면 자동으로 쿠키 정보도 제거된다. Cookie API 이용 클라이언트(브라우저orPC)에 데이터 저장 저장되는 데이터는 문자열만 저장 가능 도메인(웹사이트)당 300개 까지만 저장 가능 클라이언트가 쿠키 사용 여부를 결정 time-out 지정 가능 사용자 인증이나 장바구니 기능에 주로 사용 Cookie API 메서드 설명 Cookie(name, value) 쿠키..

WebServer/JSP&Servlet

[JSP&Servlet] 세션 관리 (Session)

HTTP 기반으로 동작하는 클라이언트가 서버에 정보를 요청할 때 생성되는 상태정보를 세션이라고 한다. 세션을 통해 서버와 클라이언트 간의 지속적인 연결이 가능하다. 클라이언트는 지속적으로 서버에 특정 동작을 요청할 수 있으며 서버는 실행결과를 클라이언트에 응답할 수 있다. 등장배경 Http 프로토콜은 불특정 다수인 클라이언트와 지속적으로 연결하려면 웹 서버의 부하가 매우 크기 때문에 요청하고 응답 받으면 즉시 연결을 끊는 방식(connection-less, state-less)으로 동작이 된다. 이로인해 각 페이지마다 이전 페이지에서 했던 데이터 및 기능들을 현재 페이지에서 알 수가 없다. 즉, 첫 화면에서 선택한 물건을 장바구니에 담고 다음 페이지에서 결제할 때 이전화면의 장바구니에 담긴 정보를 확인할..

WebServer/JSP&Servlet

[Servlet] 요청 위임

클라이언트의 요청을 받은 서블릿에서 다른 컴포넌트(서블릿, JSP, html)로 요청을 위임할 수 있다. 직접 요청 받은 서블릿에서 모든 작업을 처리하지 않고 위임한 컴포넌트에서 특정 작업을 처리하여 모듈화가 가능하다. 위임 방식 HttpServletRequest 객체를 이용한 forward 방법 HttpServletResponse 객체를 이용한 redirect 방법 포워드 방식 (forward) 맨 처음 요청 받은 서블릿에서 생성된 HttpServletRequest 객체를 재사용하여 위임하는 방법으로 포워드(forward)라고 한다. 하나의 HttpServeltRequest 객체를 사용하기 때문에 request가 확장되어 포워드가 되었을 때 URL 변경이 안된다. request.getRequestDis..

WebServer/JSP&Servlet

[Servlet] 서블릿과 DB 연동 (MyBatis 활용)

※ 구현순서 아래 게시글 참고 [MyBatis] MyBatis 실행 순서 정리 ✍️ - SELECT 문 MyBatis는 자바 언어를 기반으로 데이터베이스 프로그래밍을 쉽게 할 수 있게 도와주는 SQL Mapper 프레임 워크로 데이터베이스와 자바 객체들 간의 상호 매핑을 단순화하고 SQL 쿼리를 실행하는데 gangintheremark.tistory.com 1. 벤더에서 제공해준 클래스파일(드라이버) 과 MyBatis 기능을 가진 jar 파일을 WEB_INF/lib 에 복사 2. XML 파일 작성 (Configration.xml, Mapper.xml) Configuration.xml: Mapper 설정정보 저장 Mapper.xml: SQL 쿼리 저장 select deptno, dname, loc from ..

WebServer/JSP&Servlet

[Servlet] Filter API

Filter API는 클라이언트에서 서버로 요청할 때, 서블릿이 요청을 받기 전과 응답하기 전에 특정 작업을 수행할 수 있도록 한다. 즉, 웹 컴포넌트가 실행되기 전의 선처리 작업과 응답되기 전의 후처리 작업을 수행하는 API이다. 다수의 Filter을 체인(chain)으로 묶어서 사용할 수도 있다. 필터 클래스 구현 package 지정 필수 Filter 인터페이스 구현 doFilter(ServletRequest request, ServletResponse response, FilterChain chain) 필터 맵핑 (web.xml) doFilter() 메서드에 실질적으로 필터가 제공할 사전 처리와 사후 처리 로직을 작성한다. package com.filter; public class MyFilter ..

WebServer/JSP&Servlet

[Servlet] 서블릿 스코프 (Scope)

Servlet에서 변수를 지정하고 객체에 담아 포워드하려면 객체가 어디까지 유지되는지 반드시 알아야한다. Servlet 스코프(scope)는 서블릿 속성에 접근할 수 있는 범위(Data 생성~소멸)를 의미하며 웹 어플리케이션에는 4개의 객체 범위가 존재한다. 1. Page scope 2. Request scope 3. Session scope 4. Application scope Request scope 클라이언트로부터 하나의 요청이 들어와 서버가 처리한 후 응답을 보낼 때까지 사용 가능 HttpServletRequest 객체 사용 request.setAttribute(String key, Object value); // 저장 request.getAttribute(String key, Object val..

gangintheremark
'WebServer/JSP&Servlet' 카테고리의 글 목록