我是靠谱客的博主 爱笑雨,最近开发中收集的这篇文章主要介绍轻量级框架SSH应用与开发——Struts2之学习总结(初阶),觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

简介

Struts框架是流行广泛的一个MVC开源实现,而Struts2是Struts框架的新一代产品,是将Struts1和WebWork两种技术进行兼容、合并的全新MVC框架;结合了两者的优点,并且抛弃了原来Struts1的缺点,因此在稳定性、开发速度、性能等方面都有很好的体现。
Struts2的框架结构:


控制器
S truts2的控制器组件是Struts2整个框架的核心,实际上,所有MVC框架都是以控制器组件为核心的,Struts2的控制器由两部分组成:
核心控制器StrutsPrepareAndExecuteFilter和业务控制器Action。

1.StrutsPrepareAndExecuteFilter
核心控制器StrutsPrepareAndExecuteFilter实际上是一个Servlet过滤器,作用于整个Web应用程序,需要在web.xml中进行配置,其示例配置代码如下:
通常MVC框架只需要在Web应用中加载一个核心控制器即可,对于Struts2而言,就是加载其核心控制器StrutsPrepareAndExecuteFilter。一个应用只要加载了
StrutsPrepareAndExecuteFilter后,就具有了Struts2的基本功能。当配置好核心过滤器,web应用启动时就会加载该过滤器,并在运行过程中所有的请求都需经过
该过滤器过滤后才能进一步处理。
2.Action
Action用于处理用户的请求,因此也被称作业务控制器。每个Action类就是一个工作单元,Struts2框架负责将用户的请求与相应的Action匹配并进行处理,匹配规则需
要在Struts2的配置文件中声明。
Struts2框架实现Action类有以下三种方式:
(1)创建普通的POJO类,该类通常包含一个无参的execute()方法,返回值为字符串类型;
(2)实现Action接口;
(3)继承ActionSupport类。
三种方式大同小异,以下是使用第三种方式的示例代码:
package action;
import com.opensymphony.xwork2.ActionSupport;
public class LoginAction extends ActionSupport{
//序列号
private static final long serialVersionUID = 1L;
private String username;
private String password;
public String getName() {
return username;
}
public void setName(String name) {
this.username = name;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
public String execute() {
if (username.equals("admin") && password.equals("123456")) {
return "success";
}
return "error";
}
}

配置文件
Struts2的配置文件有以下两种:
(1)struts.xml配置文件,用于配置Action相关信息;
(2)struts.properties属性文件,用于配置Struts2的全局属性。
1.struts.xml
在配置一个Action时,必须指定该Action的实现类,并定义该Action的处理结果与视图资源之间的映射关系。示例代码如下:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE struts PUBLIC
"-//Apache Software Foundation//DTD Struts Configuration 2.5//EN"
"http://struts.apache.org/dtds/struts-2.5.dtd">
<struts>
<package name="default" namespace="/" extends="struts-default">
<action name="user" class="action.LoginAction">
<result name="success">/index.jsp</result>
<result name="error">/error.jsp</result>
</action>
</package>
</struts>
action的name自定义,action标识;class为前面所写对应的业务控制器,既action类;result的name与action类中相呼应,映射对应的视图资源。

2.struts.properties
struts.properties属性文件是Struts2应用的全局属性文件,该文件的内容是以“键/值”对的形式存储的,即“key = value”格式。示例代码如下:
#指定web应用的默认编辑码集
struts.i18n.encoding = UTF-8
#当struts.xml修改后是否重新加载该文件,在开发阶段最好打开
struts.configuration.xml.reload = true
#设置浏览器是否缓存静态内容,开发阶段最好打关闭
struts.serve.static.browserCache = false
ps:struts.properties 是可以不要的!!!因为 struts.xml文件中 有 <constant> 这个节点, 你可以把你想写在struts.properties的自定义配置写在struts.xml文件当中.
先加载 struts.xml,再加载 struts.properties,最后再加载web.xml。也就是说 struts.properties是可以覆盖 struts.xml里面的 配置的,具体是否要struts.properties,
还是得具体情况,具体分析。

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE struts PUBLIC
"-//Apache Software Foundation//DTD Struts Configuration 2.5//EN"
"http://struts.apache.org/dtds/struts-2.5.dtd">
<struts>
<package name="default" namespace="/" extends="struts-default">
<action name="user" class="action.LoginAction">
<result name="success">/index.jsp</result>
<result name="error">/error.jsp</result>
</action>
</package>
</struts>

extends,继承struts-default包,struts-default是Struts2框架的默认抽象包,是配置Action的基础,通常定义包时都应继承它。

struts2的Action都必须配置在package里,这里使用默认package--default struts.xml是从上往下解析处理的,因此被继承的package要放在继承package之前,且
任意两个包的名字不能相同,否则会抛出异常。如果在同一个包中配置了两个name相同的Action,则后一个Action会覆盖前一个Action。

namespace决定了action的访问路径,如果没有namespace属性字段的默认为"",是为默认命名空间,可以接收所有路径的action,会被最后才搜索
namespace也可以写为/,或者/xxx,或者/xxx/yyy。
当namespace为"/"时,其访问请求的URL如下:
http://ip:端口号/web应用路径名称/user.action
当namespace为"/xxx",如"/admin",其访问请求的URL如下:
http://ip:端口号/web应用路径名称/admin/user.action

表单代码如下:
<%@ 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=utf-8">
<title>Insert title here</title>
</head>
<body>
<form action="user.action" method="post">
<p>用户名:<input type="text" name="name"><br>
<p>密码:<input type="password" name="password"><br>
<input type="submit" value="登陆">
</form>
</body>
</html>

在任意新建index.jsp与error.jsp即可




最后

以上就是爱笑雨为你收集整理的轻量级框架SSH应用与开发——Struts2之学习总结(初阶)的全部内容,希望文章能够帮你解决轻量级框架SSH应用与开发——Struts2之学习总结(初阶)所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(42)

评论列表共有 0 条评论

立即
投稿
返回
顶部