Struts工作原理和入门小实例
来源:互联网 发布:淘宝上的死飞耐用吗 编辑:程序博客网 时间:2024/04/26 22:39
Struts的工作原理及实例说明
一.MVC引入
1.m即model,是模型层;v即view,是视图层;c即controller,是控制层。
2.mvc的工作原理
控制器:收集客户发送的请求并决定选择哪个模型来完成该请求。
模型层:完成客户请求所需的逻辑处理。
视图层:将模型层得到的数据以一定的格式呈现给用户。
3.mvc的优点
(1).低耦合:将各功能模块代码进行分离,降低了代码的耦合度,利于系统的维护。
(2).提高代码的复用:一个完成相应功能的模型可以重复利用,可以被多个视图使用,提高代码的复用。
二.Java mvc优秀代表 struts的引入
1.struts的工作原理
(1)客户端提交一个HttpServletRequest请求(.action或JSP页面)
(2)请求被提交到一系列Filter过滤器。
(3)FilterDispatcher是Struts2控制器的核心,它通常是过滤器链中的最后一个过滤器
(4)请求发到FilterDispatcher后,FilterDispatcher询问ActionMapper是否需要调用某个Action来处理这个Request(一般根据URL后缀是否为.action来判断)
(5)如果ActionMapper决定需要调用某个Action,FilterDispatcher则把请求交到ActioProxy,由其进行处理.
(6)ActionProxy通过Configuration Manager(它会访问struts.xml)询问框架的配置文件,找到需要调用的Action类.
(7)ActionProxy创建一个ActionInvocation实例,而ActionInvocation通过代理模式调用Action,(在调用之前会根据配置文件加载相关的所有Interceptor拦截器)
(8)Action执行完毕后,返回一个result字符串,此时再按相反的顺序通过Interceptor拦截器.
(9) 最后ActionInvocation负责根据struts.xml中配置的result元素,找到与返回值对应的result,决定进行下一步输出.
(10)将模型层经过逻辑运算得到的数据带到前端页面(.jsp,.html等)
2.web.Xml配置文件
struts2 org.apache.struts2.dispatcher.ng.filter.StrutsPrepare AndExecuteFilter
struts2
/*
3.struts.Xml配置文件解析
(1)Package:表示一个逻辑单元,或者模块名称。所以我们可以把同一个模块的action配置到一个package里面。
(2)action
Name属性:请求的url路径。
Class属性必须写完整的包名+类名.
method属性方法名。
(3)路径
绝对路径写法:/项目名称/namespace/actionname.action
相对路径写法:namespace/actionname.action
三.一个简单的struts项目的开发
1.导jar包
struts2-core-2.2.1.jar:Struts2框架的核心类库。
xwork-core-2.2.1.jar:Xwork核心类库,Struts2在其上构建。
ognl-3.0.jar:对象图导航语言(Object Graph Navigation Language), 它是一种功能强大的表达式语言(Expression Language,简称为 EL),通过它简单一致的表达式语法,可以存取对象的任意属性, 调用对象的方法,遍历整个对象的结构图,实现字段类型转化等功能。
freemarker-2.3.16.jar:Struts 2的UI标签的模板使用FreeMarker编写。
commons-fileupload-1.2.1.jar:文件上传组件,2.1.6版本后必须加入此文件。
commons-io-1.3.2.jar:IO输入输出流组件,主要完成文件的读写功能。
javassist-3.7.ga.jar:Javassist是一个开源的分析、编辑和创建Java字节码的类库。(在struts-2.2.1\apps\struts2-blank-2.2.1.war下的lib中找)
commons-logging-1.0.4.jar:ASF出品的日志包,Struts2框架使用这个日志包来支持Log4J和JDK 1.4版本之上的日志记录。
2.配置web.xml文件
配置过滤器,对用户的请求进行过滤,
3.action类
package action;
publicclass LoginAction {
private String username;
private String password;
publicString getUsername() {
returnusername;
}
publicvoid setUsername(String username) {
this.username = username;
}
public String getPassword() {
returnpassword;
}
publicvoid setPassword(String password) {
this.password = password;
}
/**
* 登录
*/
public String login(){
if(username.equals(“admin”)&&password.equals(“ok”))
{
return”success”;
}
else{
return”fail”;
}
}
}
4.创建struts.xml文件,注册Action类。
<?xmlversion="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><packagename="user"namespace="/"extends="struts-default"><actionname="login"class="action.LoginAction"method="login"><resultname="success">/success.jsp</result><resultname="fail">/fail.jsp</result></action></package><!-- Add packages here --></struts>
5.创建JSP文件。
<!DOCTYPE html><html><head><metacharset="UTF-8"><title>Insert title here</title></head><body><formaction="login.action"> 用户名:<inputtype="text"name="username"/><br> 密码:<inputtype="password"name="password"/><br> <inputtype="submit"value="登录"/></form></body></html>
- Struts工作原理和入门小实例
- 浅谈Struts MVC工作原理及实例
- Struts工作原理和Struts内部工作流程:
- Struts工作原理和Struts内部工作流程
- SpringMVC入门实例(解析工作原理)
- MVC工作原理与入门实例
- Struts framework的工作原理和组件
- Struts framework的工作原理和组件
- Struts的工作原理和优缺点
- Struts framework的工作原理和组件
- struts第一讲为什么有struts和工作原理i
- Struts原理和struts1.x完整实例
- Struts工作原理
- struts 工作原理解释
- struts 简介 工作原理
- Struts的工作原理
- struts的工作原理
- Struts 2工作原理
- Mybatis详解
- 【JavaWeb-8】JSP原理、3大命令、6大动作、9大对象、4大域对象、EL表达式、JSTL的几个标签
- leetcode之137. Single Number II(C++解法 哈希表计数)
- 工厂模式Factory
- Android使用React Native 出现的问题
- Struts工作原理和入门小实例
- 保存数据时结束编辑
- 机器学习(2.7.2)数据知识积累——概率论-超几何分布
- Linux下查找特定时间创建的文件
- 云服务中消灭小黄图的大宝剑---X次元口袋
- JNDI学习总结(三)——Tomcat下使用Druid配置JNDI数据源
- redis常用命令
- jQuery之$(document).ready()使用介绍
- 【SSM 1】SpringMVC、Spring和Struts的区别