'web.xml'에 해당되는 글 6

  1. 2011.07.22 web.xml 에 EL 사용하기 4
  2. 2011.01.23 [The NetBeans E-commerce Tutorial] 5. Preparing the Page Views and Controller Servlet
  3. 2009.08.07 Tomcat 인증
  4. 2009.08.07 Eclipse에서 Tomcat 구동시 사용하는 설정파일
  5. 2009.08.06 web.xml 버전별 비교
  6. 2009.07.26 Eclipse, WTP, Derby로 웹 애플리케이션 구현하기

web.xml 에 EL 사용하기

시스템 프로퍼티를 web.xml 에서 EL 로 사용 가능하다.
동일한 소스를 사용하는 2대의 서버에서 처리한 예
- 요구사항
대외계에서는 security_outer.xml 을 로드하고 세션타임아웃을 30분으로 설정한다.
내부 시스템에서는 security_inner.xml 을 로드하고 세션이 끊기지 않도록 설정한다.

환경에 따라 web.xml 을 변경하지 않고 각 환경에 맞게 적용할 수 있다.
java -cp ... -Denv.type=outer -Dsession.timeout=30 xxx.HttpServer
java -cp ... -Denv.type=inner -Dsession.timeout=-1 xxx.HttpServer

- env.type 이 outer 인 경우 세션 타임아웃을 별도로 지정하지 않아도 30분으로 설정하고 싶은데 web.xml 에서 논리 표현을 지원하지 않는다.
(Resin 설정 파일에서는 가능함)

[The NetBeans E-commerce Tutorial] 5. Preparing the Page Views and Controller Servlet

[todo] 이거에 대한 화면 캡쳐를 보여주면 이해가 잘될거 같다.

http://netbeans.org/kb/docs/javaee/ecommerce/page-views-controller.html

- index.jsp affablebean.css

  • width와 height로 위치를 잡고 background로 공간이 보이게 한다.
  • margin: 20px auto
    위, 아래로 20px을 띄우고, auto로 좌, 우로도 그만큼 띄운다.
  • float: left
    좌, 우측 컬럼을 만든다.
  • clear: left
    footer에 넣어서 위쪽 border가 표시되게 한다.
    (이게 없으면 footer가 제대로 보이지 않는다.)

- div 로 페이지 구조 잡기
  1. Create the structure in HTML.
  2. Create a set of styles to define the appearance.
  3. View the page to examine the results of your changes.

- jsp 파일을 WEB-INF/view/ 로 옮김.

- Creating a Header and Footer
include를 해도 되지만 모든 페이지에서 반복해야 한다.
header와 footer를 지정하는 방법이 있다.
web.xml 에 추가
- Controller Servlet 작성

Tomcat 인증

- web.xml

- tomcat-users.xml
로그인 실패하면 401 에러가 남.

- 결과
//인증을 받지 않은 경우
request.getRemoteUser() : null
request.getUserPrincipal() : null
principal.getName() : null

//role1이라는 사용자로 인증을 받은 경우
request.getRemoteUser() : role1
request.getUserPrincipal() : <user username="role1" password="tomcat" roles="role1"/>
principal.getName() : role1
request.isUserInRole(tomcat) : false
request.isUserInRole(role1) : true

//both라는 사용자로 인증을 받은 경우
request.getRemoteUser() : both
request.getUserPrincipal() : <user username="both" password="tomcat" roles="tomcat,role1"/>
principal.getName() : both //조금 이상하다.
request.isUserInRole(tomcat) : true
request.isUserInRole(role1) : true

//tomcat이라는 사용자는 role1이라는 권한이 없어서 거부된다.

- 참고
웹 어플리케이션 인증

Eclipse에서 Tomcat 구동시 사용하는 설정파일

CATALINA_HOME 은 Tomcat 이 설치된 위치가 되고
CATALINA_BASE 는 WORKSPACE/.metadata/.plugins/org.eclipse.wst.server.core/tmpN 으로 된다.

Servers 프로젝트내에 위치한 설정파일은 WORKSPACE/Servers/Tomcat v6.0 Server at localhost-config/ 에 위치한다.
여기에서 수정한 tomcat-users.xml 은 CATALINA_BASE/conf/ 에 디플로이된다.
(web.xml 은 수정해도 반영되지가 않네...)


- work/도 CATALINA_BASE 아래에서 찾을 수 있다.

web.xml 버전별 비교

Eclipse, WTP, Derby로 웹 애플리케이션 구현하기

http://www.ibm.com/developerworks/kr/library/dm-0509cline/
  1. Import LowFareAir.war
  2. Import derbyclient.jar, jstl.jar, standard.jar
  3. Import /data/airlinesDB/
  4. Import /devlib/derby.jar, derbynet.jar, derbyrun.jar
  5. build.xml : Derby를 서버로 구동시키는 Ant 스크립트, derby.properties
  6. web.xml 수정 : 데이터베이스 경로, 사용자/암호
  7. com.ibm.sample.DerbyDatabase.java 수정 : 데이터베이스 경로, 사용자/암호
  8. Data Source Explorer에 Derby 설정
  9. Tomcat 시작
- web.xml