前段时间,朋友做了一个“基于MVC的JSP+Servlet+JavaBean整合开发的例子”,有老师质疑它这个是 不是真正的MVC标准?至于这个问题,我们在这里不讨论,本文目的是用Struts2.1.6来取代Servlet。经 我这位朋友同意,我把他所做的那个“JSP+Servlet+JavaBean”的例子,发布给大家,大家可以跟着我的 步骤,一步一步地,把这个Servlet的例子,改写成Struts2.1.6的例子。
这是我朋友的例子,大家先下载下来,导入Eclipse-jee,并把相应的数据库文件导入SQL Server 2000,运行一下他这个小项目。如果出现什么问题,可以到他的技术博客给他留言。 http://www.blogjava.net/gdhqs。
本文重点是如何把他这个Servlet的小项目改写成Struts2.1.6的项目。首先,下载Struts2.1.6的类库 ,http://struts.apache.org/2.1.6/index.html, 下载下来后是这个文件:struts-2.1.6-all.zip,解 压缩后,在lib目录下,找到以下必需的jar包,把它们添加到我们项目的lib目录下。这些jar有:
xwork-2.1.2.jar
struts2-core-2.1.6.jar
struts2-convention-plugin- 2.1.6.jar
ognl-2.6.11.jar
freemarker-2.3.13.jar
commons-loggin- 1.0.4.jar
commons-fileupload-1.2.1.jar
我还是在我朋友的项目基础上做吧,先把“MvcModel”(他的项目名)项目下的web.xml修改一下。你 可以把他配置的所有Servlet给删除掉,然后,配置是Struts2的过滤器,代码如下:
<filter>
<filter-name>struts2</filter-name>
<filter- class>org.apache.struts2.dispatcher.FilterDispatcher</filter-class>
</filter>
<filter-mapping>
<filter- name>struts2</filter-name>
<url-pattern>/*</url- pattern>
</filter-mapping>
这样,就简洁了许多,比配置N个Servlet简洁了。
接着,在项目的Web-INF目录下,新建一个文件夹名为"content",这个目录名要是这个,如果要改成 其它名的话,还得在相应的配置文件中配置,但初学的时候,就按它默认的吧。我们编写的JSP文件,就 放在此目录下。这样做,目的之一为了提高安全性,因为在Web-INF下的所有文件,不能直接访问的。
我们可以把我朋友的那个项目的主页index.jsp文件移到content目录下,或者,自己新建一个也可以 。以下是index.jsp的代码,注意,这个是我朋友项目中的有所不同了,编码改成了UTF-8.
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http -equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>MVC MODEL</title>
</head>
<body>
<h1>MVC MODEL</h1>
<ul>
<li><a href="people!input.action">添加 人员</a></li>
<li><a href="people.action">人员列表 </a></li>
</ul>
</body>
</html>