후 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를 뿌려주는 화면을 나타낸것이다.
위의 화면처럼 나온다면 JSP&Servlet 예제1은 성공한 것이다.
휴 이래 저래 주절 주절 적었지만 역시....보고 익힌걸 바로 적는게 이렇게 어려운것일줄 몰랐었다. ( 책 내용 그대로이긴 하지만^^:; )
좀 더 분발해서 나만의 웹 애플리케이션을 만들도록 나아가봐야 겠다.~~
< 참고 도서 >
Head First Servlet&JSP

PREV