struts2的运行环境认识

纯JSP:HTML代码负责页面的布局和显示外观,Java代码负责提取动态数据,实现业务逻辑。缺点:代码的可读性变差,维护难度增加,不利于人员分工。
Model1:JSP+JavaBeans,缺点:在JSP页面中嵌入过多的Java代码(包括流程控制代码和部分的逻辑处理代码)。
Model2:JSP+Servlet+JavaBeans,符合MVC架构模式。缺点:存在多个控制器,在编写控制器时,对于页面导航的处理会比较复杂。

基于MVC架构模式的Web应用程序
相同点是MVC架构的调用流程
第一:所有的请求直接访问控制器,由控制器对请求进行分发;
第二:控制器实例化JavaBean对象,由JavaBean对象处理业务逻辑以及承载数据;
第三:控制器根据请求处理的结果,向用户呈现相应的视图。
不同点:
第一:用户请求URL的不同对应了不同的处理单元;
第二:不同表单提交的数据需要不同的JavaBean对象来保存数据;
第三:请求处理结果的不同导致控制器向用户呈现不同的视图。
由此衍生出了基于MVC架构模式的Web开发框架,其中之一就是Struts。在Struts中,对于需要变化的地方(即上述的不同点)采用外部配置文件的方式来解决。

Struts框架历史
2000年5月,Craig R.McClanahan(1960年出生于丹麦Aarhus)提交雏形版本的Struts框架。
2001年6月,Struts1.0发布。
2007年,Struts2推出。
2010年12月20日,Struts 2.2.1.1发布。
2011年5月5日,Struts 2.2.3发布。
2011年9月7日,Struts 2.2.3.1发布。


1、准备工作:
Struts2的最低要求是Servlet API 2.4, JSP API 2.0, Java 5, Tomcat 5。
第一步:创建Web工程。
第二步:添加Struts2应用最少所需的jar包(不需要添加下载包中的所有jar包)。
struts-2.0.14最少所需的jar包:
struts2-core-2.0.14.jar
xwork-2.0.7.jar
ognl-2.6.11.jar
freemarker-2.3.8.jar
commons-logging-1.0.4.jar

struts-2.2.3最少所需的jar包:
struts2-core-2.2.3.jar
xwork-core-2.2.3.jar
ognl-3.0.1.jar
freemarker-2.3.16.jar
javassist-3.11.0.GA.jar
commons-logging-1.1.1.jar
commons-io-2.0.1.jar
commons-fileupload-1.2.2.jar
commons-lang-2.5.jar

第三步:配置Struts2控制器。
在Struts2.0中提供了一个核心控制器,用于对所有的请求进行统一处理,由名字为org.apache.struts2.dispatcher.FilterDispatcher的Servlet过滤器充当的,需要在web.xml文件中配置该过滤器。
<filter>
    <filter-name>struts2</filter-name>
    <filter-class>org.apache.struts2.dispatcher.FilterDispatcher</filter-class>
</filter>
<filter-mapping>
    <filter-name>struts2</filter-name>
    <url-pattern>/*</url-pattern>
</filter-mapping>

在Struts2.2中该控制器由名字为org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter的Servlet过滤器充当的,需要在web.xml文件中配置该过滤器。
<filter>
 <filter-name>struts2</filter-name>
 <filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class>
</filter>
<filter-mapping>
 <filter-name>struts2</filter-name>
 <url-pattern>/*</url-pattern>
</filter-mapping>

第四步:在类路径(classes)下面添加struts.xml文件,即在src下面添加struts.xml文件。struts.xml文件模板可以从example.xml(struts2下载包中的apps\struts2-blank\WEB-INF\classes目录)中获取:
<?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>
    <!-- package元素将多个action元素组织为一个逻辑单元 -->
    <package name="default" namespace="/" extends="struts-default">   
     <action name="login" class="com.struts2.action.LoginAction">
      <!-- 当name是success时可以省略不写 -->
      <result name="success">/result.jsp</result>
     </action>
     <!-- 使用struts2标签,验证是否填写了表单内容 -->
     <action name="login2" class="com.struts2.action.Login2Action">
      <result>/result.jsp</result>
      <result name="input">/login2.jsp</result>
      <result name="failure">/login2.jsp</result>
     </action>
    </package>
</struts>
struts.xml中的<result>/result.jsp</result>没有指定name时,name的默认值是success。

2、开发简单的Struts2应用(使用HTML form),编写一个Action类不继承Struts2的ActionSupport:
添加public String execute() throws Exception方法
 
3、开发简单的Struts2应用(使用Struts2 form),编写一个Action类不继承Struts2的ActionSupport:
添加public String execute() throws Exception方法
Struts2中的form标签method属性默认值是post。
表单:<s:form action="login" namespace="/"></s:form>此处的action可以是login,或者login.action
文本框:<s:textfield name="userName" label="用户名"/>
密码框:<s:password name="password" label="密码"/>
提交按钮:<s:submit value="登录"/>

4、开发简单的Struts2应用(使用Struts2 form),编写一个Action继承Struts2的ActionSupport:
添加public String execute() throws Exception方法
public void validate()方法
错误信息:
严重: HTTP Status 404
Could not find action or result. No result defined for action com.struts2.action.LoginAction and result input - action
解决办法:在struts.xml中给LoginAction增加result标签,该标签的name属性值设置为input即可。

Python网络爬虫与推荐算法新闻推荐平台:网络爬虫:通过Python实现新浪新闻的爬取,可爬取新闻页面上的标题、文本、图片、视频链接(保留排版) 推荐算法:权重衰减+标签推荐+区域推荐+热点推荐.zip项目工程资源经过严格测试可直接运行成功且功能正常的情况才上传,可轻松复刻,拿到资料包后可轻松复现出一样的项目,本人系统开发经验充足(全领域),有任何使用问题欢迎随时与我联系,我会及时为您解惑,提供帮助。 【资源内容】:包含完整源码+工程文件+说明(如有)等。答辩评审平均分达到96分,放心下载使用!可轻松复现,设计报告也可借鉴此项目,该资源内项目代码都经过测试运行成功,功能ok的情况下才上传的。 【提供帮助】:有任何使用问题欢迎随时与我联系,我会及时解答解惑,提供帮助 【附带帮助】:若还需要相关开发工具、学习资料等,我会提供帮助,提供资料,鼓励学习进步 【项目价值】:可用在相关项目设计中,皆可应用在项目、毕业设计、课程设计、期末/期中/大作业、工程实训、大创等学科竞赛比赛、初期项目立项、学习/练手等方面,可借鉴此优质项目实现复刻,设计报告也可借鉴此项目,也可基于此项目来扩展开发出更多功能 下载后请首先打开README文件(如有),项目工程可直接复现复刻,如果基础还行,也可在此程序基础上进行修改,以实现其它功能。供开源学习/技术交流/学习参考,勿用于商业用途。质量优质,放心下载使用。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值