Programming/jsp2014. 5. 19. 17:24
스프링 수업중에 벨로시티 언급이 또 들리길래 한번 검색..


벨로시티란 자바 기반의 템플릿 엔진입니다.
벨로시티를 활용하면 간단하면서도 강력한 템플릿 언어를 통하여 자바 코드에 정의된 객체를 액세스할 수 있습니다. 
벨로시티를 웹 개발에 사용하면, 웹 디자이너는 자바 프로그래머와 병렬로 작업을 할 수 있으며 MVC(모델-뷰-컨트롤러) 모델에 따라 웹 사이트를 개발할 수 있습니다. 더 자세히 설명하면 웹 페이지 디자이너의 경우 보기 좋은 사이트를 만드는 데만 집중하면 되고, 프로그래머는 잘 동작하는 코드를 만드는 데만 집중하면 된다는 뜻입니다. 
벨로시티는 웹 페이지와 자바 코드를 분리하여, 장기적인 측면에서 볼 때 웹 사이트를 손쉽게 유지보수할 수 있도록 하고, 자바 서버 페이지 (JSP) 또는 PHP를 대체할 수 있는 방안을 제시합니다. 벨로시티의 쓰임새는 웹 사이트에 국한되지 않습니다. 예를 들면, 템플릿으로부터 SQL이나 포스트스크립트, 또는 XML(XML 변환에 대해서는 벨로시티 툴 중 하나인 아나키아(Anakia)를 참조)문서를 생성하는 데 쓰일 수 있습니다벨로시티는 스탠드얼론 유틸리티처럼 사용하여 소스 코드나 리포트를 생성할 수도 있고, 다른 시스템의 컴포넌트로 통합할 수도 있습니다. 또한 벨로시티는 터빈 (또다른 자카르타 서브 프로젝트 중 하나) 웹 애플리케이션 프레임웍에 템플릿 서비스를 제공합니다. 벨로시티와 터빈을 조합하면 진정한 MVC 모델에 따라 웹 애플리케이션을 개발할 수 있습니다

