《研磨struts2》 第二章 Struts2的HelloWorld 之从Servlet+JSP+JavaBean实现MVC开始 (一)

2014-11-24 08:17:05 · 作者: · 浏览: 3

2.3.Struts2的HelloWorld 之从Servlet+JSP+JavaBean实现MVC开始

2.3.1 起点概述

考虑到大部分朋友都是有一定经验的web开发者,因此从Servlet+JSP+JavaBean实现MVC开始,再过渡到Struts2的开发,这样能让大家把以前的知识自然迁移到Struts2上,使得学习曲线变得平滑。

说明一下,由于本机的8080端口被别的软件占用了,所以把tomcat改到了9080端口,以后在程序里出现的时候,也将是9080。

注意:如果要修改Tomcat的端口,需要修改Tomcat中的server.xml配置文件,并且应该在创建动态工程之前进行修改。请找到Tomcat的安装目录下的conf子目录,找到其中的server.xml,在这个文件中搜索8080,会找到相应的配置部分:

java代码:
查看复制到剪贴板打印
connectionTimeout="20000"
redirectPort="8443" />
把上面配置中的8080改为9080即可。
比如Tomcat安装在E:\Struts2\server\apache-tomcat-6.0.29,因此需要修改的配置文件在E:\Struts2\server\apache-tomcat-6.0.29\conf\server.xml

2.3.2 建立动态的web工程

为了使用eclipse-jee-europa中各种与Web开发相关的功能,先来建立一个动态的web工程。

(1)在Package Expolorer视图中的空白处点右键,选择【New】->【Project】,在弹出页面选中web文件夹下的Dynamic Web Project选项,如下界面。

\

图2.10 选择新建动态web工程

(2)选择其中的”Dynamic Web Project”,点击Next。会跳转到如下界面。

\

图2.11 建立web工程的配置1

(3)输入项目名HelloWorld之后,然后选择Target Runtime的值为Apache Tomcat v6.0 ,这样eclipse会帮你导入tomcat下所有的jar包,然后点击Next,得到如下界面:

\

图2.12 建立web工程的配置2

(4)使用默认的配置,点击Next,得到如下界面:

\

图2.13 建立web工程的配置3

(5)修改Context Root的值为小写的helloworld,默认是工程名字,是“HelloWorld”。至于WebContent改不改,就看你的习惯了,用默认的就好了。

点击Finish,一个动态的Web工程就创建好了。

2.3.3 配置工程运行环境

在Servers视图中空白处点击右键,选择【New】->【Server】,得到如下界面。

\

图2.14 选择新建服务器

选择“Tomcat v6.0 Server”选项,点击Next,得到如下界面:

\

图2.15 选择web工程

选择HelloWorld工程,点击Add按钮,把工程添加到右边的列表,然后点击Finish,就完成了配置。这时候,在Package Explorer里会增加一个叫Servers的工程,这是eclipse自动管理的,暂时不需要修改这个工程中的任何文件。



2.3.4 编写JavaBean

用Model2来实现MVC,模型部分是使用JavaBean来实现的,而且视图和控制器之间的数据交互也是通过JavaBean来实现的,因此先来把JavaBean编写好。
这里不需要实现什么复杂的业务逻辑,只是一个简单的数据封装model,有三个属性,分别是account、password和submitFlag,其中的submitFlag是用来封装提交请求的标记,为他们提供相应的getter和setter方法,示例代码如下:

java代码:
查看复制到剪贴板打印
package cn.javass.hello.servletimpl.vo;
public class HelloWorldModel {
private String account;
private String password;
private String submitFlag;
public String getAccount() {
return account;
}
public void setAccount(String account) {
this.account = account;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
public String getSubmitFlag() {
return submitFlag;
}
public void setSubmitFlag(String submitFlag) {
this.submitFlag = submitFlag;
}
public String toString(){
return "account="+account+",password="+password
+",submitFlag="+submitFlag;
}
/**
* 示例方法,表示可以执行业务逻辑处理的方法,
* 比如对数据进行增删改查的操作等等
*/
public void businessExecute(){
System.out.println("正在进行业务处理=======>");
}
}
2.3.5 编写Servlet

Servlet在Model2中的作用相当于MVC中的控制器,这里只是一个简单的实现,基本的实现主要有如下工作:
收集request传递过来的参数。
把这些参数组织成为模型需要的类型
调用模型进行逻辑功能处理
选择下一个页面,先准备好下一个页面需要的数据,然后转向下一个页面。
先来建立Servlet,在src下面先建包cn.javass.hello.servletimpl.servlet,然后在这个包下新建一个类HelloWorldServlet,这个类继承HttpServlet,并重写父类的doPost和doGet方法,其中doGet方法只是转调一下自己的doPost方法即可。在Servlet的doPost方法中,完成上面提到的工作。代码示例如下:

java代码:
查看复制到剪贴板打印
package cn.javass.hello.servletimpl.servlet;
import java.io.IOException;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;