'2008/04'에 해당되는 글 2건
- 2008/04/15
- 2008/04/11
후 JSP&Servlet관련 책을 산지 벌써 몇달이 지났지만 이제서야 책을 꺼내서 이걸 연습하는 나도 참@_@;;; 좀 더 빨리 익혀둘걸....이라는 생각이 계속 해서 든다...
오늘은 JSP&Servlet관련 예제를 하나 볼까한다.
아직 처음 책을 봤을땐 JSP&Servlet 에 대한 감은 잘안오지만 이번 예제를 하면서 어떻게 JSP&Servlet 이 돌아가는지 살짝 감이 오기 시작하였다.
그럼 살짝 예제를 들어가기전에 숙지해야할 몇가지 사항을 보도록하자.
보통 웹 애플리케이션 개발을 하기위해서는 4가지의 단계를 거쳐서 개발을 진행한다.
1 - 웹 애플리케이션에서 사용자 화면에 대한 검토 ( 전 이것만 자신이 있는... )
2 - 아키텍처 살펴보기
3 - 웹 애플리케이션을 생성 및 배포하기 위한 개발 및 배포 환경 설정
4 - 애플리케이션 개발
위의 4가지 사항을 항시 생각하면서 웹 애플리케이션의 개발에 임하도록 하자.
그럼 다시 본론으로 돌아와서 예제 화면을 보도록하자.
사용자 화면은 다음 아래의 그림과 같다.
위에 화면에서도 확인 할수 있듯이 간단한 맥주 선택에 대한 쿼리를 날리게 되면 거기에 해당하는 응답을 받아 뿌려주는 웹 애플리케이션 프로그램이다.
사용자 화면 설정은 간단하게 편한대로 작성을 하면된다. 아래의 소스 코드는 사용자 화면 부분인 form.html 의 코딩내용이다.
( form.html )
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<body>
<h1 align="center">Beer Selection Page</h1>
<form method="POST" action="SelectBeer.do">Select beer characteristics<p>
Color:
<select name="color" size="1">
<option>light
<option>amber
<option>brown
<option>dark
</select>
<br><br>
<center>
<input type="SUBMIT">
</center>
</form>
</body>
</html>
우선 눈여겨 봐야할 곳은 빨간색으로 표기한 부분과 볼드체로 표기한 부분이다.
SelectBeer.do는 호출되어야할 서블릿이 무엇인지 지정해주는 역할을 한다. 그렇다고 SelectBeer.do는 실제 파일명이 아니다. 정확히 말하면 논리적인 이름으로 생각하면될것이다. 즉, HTML에서 사용할 가상이름정도로 생각되어질수 있다. 이는 다음에 작성될 XML파일 ( web.xml )에 보면 selectBeer.do가 불리는걸 확인할 수 있다.
(web.xml)
<?xml version="1.0" encoding="UTF-8"?>
<web-app id="WebApp_ID" version="2.4" xmlns="http://java.sun.com/xml/ns/j2ee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">
<display-name>
Ch1ServletTest1</display-name>
<welcome-file-list>
<welcome-file>index.html</welcome-file>
<welcome-file>index.htm</welcome-file>
<welcome-file>index.jsp</welcome-file>
<welcome-file>default.html</welcome-file>
<welcome-file>default.htm</welcome-file>
<welcome-file>default.jsp</welcome-file>
</welcome-file-list>
<servlet>
<servlet-name>BeerSelector</servlet-name>
<servlet-class>Test.Beer</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>BeerSelector</servlet-name>
<url-pattern>/SelectBeer.do</url-pattern>
</servlet-mapping>
</web-app>
볼드체로 표기한 부분을 잠시 설명하자면 Servlet-class 태그로 묶인건 실제 자바 코드가 있는 부분을 패키지명과 클래스명까지 나타낸 것이고, url-pattern태그는 위에 form.html에서 지정한 이름 즉, 클라이언트가 사용할 이름이라고 생각을 하면된다. 참고로 BeerSelector이름은 DD내에서만 사용되니 기억하도록 하자.
다음은 서블릿 코드를 보도록 하자.
( Beer.java )
public class Beer extends HttpServlet{
public void doPost(HttpServletRequest request, HttpServletResponse response) throws IOException, ServletException {
String c = request.getParameter("color");
BeerExpert be = new BeerExpert();
List result = be.getBrands(c);
request.setAttribute("styles", result);
RequestDispatcher view = request.getRequestDispatcher("result.jsp");
view.forward( request, response );
}
}
파란색 볼드체인 doPost는 앞에 form.html을 작성하면서 정의한 method = POST라고 하였기 때문에 doPost()를 여기서 정의를 한다.
나머지는 HttpServlet을 상속받고 구현한다라는 걸 눈여겨 보면 될것이다.
다음코드는 모델클래스이다.
( BeerExpert.java )
public class BeerExpert {
public List getBrands(String color){
List brands = new ArrayList();
if( color.equals("amber") ){
brands.add("Back Amber");
brands.add("Red Moose");
}
else if( color.equals("light")){
brands.add("Jail Pale Ale");
brands.add("Gout Stout");
}
else if( color.equals("dark")){
brands.add("DARK Black");
brands.add("BEER STOUT");
}
else if( color.equals("brown")){
brands.add("Brown Color");
brands.add("HITE");
}
return brands;
}
}
여가서는 그렇게 설명할 부분이 없는것 같다. color에서 해당 개체가 selector에 의해 선택되어졌을때 추가되어지는 것을 정의해 놓은 코드이다.
다음 코드는 form.html에서 다양한 색깔을 선택하면 거기에 맞는 맥주는 추천해주는 코드를 알아보도록하자.
( result.jsp )
<%@ page import="java.util.*" %>
<html>
<body>
<h1 align="center">Beer Recommendations JSP</h1>
<p>
<%
List styles = (List)request.getAttribute("styles");
Iterator it = styles.iterator();
while(it.hasNext()){
out.print("<br>try: " + it.next());
}
%>
</body>
</html>
보통 빨간색으로 표기한 <% %> 는 JSP에서 자바코드를 적용하기 위해서는 저 태그 안에 코딩을 해야 적용이 되는 사레를 볼수가 있다.
참고로 "컴파일러는 JSP는 컴파일 하지 않는다" 라는 어귀는 기억해두도록하자.
자~ 그럼 테스트위해 작성해야할 파일 4가지를 다 작성해보았다. 작성된 파일은 각각 알맞은 패키지에 넣도록하자.
보통 jsp,html관련 파일들은 webContent쪽 폴더에 위치하면되고, web.xml파일은 WEB-INF안에 위치해두면 된다. 그리고 마지막으로 JAVA관련 클래스 파일은 자바리소스라는 src폴더에 위치시켜주면 될것이다.
다음 화면은 원하는 색깔을 form에서 선택하면 거기에 맞는 result를 뿌려주는 화면을 나타낸것이다.
최근에는 Eclipse로 JSP&Servlet을 공부해 보려고 이리 저리 만지던 도중, 기본 설정만으로는 JSP&Servlet을 Eclipse를 통해서 만들수 없다는걸 알게 되었다.
그럼 간단하게 Eclipse에서 Servlet을 사용하기 전 설정해야하는 방법을 알아보도록 하자.
우선 Servlet을 사용하기 위해서는 Tomcat이라는 plugin을 받아서 설치하도록 한다.
http://tomcat.apache.org/
위의 주소로 들어가서 받으면 되는데, 버전은 자신이 원하는 버전을 받아서 설치를 하면된다.
Tomcat을 받아 설치를 하고 난 다음, Eclipse를 실행하면 귀여운 고양이 아이콘을 확인할수 있는데 이 아이콘을 확인을 하면 자신의 Eclipse에 tomcat이 설치가 완료된것이다.
그런 다음 Eclipse내의 window -> preferences 를 보면 tomcat 가 설치된것을 확인 할수 있다.