[링크 : http://www.javajigi.net/pages/viewpage.action?pageId=210

[링크 : http://a3040.com/bbs/board.php?bo_table=Jsp&wr_id=8]
[링크 : http://velocity.apache.org/]

'Programming > jsp' 카테고리의 다른 글

jsp tomcat 서버가 구동되지 않을 경우  (6) 2014.05.20
ORM - Object-relational mapping  (0) 2014.05.20
JSP 서블릿 매핑  (0) 2014.05.08
EL(Expression Language)$와 #  (0) 2014.04.30
POJO - Plain Old Java Object  (0) 2014.04.29
Posted by 구차니
Programming/jsp2014. 5. 8. 22:57
스트럿츠라던가 JSTL이라던가 다른것과 연관없이
JSP 자체기능으로
특정 확장자에 대해서 접속시 실제 접속할 파일명이나 경로를 숨기고
다른 파일로 연결해주는 기능이다.

생각해보니..
네이버 같은데서 파일경로상 확장자가 nhn 이라던가
이런것들 모두 jsp로 처리한게 아닐까 싶은데..

약간의 트릭(?)으로
jsp가 아닌 php나 asp로 속이는 것도 당연히(!) 가능할 것으로 생각된다.

[링크 : http://uiandwe.tistory.com/332]
[링크 : http://docs.oracle.com/cd/E13222_01/wls/docs92/webapp/configureservlet.html ]

'Programming > jsp' 카테고리의 다른 글

ORM - Object-relational mapping  (0) 2014.05.20
apache velocity  (0) 2014.05.19
EL(Expression Language)$와 #  (0) 2014.04.30
POJO - Plain Old Java Object  (0) 2014.04.29
thread-safe singleton  (0) 2014.04.25
Posted by 구차니
Programming/jsp2014. 4. 30. 10:37
스트럿츠2를 보다 보니 이상한게 있어서 찾았는데
끄앙.. EL에 이런게 있었어?!?!? ㅠㅠ

Immediate and Deferred Evaluation Syntax
 Those expressions that are evaluated immediately use the ${} syntax. Expressions whose evaluation is deferred use the #{} syntax.

Immediate Evaluation
All expressions using the ${} syntax are evaluated immediately. These expressions can be used only within template text or as the value of a tag attribute that can accept runtime expressions.

Deferred Evaluation
Deferred evaluation expressions take the form #{expr} and can be evaluated at other phases of a page lifecycle as defined by whatever technology is using the expression. In the case of JavaServer Faces technology, its controller can evaluate the expression at different phases of the lifecycle, depending on how the expression is being used in the page.

[링크 : http://docs.oracle.com/javaee/6/tutorial/doc/bnahr.html


Value Expressions
Value expressions can be further categorized into rvalue and lvalue expressions. Rvalue expressions can read data but cannot write it. Lvalue expressions can both read and write data.

All expressions that are evaluated immediately use the ${} delimiters and are always rvalue expressions. Expressions whose evaluation can be deferred use the #{} delimiters and can act as both rvalue and lvalue expressions. Consider the following two value expressions:

${customer.name}
#{customer.name}

[링크 : http://docs.oracle.com/javaee/6/tutorial/doc/bnahu.html

Table 6-1 Definitions of Tag Attributes That Accept EL Expressions

Attribute Type

Example Expression

Type Attribute Definition

Dynamic

"literal"

<rtexprvalue>true</rtexprvalue>

Dynamic

${literal}

<rtexprvalue>true</rtexprvalue>

Deferred value

"literal"

<deferred-value>
   <type>java.lang.String</type>
</deferred-value>

Deferred value

#{customer.age}

<deferred-value>
   <type>int</type>
</deferred-value>

Deferred method

"literal"

<deferred-method>
   <method-signature>
      java.lang.String submit()
   </method-signature>
<deferred-method>

Deferred method

#{customer.calcTotal}

<deferred-method>
   <method-signature>
      double calcTotal(int, double)
   </method-signature>
</deferred-method>

[링크 : http://docs.oracle.com/javaee/6/tutorial/doc/bnaia.html]

# (deferred)
JSP 2.1 부터 지원하는 문법으로 JSF(JavaServer Face)에서 사용
$는 표현식이 실행되는 시점에 값을 계산하나
#는 값이 실제로 필요한 시점에 값을 계산한다.

[링크 : http://gangzzang.tistory.com/entry/JSP-표현-언어Expression-Language-또는-익스프레션-언어


'Programming > jsp' 카테고리의 다른 글

apache velocity  (0) 2014.05.19
JSP 서블릿 매핑  (0) 2014.05.08
POJO - Plain Old Java Object  (0) 2014.04.29
thread-safe singleton  (0) 2014.04.25
oreilly fileupload/multipart 라이브러리(jar)  (0) 2014.04.24
Posted by 구차니
Programming/jsp2014. 4. 29. 17:15
Servlet과 같이 상속을 받아서 쓰는게 아니기에
테스트에도 용이한 일반적인 클래스를 사용한 설계기법(?)에 대한 거창한 이름

2000년에 만들어진 용어라는데..
대학에서 처음 자바 배울때 이런 용어는 들어본적이 없다는게 함정...
머.. 그 당시에 JSP 한게 아니니...

[링크 : http://ko.wikipedia.org/wiki/Plain_Old_Java_Object]
[링크 : http://en.wikipedia.org/wiki/Plain_Old_Java_Object]

'Programming > jsp' 카테고리의 다른 글

JSP 서블릿 매핑  (0) 2014.05.08
EL(Expression Language)$와 #  (0) 2014.04.30
thread-safe singleton  (0) 2014.04.25
oreilly fileupload/multipart 라이브러리(jar)  (0) 2014.04.24
context.xml을 이용한 dbcp  (0) 2014.04.24
Posted by 구차니
Programming/jsp2014. 4. 25. 17:13
로그인 로직을 싱글톤으로 사용시 
과연 thread-safe할까? 라는 생각에 검색해보니 똭!

결론은 일반 싱글톤은 당연히 thread-safe하지 않으니
synchronized 등으로 동기화를 하거나(퍼포먼스 저하..)

ThreadLocal로 쓰레드별 로컬 변수로 생성하거나 등으로 회피를 하는 것으로 보인다.
[링크 : http://docs.oracle.com/javase/7/docs/api/java/lang/ThreadLocal.html]



[링크 : http://www.javaservice.net/~java/bbs/read.cgi?m=devtip&b=javatip&c=r_p&n=1028393658]
  [링크 : http://www.cs.umd.edu/~pugh/java/memoryModel/DCL-performance.html] << 원문
[링크 : http://levin01.tistory.com/307] << 부분 번역
[링크 : http://en.wikipedia.org/wiki/Singleton_pattern#Example

'Programming > jsp' 카테고리의 다른 글

EL(Expression Language)$와 #  (0) 2014.04.30
POJO - Plain Old Java Object  (0) 2014.04.29
oreilly fileupload/multipart 라이브러리(jar)  (0) 2014.04.24
context.xml을 이용한 dbcp  (0) 2014.04.24
dbcp와 ORA-12518  (0) 2014.04.24
Posted by 구차니
Programming/jsp2014. 4. 24. 16:41
jsp 수업중에 사용한 라이브러리
apache commons에서 upload 라이브러리가 있지만
oreilly에서 공개한 이게 더 좋다고 하니 머.. 일단 링크 저장

[링크 : http://www.servlets.com/cos/]

'Programming > jsp' 카테고리의 다른 글

POJO - Plain Old Java Object  (0) 2014.04.29
thread-safe singleton  (0) 2014.04.25
context.xml을 이용한 dbcp  (0) 2014.04.24
dbcp와 ORA-12518  (0) 2014.04.24
eclipse quantumDB CSV 파일 import  (0) 2014.04.23
Posted by 구차니
Programming/jsp2014. 4. 24. 16:39

'Programming > jsp' 카테고리의 다른 글

thread-safe singleton  (0) 2014.04.25
oreilly fileupload/multipart 라이브러리(jar)  (0) 2014.04.24
dbcp와 ORA-12518  (0) 2014.04.24
eclipse quantumDB CSV 파일 import  (0) 2014.04.23
tomcat war deploy  (0) 2014.04.23
Posted by 구차니
Programming/jsp2014. 4. 24. 01:17
ORA-12518 에러는 oracle 리스너에서 접속을 거부하는 상황에 대한 에러코드이다.
[링크 : http://mindsteeper.tistory.com/180]

아마도.. dbcp를 사용하면
아래와 같이 기본값으로 8개의 최대 접속이 생성이 되는데
오라클 리스너에서 하나의 아이피에서 몇개 이상의 동시 접속(세션)을 막아둬서
저런 오류가 발생하는게 아닐려나?

[링크 : http://commons.apache.org/proper/commons-dbcp/configuration.html]

일단.. 저런 문제가 발생하는 도중에도
eclipse/quantumDB에서 접속은 문제가 없는 것 봐서는...
dbcp의 문제일 가능성이 높을것으로 추측된다.


tomcat에서 연동시 context.xml 에 maxActive와 maxIdel이 500, 100 이었는데 줄여주니 접속이 된다.
<Context>
<Resource name="jdbc/OracleDB" auth="Container" type="javax.sql.DataSource"
username="user" password="pass" driverClassName="oracle.jdbc.driver.OracleDriver"
factory="org.apache.tomcat.dbcp.dbcp.BasicDataSourceFactory" url="jdbc:oracle:thin:@serverip:port:dbname"
maxActive="5" maxIdle="2" />
</Context> 
[링크 : http://gangzzang.tistory.com/120]

'Programming > jsp' 카테고리의 다른 글

oreilly fileupload/multipart 라이브러리(jar)  (0) 2014.04.24
context.xml을 이용한 dbcp  (0) 2014.04.24
eclipse quantumDB CSV 파일 import  (0) 2014.04.23
tomcat war deploy  (0) 2014.04.23
javax.servlet.http cannot be resolved?!?!  (0) 2014.04.23
Posted by 구차니
Programming/jsp2014. 4. 23. 23:31
원하는 테이블에 우클릭으로 import를 하고
CSV를 선택하면


해당 테이블에 CSV 파일 포맷에 따라 입력이 가능한 것 같은데...


대한민국 우편번호/주소를 입력하려고 했더니
3MB에 못미치는 파일을 입력하는데 어마어마한 시간이 걸리고..
나중에 켜놓고 돌아와서 보니 삽입안된게 더 많은데다
테이블 다시 확인해보니.. 타임아웃으로 롤백되었는지 입력된게 하나도 없다 ㅠㅠ


그래도 어떻게 잘 사용해 보면 넣을순 있을것 같으니.. 조금 더 찾아 봐야지 ㅠㅠ


----
일단.. column이 문제인것 같아서
고심하다.. 'Ignore header row column names, import columns in order' 옵션을 꺼주었더니 된다!!!
해석하자면 'row column 헤더의 이름을 무시함, columns 순서대로 입력함' 인데


우편번호에서 SEQ를 ID로 변경하여 ZIPCODE와 동일하게 만들어주고


간략하게 import 하니 들어갔다!!!!!

 
원격지 서버로 우편번호 2.3M 짜리 CSV 파일을


대략 7분 만에 넣는데 성공!

 

'Programming > jsp' 카테고리의 다른 글

context.xml을 이용한 dbcp  (0) 2014.04.24
dbcp와 ORA-12518  (0) 2014.04.24
tomcat war deploy  (0) 2014.04.23
javax.servlet.http cannot be resolved?!?!  (0) 2014.04.23
apache commons / beanutils , logging, digester  (0) 2014.04.18
Posted by 구차니
Programming/jsp2014. 4. 23. 15:21
eclipse를 쓰면 간단한데..
tomcat 자체 관리페이지에서도 가능하고
수작업으로도 가능은 하다고 한다.

음.. 일단 server.xml 에 role을 정해줘서 하는건 안된다
그럼.. local/remote에서 war 를 넣는건 불가능.. ㅠㅠ

[링크 : http://www.manydesigns.com/en/portofino/portofino3/3_1_x/installation-guide/deploying-on-tomcat]

'Programming > jsp' 카테고리의 다른 글

dbcp와 ORA-12518  (0) 2014.04.24
eclipse quantumDB CSV 파일 import  (0) 2014.04.23
javax.servlet.http cannot be resolved?!?!  (0) 2014.04.23
apache commons / beanutils , logging, digester  (0) 2014.04.18
maven  (0) 2014.04.18
Posted by 구차니