Spring: A Developer's Notebook笔记和小结(6)

/**
作者:Willpower
来源:Rifoo Technology(
http://www.rifoo.com
时间:2006-01-06
备注:转载请保留以上声明
**/

今天我们开始第二章的行程,第二章的标题是创建一个用户接口,主要讲解SpringMVC的用法。

我们先来看看如何在Tomcat下使用SpringMVC来创建一个简单的用户接口。
值得一提的是,Spring并没有给我们提供web容器,它只是提供一些服务用来简化web开发。其实大多数项目并没有完全使用到J2EE容器中的每个特征。Spring的部署完全可以不依赖具体容器或运行的硬件环境。

我们先去
http://jakarta.apache.org/tomcat的官方网站下载tomcat,我们这里下的版本是5.0.27,书中使用的也是这个版本。当然,也可以不使用tomcat作为容器,只要任何支持JSP1.2和Servlet2.3的容器均可。

我们现在来修改门面RentABike(旁注:门面facade来源于设计模式,其作用是脱离客户和数据层的耦合),我们给它加入了简单的新增,修改,删除,查找功能,即CRUD操作。代码如下:

Example 2-1. RentABike.java
public interface RentABike {
  List getBikes( );
  Bike getBike(String serialNo);
  void saveBike(Bike bike);
  void deleteBike(Bike bike);
  void setStoreName(String name);
  String getStoreName( );
}


接下来,我们先不使用SpringMVC,直接使用一个jsp文件来调用这个门面,输出是某个商店里的所有山地车的列表。注意一下,这里作者把包路径都改到了com.springbook下。我们也可以使用其他的名字,只要能够找到这个类就可以了。

以下是硬编码的JSP代码:

Example 2-2. Listbikes.jsp
<%@ page import="com.springbook.*"%>
<% RentABike store = new ArrayListRentABike
              ("Bruce's Bikes"); %>
<html>
  <head>
    <title>
      <%= store.getStoreName( ) %>
    </title>
  </head>
  <body>
    <h1><%= store.getStoreName( ) %></h1>
    <table border="1" cellspacing="2" cellpadding="2">
      <tr style="font-weight:bold">
        <td>Manufacturer</td><td>Model</td><td>Status</td>
      </tr>
      <% for(int i=0;i<store.getBikes( ).size( );i++) { %>
        <% Bike bike = (Bike)store.getBikes( ).get(i); %>
        <tr>
          <td><%= bike.getManufacturer( ) %></td>
          <td><%= bike.getModel( ) %></td>
          <td><%= bike.getStatus( ) %></td>
        </tr>
      <% } %>
    </table>
  </body>
</html>


这一段代码很简单,我就不做什么说明了。就是循环从一个数组中取值,然后迭代显示在页面上。

为了在web容器中运行,还需要一个web.xml文件。(旁注:其实如果是在Jbuilder或Eclipse等IDE中新建的WEB项目,这个文件是自动生成的)。
代码如下,其实什么额外的内容都不需要。

Example 2-3. web.xml
<!DOCTYPE web-app
  PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.2//EN"
  "
http://java.sun.com/j2ee/dtds/web-app_2_2.dtd">
<web-app>
</web-app>


为了运行这个程序,我们在ANT的build.xml中添加以下任务代码:

Example 2-4. build.xml
<property name="webapp.dir" value="C:/tomcat/webapps/bikestore"/>
<target name="deploy" depends="compile"
    description="Copies the contents of web-app to destination dir">
  <copy todir="${webapp.dir}">
    <fileset dir="${war.dir}"/>
  </copy>
</target>


注:value="C:/tomcat/webapps/bikestore"这个路径可以根据实际情况修改到指定的web路径。

当然,如果大家是在IDE里完成的,也可以直接使用IDE的run。

运行ant build文件的结果如下:
Example 2-5. Output from running Ant on build.xml
buildfile: build.xml

init:
  [mkdir] Created dir: C:/RentABikeApp/war/WEB-INF/classes
  [mkdir] Created dir: C:/RentABikeApp/test/classes

compile:
  [javac] Compiling 9 source files to C:/RentABikeApp/war/WEB-INF/classes

deploy:
  [copy] Copying 9 files to C:/@Tools/Apache Software Foundation/Tomcat
5.0/webapps/bikestore

BUILD SUCCESSFUL
Total time: 2 seconds

小结:我们通过上面的几步完成了如下的操作。
1 编写应用程序的代码。
2 通过web.xml对应用程序进行配置。
3 讲应用程序打包成war文件
4 将应用程序部署到Tomcat中
5 运行应用程序

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值