Struts2.5的的环境搭建及跑通流程
2017-08-21 22:10
344 查看
Struts2.5
struts是开源框架。使用Struts的目的是为了帮助我们减少在运用MVC设计模型来开发Web应用的时间。如果我们想混合使用Servlets和JSP的优点来建立可扩展的应用,struts是一个不错的选择。Struts 是Apache软件基金会(ASF)赞助的一个开源项目。它最初是Jakarta项目中的一个子项目,并在2004年3月成为ASF的顶级项目。它通过采用JavaServlet/JSP技术,实现了基于Java EEWeb应用的MVC设计模式的应用框架,是MVC经典设计模式中的一个经典产品。
Struts中的MVC
Model部分
由JavaBean组成,ActionForm用于封装用户的请求参数,封装成ActionForm对象,该对象被ActionServlet转发给Action,Action根据ActionForm里面的请求参数处理用户的请求。JavaBean则封装了底层的业务逻辑,包括数据库访问等。
View部分
该部分采用JSP实现。Struts提供了丰富的标签库,通过标签库可以减少脚本的使用,自定义的标签库可以实现与Model的有效交互,并增加了现实功能。对应视图的JSP部分。
Controller组件
Controller组件有两个部分组成——系统核心控制器,业务逻辑控制器。系统核心控制器,对应视图的ActionServlet。该控制器由Struts框架提供,继承HttpServlet类,因此可以配置成标准的Servlet。该控制器负责拦截所有的HTTP请求,然后根据用户请求决定是否要转给业务逻辑控制器。
业务逻辑控制器,负责处理用户请求,本身不具备处理能力,而是调用Model来完成处理。对应Action部分。
还有给大家一张图,这个图很形象的描述,也很基础
请求用set,响应用get
Struts2.5的环境搭建
第一步:先上官网下载Struts2.5的相关jar包学习用处的推荐第一个,第一个是一下全部综合 ,第二个是带有struts案例的,第三个是迷你版最终开发上线用,第四个是所有的jar包,第五个是帮助文档官网地址:http://struts.apache.org
第二步:创建Web项目,这个不会的可以看看这篇Jsp运行环境——Tomcat
第三步:我们下下来的文件中,搭建环境只需要运用到几个包,还有声明一下,不同的struts的版本不一样他的jar包引用也不一样的,我这里是Struts2.5的,还有一个是需要注意的是,一般用JSP的都使用Tomcat,这个tomcat的版本也需要在8.0.9以上才可以运行起来
现在挑选几个jar包,将其放入WEB_INF下的lib目录下
小小的解释一下这几个包的作用:
commons-fileupload-1.3.3.jar 用于上传下载
commons-io-2.4.jar java.io 扩展包
commons-lang3-3.6.jar java.lang 扩展包
freemarker-2.3.23.jar 模板引擎
javassist-3.20.0-GA.jar Java字节码库
log4j-api-2.8.2.jar 用于记录日志
ognl-3.1.12.jar 标签库
struts2-core-2.5.12.jar 核心包
第四步:需要编写web.xml文件,只要添加这个filter就可以
<?xml version="1.0" encoding="UTF-8"?> <web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://xmlns.jcp.org/xml/ns/javaee" xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd" id="WebApp_ID" version="3.1"> <display-name>StrutsProject</display-name> <welcome-file-list> <welcome-file>login.jsp</welcome-file> </welcome-file-list> <filter> <filter-name>struts2</filter-name> <filter-class>org.apache.struts2.dispatcher.filter.StrutsPrepareAndExecuteFilter</filter-class> </filter> <filter-mapping> <filter-name>struts2</filter-name> <url-pattern>/*</url-pattern> </filter-mapping> </web-app>
第五步:还需要编写一个Struts.xml文件,这里面写一些控制页面的走向的action实现一下方法啥的,这个文件在src下建立,这里面我多写了几个,有方法的动态调用,还有普通的调用
<?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> <!-- 设置开发者模式 修改action中的名字可以不用重启服务器 --> <constant name="struts.devMode" value="true"></constant> <!-- 只有在后缀中有(.do)的才经过,这个value可以自己修改 --> <constant name="struts.action.extension" value="do"></constant> <!-- 开启动态方法调用 --> <constant name="struts.enable.DynamicMethodInvocation" value="true"/> <!-- strict-method-invocation="true"指动态的方法调用 --> <package name="default" extends="struts-default" namespace=""> <!-- 只允许本地的方法通过 regex:.* 返回值类型一样,后期可以修改通配--> <global-allowed-methods>regex:.*</global-allowed-methods> <action name="demo" class="com.action.DemoAction" method="execute"> <result name="success">/index.jsp</result> </action> <action name="login" class="com.action.LoginAction" method="logintest"> <result name="success">/index.jsp</result> <result name="error">/login.jsp</result> </action> <!-- DMI(DynamicMethodInvocation)动态调用 --> <action name="user" class="com.action.StrutsDemo" > <result name="success">/index.jsp</result> </action> </package> </struts>
在这里解释一下其中一些属性的含义
第六步:我先编写一个jsp的登入页面,这里面的login.do 是我在struts中设定的
<body> <form action="login.do" method="post"> 用户名:<input type="text" name="username"/><br /> 密—码:<input type="password" name="password"/><br /> <input type="submit" /><br /> </form> </body>
第七步:创建action,也就是创建几个类去处理一些业务,继承于ActionSupport,也可以是action,我先写一个登入界面的action,在jsp页面传来的值来判断
我先说说其中的一些问题所在,在以前我们用的是Servlet来实现这些业务的,接收也是用request.getParameter()来获取页面的值的在创建一些方法,调用这些方法逻辑判断其中是否正确再返回,现在呢,Struts框架帮我们封装了,将中间的Servlet不需要我们编写了,想要更深层次的,需要看Struts的源码,,,只是运用很简单,获取只需要定义这个传过来知道一个变量在利用set方法,而响应传给页面用get方法,一般返回的是字符串
public class LoginAction extends ActionSupport { private String username; private String password; private String rString="成功返回"; public String getrString() { return rString; } public String getUsername() { return username; } public void setUsername(String username) { this.username = username; } public String getPassword() { return password; } public void setPassword(String password) { this.password = password; } public String logintest() { String string=null; if (password.equals("123456")&&username.equals("admin")) { string=SUCCESS; }else { string=ERROR; } return string; } }
在说一下,关于传值到页面上可以用EL表达式直接是变量名
就这样环境搭建和流程的跑通也完成了
【版本声明】
相关文章推荐
- ssh环境搭建(1)-lib篇(spring4.2.6+struts2.5+hibernate5.1 )
- eclipse环境搭建ssh(Struts2+Spring2.5+Hibernate3)框架小谈(上)
- Struts2.5环境搭建
- ssh环境搭建(2)-config篇(spring4.2.6+struts2.5+hibernate5.1 )
- struts1执行流程及环境搭建
- struts开发流程,环境搭建,加入jar包的原因分析.
- eclipse环境搭建ssh(Struts2+Spring2.5+Hibernate3)框架小谈(下)
- 自己实现Struts2(一)Struts流程介绍和环境搭建
- 第28天(就业班) 自定义mvc框架、Struts入门及执行流程、环境搭建
- NetBeans6.1下搭建Struts2.0+Spring2.5+Hibernate3开发环境
- struts1执行流程及环境搭建
- struts1.2 + spring2.5 + hibernate3.2框架搭建三之后台代码
- 关于Windows 2008 R2 Web服务器环境搭建、安全流程
- Ubuntu下AMP环境搭建以及代码管理流程介绍
- grunt搭建自动化前端环境(MAC下简单完整流程)
- struts2+Hibernate4+spring3+EasyUI环境搭建之四:引入hibernate4以及spring3与hibernate4整合
- struts2+hibernate环境搭建
- Struts2+Spring3+Mybatis3开发环境搭建
- 使用Maven搭建Struts2+Spring3+Hibernate4的整合开发环境