이전글[서블릿/JSP] 표현 언어(EL) 기본 사용법 및 자료형 설명표현 언어(EL)에서의 연산자 종류표현언어(Expression Language)에서는 값 그자체를 출력하거나 특정 변수나 객체의 속성값을 표현할수도 있지만 특정 연산자를 통한 연산 결과 또한 출력할 수 있습니다. 다음 표는 표현언어 EL에서 사용 가능한 연산자를 표기한것입니다. 표를 보면 알 수 있지만 일부 연산은 평소에 사용하는 연산자 이외에 lt, gt 같은 키워드를 통한 연산이 가능합니다.연산자 구분연산자설명산술 연산자+덧셈산술 연산자-뺄셈산술 연산자*곱셈산술 연산자/ or div나눗셈산술 연산자% or mod나머지 연산 ex) 8 % 3 = 2비교 연산자== or eq앞의 값이 뒤의 값과 같으면 true.비교 연산자!= or ne..
Servlet&Jsp
2019. 8. 6. 03:00
[서블릿/JSP] 표현 언어(EL) 기본 사용법 및 자료형 설명
이전글[서블릿/JSP] 표현 언어(EL, Expression Language)란?JSP에서 표현 언어 사용 설정JSP 페이지에서 표현 언어(EL)를 사용하기 위해서는 page 디렉티브의 isELIgnored 속성을 false로 설정해주어야 합니다. 그러나 이 속성은 명시하지 않는 경우 기본값이 false이므로 따로 지정해주지 않아도 됩니다.만약 이 isELIgnored 속성을 true로 하게 되면 표현언어 구문을 해석할때 표현언어가 아닌 단순한 text로 해석하게 됩니다.표현 언어 기본 구성표현언어는 다음과 같이 ${값 또는 표현식} 형태로 사용됩니다.${3 - 1}${memberId}표현언어는 JSP의 스크립트릿, 표현식, 선언문을 제외한 나머지 영역에서 사용가능하며, 다음과 같이 액션태그나 JSTL의..
Servlet&Jsp
2019. 8. 5. 23:00
[서블릿/JSP] 표현언어(EL)에서 ${}과 #{} 표기법의 차이
이전글\[서블릿/JSP\] 표현 언어(EL) 기본 사용법 및 자료형 설명표현언어(EL)에서 ${}과 #{} 표기법의 차이표현언어(Expression Language)에는 ${}와 #{} 두가지 표기법이 있습니다. #{}표기법의 경우 JSP 2.1 버전에 추가된것으로 JSF(Java Server Faces)에서 사용됩니다.${}의 경우 해석되는 즉시 해당 표현식의 값이 반영되므로 즉시 적용(immediate expression)이라 하며, #{}의 경우 해당 값이 쓰일때 해당 값이 적용되므로 지연 적용(deferred expression)이라 합니다.이 차이를 알아보기 위해 다음의 예제를 참고해 보도록 하겠습니다. GIT 링크출력 : ${name}위의 예제에서는 JSTL Core의 기능을 통해 page영..
Servlet&Jsp
2019. 8. 5. 18:09
[서블릿/JSP] 표현 언어(EL, Expression Language)란?
표현 언어(EL, Expression Language)란?EL은 Expression Language의 약자로 직역하면 표현 언어입니다. EL은 JSP에서 자바코드와 JSP 스크립트 코드를 더욱 더 간결하게 하기 위해 등장하였습니다. EL을 이용하면 여러 줄에 걸친 자바코드를 간결하게 표현 가능하게 해줍니다.예를 들어 기존의 JSP 표현식()을 사용하여 요청객체로부터 특정 값을 꺼내와 출력하는 경우의 코드는 아래와 같습니다.그런데 위의 코드를 EL로 바꾸면 아래와 같이 바뀝니다.${param.id}이렇게 불필요한 코드를 매우 줄여주기 때문에 JSP 페이지의 전체적인 코드가 간결해지고 자바코드가 줄어듦으로써 디자인적 요소(HTML, CSS)와 자바코드를 서로 구분하기 쉬워지는 장점이 있습니다.표현 언어의 등..
Servlet&Jsp
2019. 8. 2. 20:30
[서블릿/JSP] 서블릿 url-pattern 실습 예제
이전글[서블릿/JSP] 서블릿 url-pattern 실습 예제서블릿 url-pattern 실습 예제앞선 글에서 url-pattern의 규칙에 대해서 알아보았고 이번글에서는 해당 규칙을 바탕으로 실습을 진행하도로 해보겠습니다. 예제 프로젝트 소스는 Git 링크를 참고해주세요.프로젝트 구성은 다음과 같이 5개의 서블릿이 있고 각각 @WebServlet 어노테이션을 이용하여 경로 맵핑 설정을 해둔 상태입니다. 이전글에서 정리를 해 두었지만 맵핑 설정은 다음과 같습니다.URL 패턴맵핑된 서블릿/foo/bar/*HelloServlet1/baz/*HelloServlet2/catalogHelloServlet3*.doHelloServlet4/baz/index.doHelloServlet5서블릿 소스코드다섯개의 서블릿은 ..
Servlet&Jsp
2019. 8. 2. 13:47
[서블릿/JSP] 서블릿 맵핑시 url-pattern 규칙
서블릿(Servlet) 맵핑시 url-pattern 규칙구현한 서블릿은 특정 URL에 맵핑을 시켜주어야 합니다. 그래야 클라이언트에서 해당 URL로 요청시 해당 서블릿이 요청을 처리할 수 있기 때문입니다.URL 맵핑에는 web.xml에서 의 태그를 통해 설정해주거나 @WebServlet의 urlPatterns 속성을 사용합니다.web.xml HelloServlet1 servlet.HelloServlet1 HelloServlet1 /hello1@WebServlet@WebServlet("/hello1")public class HelloServlet1 extends HttpServlet {URL 패턴 규칙urlPattern은 규칙이 존재하는데, 이 규칙을 생각하지 않고 URL 맵핑 ..
Servlet&Jsp
2019. 8. 1. 11:18
[서블릿/JSP] Tomcat 재시작시 세션 유지/제거 설정하기
톰캣(Tomcat) 재시작시 세션 유지/제거 설정하기세션은 브라우저 단위로 생성되는 클라이언트 상태 유지 객체입니다. 세션은 사용자의 브라우저가 종료되거나 HttpSession#invalidate()가 호출되었을 때 마지막으로 설정된 timeout에 의해 세션이 만료되었을 때 제거됩니다.그렇다면 톰캣 즉 서버가 종료된 경우에는 어떨까요? 톰캣의 경우 기본적으로 org.apache.catalina.session.StandardManager 라는 세션매니저를 통해서 세션이 관리됩니다. 그런데 이녀석은 톰캣이 종료될 때 살아있는 세션을 임시저장소(디스크)에 SESSIONS.ser 이라는 파일로 저장해두고 재시작될 때 이 파일을 읽어 세션을 다시 살려버립니다. 만약 톰캣이 종료될 때 가지고 있던 세션을 모두 제..
Servlet&Jsp
2019. 7. 31. 23:38
[서블릿/JSP] 톰캣(서블릿 컨테이너) 시작시 Servlet 초기화 되도록 설정하기
참고글[서블릿/JSP] 서블릿의 초기화 과정 및 초기화 방법[서블릿/JSP] init() 메서드를 통한 필터 초기화시에 FilterConfig를 통해 설정값 얻기톰캣(서블릿 컨테이너) 시작시 Servlet 초기화 되도록 설정하기우리가 작성해 놓은 Servlet이 객체화 되어 생성되는 시점은 사용자로부터 최초의 요청이 발생할 때 입니다. 서블릿은 생성과정에서 init() 메서드가 실행됩니다. 그런데 사용자의 요청 여부에 관계없이 서블릿 컨테이너(톰캣)가 시작됨과 동시에 서블릿의 생성과 초기화를 진행하고 싶을 수 있습니다.이경우 web.xml에 초기화를 원하는 서블릿에 대해서 태그를 설정해주거나 @WebServlet 어노테이션을 사용하는 경우 loadOnStartUp 속성값을 지정해주면 됩니다.다음은 we..
Servlet&Jsp
2019. 7. 30. 03:30
[서블릿/JSP] Tomcat에 war 파일 배포하기
이전글[이클립스] Eclipse에서 Dynamic Web Project로 WAR 파일 생성하기Tomcat에 WAR 파일 배포하기생성된 WAR 파일이 있다면 Tomcat에 웹 어플리케이션을 배포하는 일은 식은죽(?) 먹기입니다. 톰캣이 설치된 경로의 webapps 디렉터리 하위에 만들어진 .war 파일을 옮겨둡니다.톰캣 설치 디렉터리 > bin > startup을 실행하여 톰캣을 시작합니다.톰캣 정상적으로 시작됩니다.배포한 웹 어플리케이션에 접속해봅니다.톰캣의 webapps 경로로 이동해 보면 WAR 파일과 동일한 이름의 디렉터리가 생성된 것을 볼 수 있습니다. 이는 톰캣이 자동으로 WAR 파일을 인식하여 압축을 해제한 것입니다.WAR 파일 배포에 실패한 경우배포에 실패한 경우 몇 가지 원인이 있을 수 있..
Servlet&Jsp
2019. 7. 27. 04:00
[서블릿/JSP] Part를 이용한 파일 업로드시 Unable to process parts as no multi-part configuration has been provided 오류
Part를 이용한 파일 업로드시 Unable to process parts as no multi-part configuration has been provided 오류파일 업로드를 구현하기 위해 Apache Commons FileUpload같은 라이브러리를 사용했던것에 비해 서블릿 3.0 이후로는 Part API를 통해 구현할 수 있게 되었습니다.그러나 파일 업로드를 하려 했을때 다음과 같이 java.lang.IllegalStateException이 발생할 수 있습니다.심각: Servlet.service() for servlet [servlet.FileUploadServlet] in context with path [/jspServletStudy] threw exceptionjava.lang.Illega..