Spring: A Developer's Notebook笔记和小结(6)
2006-01-13 21:31
465 查看
/**
作者: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 运行应用程序
作者: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 运行应用程序
相关文章推荐
- Spring: A Developer's Notebook笔记和小结(3)
- Spring: A Developer's Notebook笔记和小结(8)
- Spring: A Developer's Notebook笔记和小结(10)
- [索引帖]Spring: A Developer's Notebook笔记和小结(共21篇,结束)
- [原创]Spring: A Developer's Notebook笔记和小结(17)
- [原创]Spring: A Developer's Notebook笔记和小结(20)
- Spring: A Developer's Notebook笔记和小结(4)
- Spring: A Developer's Notebook笔记和小结(9)
- Spring: A Developer's Notebook笔记和小结(11)
- [原创]Spring: A Developer's Notebook笔记和小结(21)全部完
- Spring: A Developer's Notebook笔记和小结(12)
- Spring: A Developer's Notebook笔记和小结(13)
- [原创]Spring: A Developer's Notebook笔记和小结(14)
- Spring: A Developer's Notebook笔记和小结(1)
- Spring: A Developer's Notebook笔记和小结(5)
- [原创]Spring: A Developer's Notebook笔记和小结(15)
- [原创]Spring: A Developer's Notebook笔记和小结(18)
- Spring: A Developer's Notebook笔记和小结(2)
- Spring: A Developer's Notebook笔记和小结(7)
- [原创]Spring: A Developer's Notebook笔记和小结(16)