JSP EL(Expression Language) 알아보도록 하자

EL(Expression Language) 은 기존의 JSP 문법을 다른 사람이 알아보기 쉽도록 간략화 해주는 기법이다. 유지보수에 도움이 된다.

기존 <% %> 를 ${ }로 바꾸어 표기하는 방식이다.


 이름 : <jsp:getProperty name= "member" property="name"/><br/> 

이렇게 코딩 되어있는것을

 이름 : ${member.name}<br/> 처럼 간단하게 변경가능하게한다.


뿐만아니라 다양한 내장객체를 사용할 수 있어 보기 좋게 표현 가능하다.


왼쪽에서 초기화해준 값들을 오른쪽에서와 같이 사용하게 해준다.


위쪽 context 초기화 파라미터 값들을 문서 어디에서든 사용할 수 있게 값을 지정해주는 web.xml 코드이다.

'프로그래밍 > JSP' 카테고리의 다른 글

JSP 포워딩(RequestDispatcher 클래스  (0) 2018.07.29
FrontController 패턴과 Command 패턴  (0) 2018.07.29
JSP 파일 업로드  (0) 2018.07.29
DAO, DTO / PrepareStatement / 커넥션풀(DBCP)  (0) 2018.07.27
jdk tomcat 오류  (0) 2018.07.27

파일 업로드를 만들기 앞서 라이브러리를 다운로드 받는다

http://www.servlets.com 에 들어가 com.oreilly.servlet를 클릭 한 후 Download에 cos-26Dec2008.zip 을 다운 받아 준다


그 후 압축을 푼뒤 자신의 프로젝트 파일 WebContent 안에 fileForder를 만들어주어 파일업로드가 될때 파일이 저장될 폴더를 만든다.


실제 파일이 저장되는 경로는

C:\Users\kim\Downloads\apache-tomcat-9.0.10\apache-tomcat-9.0.10\wtpwebapps\ex2\fileForder

자신이 아파치 톰캣 서버를 설치한 곳의 프로젝트 fileForder가 되겠다


다음은 코드이다


파일 업로드 화면


파일 업로드 동작

'프로그래밍 > JSP' 카테고리의 다른 글

FrontController 패턴과 Command 패턴  (0) 2018.07.29
JSP EL(Expression Language)  (0) 2018.07.29
DAO, DTO / PrepareStatement / 커넥션풀(DBCP)  (0) 2018.07.27
jdk tomcat 오류  (0) 2018.07.27
자바 빈 사용  (0) 2018.07.26

DAO와 DTO 는 MVC 프레임워크에서 M(Model) 역할을 맡는다고 생각하면 이해하기 쉽다.

DAO는 데이터베이스를 서버와 연결해 주는 역할을 하고 DTO는 데이터베이스만 따로 저장해주는 역할(getter, setter)을 한다.





PreparedStatement 객체


커넥션 풀:커넥션 객체를 미리 생성하여 부하가 없게 쓰도록 한다


미리 만들어 놓은 커넥션이 50개의 요청에 대해서 빠르게 반응한다. 51번째는 기다린다. 톰캣이 1개씩 증가시켜준다.


Servers => context 맨밑에 줄에서 resource를 정의한다.


서버에서 오른쪽 Publish to the server를 눌러 톰캣과 동기화 시켜준다.

동기화가 끝난 모습이다.


데이터를 모듈화하여 사용하고 있는 예이다.


'프로그래밍 > JSP' 카테고리의 다른 글

JSP EL(Expression Language)  (0) 2018.07.29
JSP 파일 업로드  (0) 2018.07.29
jdk tomcat 오류  (0) 2018.07.27
자바 빈 사용  (0) 2018.07.26
예외처리  (0) 2018.07.26

Error: Could not create the Java Virtual Machine.

Error: A fatal exception has occurred. Program will exit.

이클립스로 데이터베이스 과정까지 잘하고 있다가 갑자기 이클립스가 꺼지더니 이런 오류가 뜨면서 들어가지지가 않았다. 

구글링 해서 다 찾아봐도 해결이 안되고 이클립스 삭제까지 해봤는데 문제가 개선되지 않았다. 하루 뒤에 설마 jdk와 tomcat 버전이 호환되지 않을까 생각하고 찾아봤는데 진짜였다.

최근에 나온 jdk 10 이상의 버전과 tomcat9가 호환이 안된다고 한다... jdk 1.8.0_181 버전을 다운받고 jdk 10버전을 지우고 환경변수 설정을 다시 해주니 이클립스가 바로 실행이 된다. 기존에 있던 프로젝트에서 소스코드가 따로 메모장에 복사하고 프로젝트를 다 삭제한뒤 다시 만들어보자.

'프로그래밍 > JSP' 카테고리의 다른 글

JSP 파일 업로드  (0) 2018.07.29
DAO, DTO / PrepareStatement / 커넥션풀(DBCP)  (0) 2018.07.27
자바 빈 사용  (0) 2018.07.26
예외처리  (0) 2018.07.26
JSP 쿠키와 세션  (0) 2018.07.26

빈을 만드는 것은 데이터 객체를 만들기 위한 클래스를 만드는 것


useBean 은 특정 Bean을 명시할 때 사용 맨위에 정의해준다.

Scope를 사용해 범위를 설정한다.


setProperty 와 getProperty를 사용해 값을 저장하고 불러오는 기능을 할 수 있다.



'프로그래밍 > JSP' 카테고리의 다른 글

DAO, DTO / PrepareStatement / 커넥션풀(DBCP)  (0) 2018.07.27
jdk tomcat 오류  (0) 2018.07.27
예외처리  (0) 2018.07.26
JSP 쿠키와 세션  (0) 2018.07.26
JSP forward include param  (0) 2018.07.26

예외처리를 하는 방법에는 페이지 지시자를 활용하는 방식과 web.xml 파일을 이용하는 방식 2가지로 나뉜다.


첫번째 페이지 지시자를 활용하는 방식이다.

예외가 예상되는 페이지와 예외발생시 처리를 해주는 페이지를 각각 1개씩 만든다.

예외가 예상되는 페이지에는 페이지 지시자를 이용해서 <%@page errorPage="예외처리할 경로"%>를 사용해주면 된다.


예외처리할 페이지에는 <%@page isErrorPage= "true"%> 를 사용하여 예외처리 페이지로 사용하겠다고 선언한다. 그 밑에 <%response.setStatus(200); %> 를 하여 예외페이지 인것을 알려준다.

<body>에는 <%= exception.getMessage() %>



두번째 web.xml파일을 사용하는 방식이다.


해당 페이지를 찾을 수 없다는 에러 -> 404에러

연산이 잘못됬다는 에러 ->500에러

여기서 주의 해야할점은 위에 <% response.setStatus(200); %> 페이지 지시자를 넣어야 한다는 것이다.


'프로그래밍 > JSP' 카테고리의 다른 글

jdk tomcat 오류  (0) 2018.07.27
자바 빈 사용  (0) 2018.07.26
JSP 쿠키와 세션  (0) 2018.07.26
JSP forward include param  (0) 2018.07.26
JSP request, reponse 객체 이해하기  (0) 2018.07.26

쿠키는 웹브라우저에 정보를 저장한다.

=============================================================================================================================================

=============================================================================================================================================


쿠키 저장


쿠키 활용


쿠키 삭제

반드시 쿠키를 생성할 때, 삭제할 때 response 해줘야한다.


세션은 웹 서버에 데이터를 저장한다.

=============================================================================================================================================

=============================================================================================================================================


예제를 보자

세션 저장


session.getAttribute로 세션name을 불러오면 무조건 Object 변수형에 저장된다. 즉 String이나 int형 변수에 저장하고 싶으면 형변환을 해줘야한다.

Enumeration 객체로 모든 세션name을 불러오고 세션name에 해당하는 세션 value 값들을 같이 출력한다.


session.removeAttribute("세션이름") 함수로 세션이름에 해당하는 세션을 삭제하고 출력해본다.

session.invalidate(); 함수로 모든 세션 값을 지우고 request.isRequestedSessionIdValid() 함수로 세션에 값이 있는지 확인한다.



'프로그래밍 > JSP' 카테고리의 다른 글

자바 빈 사용  (0) 2018.07.26
예외처리  (0) 2018.07.26
JSP forward include param  (0) 2018.07.26
JSP request, reponse 객체 이해하기  (0) 2018.07.26
JSP 스크립트릿,선언,표현식 /지시자  (0) 2018.07.26

forward : 현재의 페이지에서 다른 특정페이지로 전환할 때 사용 한다. (즉, 페이지에서 다른 페이지로 전환/ 다시 못돌아온다)

예시 --  <jsp:forward page="주소명">


include : 현재 페이지에 다른 페이지를 삽입할 때 사용한다. (즉, 페이지안에 페이지를 넣는다 /다시 돌아온다)

예시 -- <jsp:include page="주소명">


param :forward 및 include 태그에 데이터 전달을 목적으로 사용되는 태그

예시 --

<jsp:forward page = "forward_param.jsp">

<jsp:param name="id" value="abcdef"/>

<jsp:param name="pw value="1234"/>

</jsp:forward>


응용


value 값은 Stirng 만 들어갈 수 있기때문에 "<%= %>"를 통해서 정수나 실수 다른 형의 값을 사용 하면 된다.

'프로그래밍 > JSP' 카테고리의 다른 글

예외처리  (0) 2018.07.26
JSP 쿠키와 세션  (0) 2018.07.26
JSP request, reponse 객체 이해하기  (0) 2018.07.26
JSP 스크립트릿,선언,표현식 /지시자  (0) 2018.07.26
JSP 태그의 개념과 동작 원리  (0) 2018.07.25

JSP request, reponse 객체 이해하기


JSP 스크립트릿,선언,표현식





JSP 지시자


page 지시자: import 하고 속성 선언


include 지시자 : 페이지안에 다른 페이지 넣어준다.

반복되는 페이지 넣기 위해 사용


+ Recent posts