Struts2实例
来源:互联网 发布:北风大数据培训线下 编辑:程序博客网 时间:2024/05/19 02:39
一、 经典的MVC模式
二、 Struts1.x对MVC的实现
三、 Struts1.x的主要组件和作用
组件
作用
ActionServlet
中央控制器
Action
分控制器,调用JavaBean实现业务逻辑,Action可以分为Action、DispatchAction等不同类型
ActionForm
封装参数,实现服务器验证,文件上传等
Forward
转发到目的地,可以是JSP,也可以是另一个Action
Struts-config.xml
配置文件,配置有ActionForm,Action,Forward等,通过XML解析,然后使用反射技术使用该文件
Struts标签库
和JSTL类似,和Struts-config.xml、ActionForm、Action等对象可以紧密集成
四、 Struts1.x 开发实例-登录程序
见案例。
五、 Struts2(WebWork)的MVC
Struts2的MVC架构
六、 Struts2的主要组件
组件
作用
FilterDispatcher
起中央控制器作用的过滤器
Action
处于Model层的Action,调用JavaBean实现业务逻辑
struts.xml
核心配置文件,配置有Action、Result等
result
和forward类似,转发的目的地,支持多种视图技术。
七、 Struts2的实例-登录
在MyEclipse环境中建立一个新的web工程,名称“Struts2Login”,存放路径“f:/Struts2Login”。
在Struts2.0.11版本中找到war包struts2-blank-2.0.11.war,解开该war包,在WEB-INF/lib目录下复制出所有的jar包,这些jar包就是一个Struts2程序所需要的基础jar包,把它们复制到新建的web工程的WEB-INF/lib目录中。
在src目录下建立一个类,包名mypack,类名UserAction,其代码如下:
package mypack;
import com.opensymphony.xwork2.ActionSupport;
public class UserAction extends ActionSupport {
private String username;
private String userpass;
public String getUsername() {
return username;
}
public void setUsername(String username) {
this.username = username;
}
public String getUserpass() {
return userpass;
}
public void setUserpass(String userpass) {
this.userpass = userpass;
}
@Override
public String execute() throws Exception {
if ("Mike".equals(username) && "123".equals(userpass)
|| "张三".equals(username) && "abc".equals(userpass))
return "success";
else
return "error";
}
}
在src目录下建立Struts2的配置文件struts.xml,内容如下:
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE struts PUBLIC
"-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"
"http://struts.apache.org/dtds/struts-2.0.dtd">
<struts>
<!-- 定义包管理配置的action 继承struts-default.xml中的配置 -->
<package name="actions" extends="struts-default">
<!-- 定义Action(login.action) -->
<action name="login" class="mypack.UserAction">
<!-- 定义转发路径对应的字符串名 -->
<result name="success">/Success.jsp</result>
<result name="error">/Error.jsp</result>
</action>
</package>
</struts>
修改web.xml,在其中加入一个过滤器,过滤/*路径。
<!-- 过滤器类 -->
<filter>
<filter-name>struts2</filter-name>
<filter-class>org.apache.struts2.dispatcher.FilterDispatcher</filter-class>
</filter>
<!-- 过滤所有的url请求 -->
<filter-mapping>
<filter-name>struts2</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
在webroot目录下编写3个jsp页面,index.jsp、Success.jsp和Error.jsp,注意这里把page指令中的pageEncoding设置为“utf-8”,就没有中文问题了。
l index.jsp
<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme() + "://"
+ request.getServerName() + ":" + request.getServerPort()
+ path + "/";
%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<base href="<%=basePath%>">
<title>My JSP 'index.jsp' starting page</title>
</head>
<body>
<!-- 提交到action -->
<form action="login.action" method="post">
用户名:
<!-- 参数名和action中的属性名一样 -->
<input type=text name=username>
<br>
密 码:
<input type=password name=userpass>
<br>
<input type=submit name=subm value="提交">
<input type=reset name=reset value="取消">
</form>
</body>
</html>
l Success.jsp
<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme() + "://"
+ request.getServerName() + ":" + request.getServerPort()
+ path + "/";
%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<base href="<%=basePath%>">
<title>My JSP 'Success.jsp' starting page</title>
</head>
<body>
<h1>
欢迎
<%=request.getParameter("username")%>
,登录
</h1>
</body>
</html>
l Error.jsp
<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme() + "://"
+ request.getServerName() + ":" + request.getServerPort()
+ path + "/";
%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<base href="<%=basePath%>">
<title>My JSP 'Error.jsp' starting page</title>
</head>
<body>
<h1>
用户名或密码错误!
</h1>
</body>
</html>
把程序部署在tomcat5.5以上的版本中运行。
- struts2 实例
- Struts2实例
- Struts2实例
- Struts2实例
- Struts2 上传文件实例
- Struts2入门实例
- Struts2输入校验实例
- Struts2 入门实例代码
- Myeclipse 配置struts2实例
- 最简单Struts2实例
- Struts2基本配置实例
- struts2搭建实例
- Struts2整合FreeMarker实例
- struts2+spring+hibernate实例
- struts2简单实例
- Struts2 入门实例
- Struts2入门实例
- Struts2 国际化实例
- IEnumerable接口与IEnumerator
- [整] Mac OS X 10.6 下 android 源码编译
- Create treeview on GLADE
- struts1与struts2的区别
- 【过程分享】系统库的运行sp_msforeachdb 【经典】
- Struts2实例
- Problem3
- Sql Server 2005 与Sql Server Mobile(Sql server 2005 mobile Edition)数据同步步骤以及问题解决方案
- 实习笔记(1)
- c 读书心得
- C语言 数据结构 堆栈的压栈出栈实例
- Android入门:It's All About UI(2)
- 0 PV3D四大核心类
- myeclipse 快捷键