BackEnd/Java

· BackEnd/Java
getSession() 메소드 두가지 getSession() HttpSession : 객체가 이미 존재할 경우 현재 HttpSession 객체를 반환 HttpSession : 객체가 존재 하지 않으면 (첫 접속이면) 새로운 세션 객체를 만들어서 반환한다. getSession(boolean create) true : getSession() 과 똑같은 동작(없으면 새로 생성) false : HttpSession 객체가 존재하지 않으면 Null 을 반환한다. 예를 들어 BoardWriteController (게시글 작성 컨트롤러) 를 개발하는데, if(req.getSession(false) == null) { // 세션 정보가 없으면 게시글을 작성하지 못하도록 막기 resp.sendRedirect("/boar..
· BackEnd/Java
무상태 프로토콜, Stateless Protocol 쿠키(Cookie)와 세션(Session)에 대하여 통신 상태 정보를 저장하지 않는 프로토콜 통신 정보 : 서버 - 클라이언트 간의 통신 정보 새로운 요청이 발생하면 서버는 이전에 왔던 요청의 같은 클라이언트인지 구분하지 않는다. 웹(HTTP)에서는 요청마다 독립적인 통신으로 판단한다. 프로토콜만으로는 동일한 사용자의 연속된 요청인지 판단할 수 없다. 그러므로 상태관리 메커니즘(기술)이 필요하다. 상태관리 메커니즘 사용자(Client)의 정보를 관리(유지)하는 기술 쿠키, Cookie 서버의 정보를 클라이언트(브라우저)에 저장하는 기술 세션, Session 서버 - 클라이언트 간의 정보를 교환하는 기술 서버 - 클라이언트 연결 상태를 유지하는 기술
· BackEnd/Java
서블릿 필터, Filter 클라이언트와 서버프로그램 사이에서 요청(request)과 응답(response)을 이용해서 추가작업을 할 수 있도록 만들어진 요소 요청 정보의 한글 인코딩을 설정 POST 전달 파라미터 설정 응답 정보의 한글 인코딩을 설정 응답 메세지의 ContentType을 설정 로그인 정보 검사 ex) 관리자인지 일반사용자인지 구분 ex) 등급별 사용자 구분
· BackEnd/Java
COS 라이브러리 파일 업로드 com.oreilly.servlet.MultipartRequest 객체를 이용한다. 객체의 생성자를 통해서 업로드 설정을 한다. MultipartRequest 클래스의 생성자 public MultipartRequest() { HttpServletRequest request, // 요청 객체 String saveDirectory, // 파일 저장 위치 int maxPostSize, // 업로드 제한 사이즈 String encoding, // 인코딩 FileRenamePolicy policy // 중복된 파일이름 처리할 정책 } throws IOException MultipartRequest 의 주요 메소드 String getParameter(String name); 요청 파라..
· BackEnd/Java
파일 업로드 클라이언트(브라우저)가 전송한 파일을 웹 어플리케이션에서 받아들이는 것 서버에서 파일 업로드 라이브러리를 이용하여 업로드된 파일을 처리한다. commons-fileload 라이브러리 COS 라이브러리 업로드 하는 인코딩형식(encType)을 multipart/form-data로 설정해야 한다. 데이터를 전송하는 기본 형태(인코딩방식)는 "application/x-www-form-urlencoded" 인코딩 방식이다. 위의 방식은 전달 파라미터를 쿼리스트링으로 보낸다. 쿼리스트링으로는 파일의 내용물(컨텐츠)을 전송할 수 없다. 파일의 내용물을 전송할 수 있는 인코딩 방식 "multipart/form-data" 로 태그에 설정해주어야 한다. multipart 인코딩은 전송할 각 데이터를 boun..
· BackEnd/Java
JSTL Format 태그 http://java.sun.com/jsp/jstl/fmt" %> formatNumber 문자열을 숫자형식으로 서식화하는 태그
· BackEnd/Java
JSTL, JSP Standard Tag Library JSP 에서 사용 가능한 표준 태그 라이브러리 JSP 코드의 가독성이 좋아진다. 자바코드를 작성할 상황을 최소화 시켜준다. 추가 라이브러리 파일이 필요하다 JSP 페이지에서 taglib 지시자를 이용하여 활성화해주어야 한다 JSTL 이 제공하는 5가지 커스텀 태그 core 논리 판단(조건문), 반복문 등의 제어문을 지원하는 태그 다른 JSP 호출하는 기능의 태그도 포함 format 날짜, 숫자, 시간 데이터의 서식을 지정하는 태그 sql 데이터베이스 처리 xml XML 문서에 대한 처리 functions 문자열 처리 함수를 사용할 수 있게 해주는 기능 단독 태그로 사용하지 않고 EL 과 함께 사용한다. JSTL taglib 지시자 JSTL 태그 라이..
· BackEnd/Java
EL, Expression Language basic Tag - action Tag - EL JSP 에서 값을 출력하는 코드를 쉽게 사용할 수 있도록 만들어진 문법 표현식(Expression Tag, ) 과 비슷한 역할을 수행한다. 주로 컨텍스트 정보를 다루거나 출력할 때 사용한다. JSTL 과 함께 사용하기에 적합하다. EL 구문 형식 ${ } ( $( ) - jQuery 와 헷갈리면 안된다. ) ex) ${10+20} => 30이 브라우저 화면에 출력된다. EL 연산자 산술 +, -, *, /, div, %, mod 관계 ==, eq, !=, ne, , gt, =, ge 조건 (조건식)? data1: data2 논리 &&, and, ||, or, !, not null검사 연산자 ex) ${empty ..
· BackEnd/Java
JSP 액션 태그, Action Tag JSP 의 문법 요소 중 하나 JSP 페이지에서 특정 동작을 수행하도록 만든 태그 페이지와 페이지 사이의 제어, 이동 등의 기능을 제공한다. 형식 기본적으로 태그로 이루어져 있기때문에 여는태그, 닫는태그 모두 사용해야한다. 자바빈(JavaBean) 생성 JSP 페이지에서 사용할 JavaBean 객체를 생성하고 지정한 scope 영역의 컨텍스트 정보로 저장한다. scope 영역을 지정하지 않으면 page 영역에 저장된다. scope : page(기본값) | request | session | application JavaBean 프로퍼티에 값을 설정한다. DTO 클래스의 setter 를 실행한다. JavaBean 프로퍼티 값을 가져온다 DTO 클래스의 getter 를..
· BackEnd/Java
컨텍스트영역에 대해서 컨텍스트 영역의 유효범위(Scope) 웹 어플리케이션의 정보(변수)가 영향을 미치는 범위 사용할 수 있는 영역 page 영역 논리적으로 가장 좁다 하나의 JSP를 처리하는 동안 유지되는 영역 pageContext 내장객체를 이용하여 컨텍스트영역의 정보를 다룬다. 해당 파일 안에서만 사용 가능한 변수를 만들때 Page를 사용하면 된다. request 영역 HttpServletRequest - URL, Method, Parameter 를 관리하고 사용하는 객체 req.getParameter 하나의 요청(Request)을 처리하는 동안 유지되는 영역 HTTP Request(요청)이 처리되어 HTTP Response(응답)이 이루어질 때 까지 EmpListController 기준이면 Req..
· BackEnd/Java
JSP 내장 객체(Built-in Object) JSP 페이지에서 객체 생성없이 바로 사용할 수 있는 객체들 JSP -> Servlet 변환될 때 자동으로 생성되는 객체들 Servlet/JSP 컨테이너가 생성해준다. 내장 객체의 종류 입출력(요청, 응답) 관련 객체 request : HTTP 요청 정보 객체 (HttpServletRequest) response : HTTP 응답 정보 객체 (HttpServletResponse) out : 응답 객체 출력 스트림 (response.getWriter()) 서블릿 관련 객체 page : 서블릿으로 변환된 객체 JSP 입장에서 보면 나중에 서블릿으로 변환될 자기 자신(this)에 대한 객체 config : 서블릿 정보를 저장하고 있는 객체 정보 전달(공유) 객체..
· BackEnd/Java
JSP 지시자 지시자의 종류 page 지시자 : JSP 페이지의 전반적인 환경설정 include 지시자 : 다른 파일(JSP)의 내용을 JSP페이지 내에 삽입할 때 사용한다. taglib 지시자 : 태그 라이브러리 기능 사용할 수 있도록 설정(활성화) page 지시자 속성 Language JSP페이지에서 사용할 서버사이드스크립트의 언어를 지정함 스크립트릿(Scriptlet) 에서 사용하는 언어의 형태를 지정하는 속성 기본값: java 사용가능한 값 : java contentType JSP 페이지에서 응답 데이터가 생성되는 형식을 지정하는 속성 MIME타입을 사용한다 MIME : Multipurpose Internet Mail Extension 전송된 문서(자원)의 형식을 상대방에게 알려주기 위해 사용되는..
· BackEnd/Java
JSP, Java Server Pages 자바코드를 사용하여 서버 페이지를 작성하는 문서(문법) HTML 문서 양식에 Java 코드를 삽입하여 프로그래밍할 수 있도록 만들어진 언어 서블릿(Servlet)은 Java 코드 양식에 HTML 코드를 삽입하여 작성한다. Servlet/JSP 컨테이너(WAS, Tomcat서버)에 의해서 Servlet으로 변환된다. JSP -> Servlet 변환과정을 거친다 Jasper 라는 이름을 가진 Component가 수행한다. JSP 기본 태그 스크립트릿, Scriptlet 선언, Declaration 표현식, Expression 지시자, Directive 주석, Comment 스크립트릿, Scriptlet JSP 파일에서 자바 코드를 작성하기위해 지정하는 영역 서블릿으로..
· BackEnd/Java
요청 파라미터의 한글 인코딩처리 설정하기 (UTF-8) 아파치 웹 서버는 인코딩을 ISO-8859-1(Latin 1)을 사용한다. 한글이 웹 서버를 통과할 때 ISO-8859-1 방식으로 해석을 해버린다.(이 때 한글이 깨진다.) 원본 데이터가 UTF-8 인코딩을 사용하므로 데이터를 사용할 때 UTF-8 형식으로 다시 합성할 필요가 있다. Get 메소드 요청데이터에 대한 한글(UTF-8) 설정 사용중인 서버의 설정파일인 server.xml(톰캣서버 파일을 넣어놓은 폴더) 파일에서 인코딩을 설정한다. 사용중인 서버의 PORT 번호를 속성으로 가지고 있는 를 찾는다. URIEncoding="UTF-8" 속성을 직접 추가해준다. Post 메소드 요청데이터에 대한 한글(UTF-8) 설정 요청 객체를 사용하기 전..
· BackEnd/Java
HTTP 요청, GET, POST 메소드 GET 메소드는 서버의 자원(데이터)을 조회할 때 사용한다. POST 메소드는 서버의 자원(데이트)을 삽입, 수정, 삭제할 때 사용한다. SELECT 문과 비슷한 기능은 GET 메소드 INSERT, UPDATE, DELETE 는 POST 메소드 전달 파라미터가 단순하거나 없으면 GET을 사용한다. 전달 파라미터가 크거나 길거나 민감한 정보일 경우 POST를 사용한다. GET은 URL 뒤에 쿼리스트링으로 작성되어 전달 파라미터가 서버로 전달된다. HTML Form 태그 실습해본 거 처럼 URL에 데이터가 노출되기 때문에 위험하다. POST는 요청메세지의 BODY 영역에 쿼리스트링으로 작성되어 전달 파라미터가 서버로 전달된다. 데이터를 1차적으로 숨길 수 있다. GE..
헌일