Struts2框架概述、Struts简介、Struts环境搭建、Struts执行流程、Struts文档、Struts配置文件的加载顺序-day01

第一节 框架概述

1.1 什么是框架

  • 所谓框架,就是把一些繁琐的重复性代码封装起来,使程序员在编码中把更多的精力放到业务需求的分析和理解上面。
  • 特点:封装了很多细节,程序员在使用的时候会非常简单。

1.2 三大框架

很久很久以前,有三大框架:Struts、Hibernate、Spring(SSH)

现在常用的三大框架:SpringMVC、Mybatis、Spring(SSM)

1.3 三层架构

MVC & Web-Service-Dao
在这里插入图片描述

1.4 MVC、Servlet、Filter

MVC

  • M :Model 模型,封装数据。javabean
  • V :view 视图,展示界面。jsp、html
  • C :Controller 控制器,控制程序流程。servlet、filter

Servlet

在这里插入图片描述

Filter

在这里插入图片描述

  • Servlet能做的事情,过滤器也可以做到。并且过滤器比Servlet还多了一个放行的功能,因此过滤器比Servlet功能更为强大。
  • 结论就是:过滤器同样也适合做控制器。

第二节 Struts简介

2.1 Struts2简介

  • Struts2是Apache发行的MVC开源框架。注意:它只是表现层web(MVC)框架。

2.2 Struts2来历

  • Struts1

    • Struts1也是apache开发的一套mvc的开源框架。在2005年之前非常流行。
    • 弊端:Struts1的核心控制器就是一个Servlet。随着使用者的增多,弊端开始出现。
  • Struts2

    • 在很久以前,有一个设计超前的框架XWork,后来推出了XWork1和WebWork2。
    • Struts2就是apache和OpenSymphony组织合并开发出来。
    • 里面包含了WebWork2的核心及Struts的一些特性和功能。除此之外,和Struts1没有任何关系了。

第三节 Struts的环境搭建

3.1 下载Struts2开发包

Struts2.3.33下载地址: https://archive.apache.org/dist/struts/2.3.33/.
在这里插入图片描述

3.2 解压后的目录结构

  • 解压zip后的目录结构如下图:
    ![在这里插入图片描述]

3.3 Struts jar包介绍

  • 在apps目录中,提供了一个 struts2-blank.war
  • 作为初学者在项目集成中,我导入了lib下的所有包
  • jar的介绍
struts2-core-2.3.33.jarStruts核心jar包
xwork-core-2.3.33.jar
ognl-3.0.19.jarOGNL表达式
log4j-core-2.3.jar开源日志 log for java
log4j-api-2.3.jar
asm-3.3.jar基于子类的动态代理
asm-tree-3.3.jar提供其于对象的表现形式
asm-commons-3.3.jar 提供基于事件的表现形式
commons-fileupload-1.3.2.jar文件上传所需要的包
asm-commons-3.3.jar
freemarker-2.3.22.jar页面 模板框架
javassist-3.11.0.GA.jar对于字节码的支持,jBoss的一个子项目
commons-lang3-3.2.jar 对java.lang的扩展
  • 这里选择struts2-blank.war 下的lib里的jar包作为下面第一个Struts项目的lib
    在这里插入图片描述

3.4 第一个Struts项目

  • 目标:集成Struts需要的东西

第一步:创建Eclipse Web工程

小贴士:
这里使用的是Eclipse+Tomcat8.5+jdk1.8环境

  1. 创建一个Web工程,名为day01_struts2_demo01
    首先,你要先打开Eclipse软件,打开后在工具栏依次点击【File】>>>【New】>>>【Dynamic Web Project】,这个就代表新建的项目是WEB项目

小贴士:
如果没有找到【Dynamic Web Project】请看下一步

在这里插入图片描述

  • 如果我们找不到【Dynamic Web Project】这个选项,说明以前没有建立过WEB项目,所以不在快捷导航里,这时我们点击【Other】这个选项。
    在这里插入图片描述

  • 这个界面弹出的是查询窗口,查询的内容是所有我们可以建立的项目类型,比如JAVA项目、WEB项目等,都可以再找个窗口查询得到。

  • 我们是要建立WEB项目,所以在查询输入框里输入【WEB】,下面会列出所有WEB相关的项目,现在,我们知道【Dynamic Web Project】这个类型的项目了,用鼠标选中它,然后点击【Next】按钮。
    在这里插入图片描述

  • 这个是填写项目的基本信息,包括项目名、项目运行时服务器版本,你可以选择tomcat或者其他都可以,看你的项目需要,在这里我输入一个【day01_Struts2_demo1】来完成项目的建立,输入完毕后我们点击【Next】按钮
    在这里插入图片描述

  • 这个窗口显示的WEB项目中需要编译的JAVA文件的目录,默认是SRC目录,这个我们不需要改,直接点击【Next】
    在这里插入图片描述

  • 接着弹出窗口,显示的是我们的WEB项目,WEB文件相关的目录,就是html或者jsp还有js那些web相关的文件存放的目录,默认是【WebContent】,你也可以修改成你想要的文件名,注意,下面有个复选框,表示的是是否要自动生成web.xml文件。

  • web.xml:这个文件是WEB项目的核心文件,也是WEB项目的入口,老版本的Eclipse都会有这个文件,但是新版本的Eclipse因为可以使用在JAVA代码中注解的方式,所以提供让用户选择是否要生成,如果是新手最好选择生成。这里选择生成。

  • 然后我们点击【Finish】
    在这里插入图片描述

  • 下面就是我们新建的WEB项目的目录结果

  • JAVA存放目录:SRC

  • WEB文件目录:WebContent

  • WEB配置文件:web.xml

现在,可以开始你的Struts2之旅了!
在这里插入图片描述

第二步:导jar包

  • 把struts2-blank.war中的lib下所有的包导入自己创建的工程

  • 【Ctrl + a全选、Ctrl + c复制】
    在这里插入图片描述

  • 右键lib 【Paste】粘贴进去
    在这里插入图片描述

第三步:添加配置文件

  • 把struts2-blank里classes目录下的struts.xml 配置文件拷贝到自己创建工程的src中
    在这里插入图片描述
    在这里插入图片描述

  • 然后删除struts标签的所有内容,一步步添加struts标签内容的知识
    在这里插入图片描述

第四步:配置struts的过滤器

  • web.xml中,配置Filter
<!-- 配置struts的过滤器 【拦截所有请求】-->
<filter>
        <filter-name>struts2</filter-name>		
        <filterclass>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class>
</filter>

<filter-mapping>
        <filter-name>struts2</filter-name>
        <url-pattern>/*</url-pattern>
</filter-mapping>
  • 配置的目的是用于拦截请求,由Struts的规则去处理请求,而不是用以前的servlet去处理

第五步:Tomcat运行Web工程

  • 如果tomcat运行没有报错,就代表配置成功
    在这里插入图片描述

3.5 Struts的Action配置

  • 目标:配置一个请求的完整流程

第一步:

  • 在struts.xml中配置package和action,写如下代码
<struts>
	<package name="p1" extends="struts-default">
	<!-- 
	package:表示包
		    name:包名,在struts.xml文件不能有相同的包名,包名是惟一
		    extends:继承,固定struts-default
	action:动作
			name:(这里的hello)相当于Servlet的映射路径(@WebServlet)
			class:处理请求的类,相当一个Servlet类
			method:处理请求的方法
	result:结果,写返回的jsp页面
	 -->
	 	<action name="hello" class="com.it.web.action.HelloAction" method="sayHello">
			<!-- 成功jsp页面是从WebContent开始找的 -->
			<result name="success">/success.jsp</result>
		</action>
	</package>
</struts>

第二步:

  • 写一个HelloAction的类,需要写个sayHello方法
package com.it.web.action;
public class HelloAction {
	public String sayHello(){
		System.out.println("HelloAction的sayHello方法被调用了...");
		return "success";
	}
}

第三步:

  • 在WebContent中添加一个success.jsp页面
<body>
由HelloAction的sayHello方法返回的页面
</body>

第四步:

  • 浏览器访问下面三个路径:
    • http://localhost:8080/day01_struts2_demo01/hello 【能正常访问】
      在这里插入图片描述
    • http://localhost:8080/day01_struts2_demo01/hello.action 【也能正常访问】
      在这里插入图片描述
    • http://localhost:8080/day01_struts2_demo01/hello.act 【不能正确访问】
      在这里插入图片描述
    • 因为struts默认是处理.action的请求,或者不带action也可以,其它后缀的都不会拦截,会放行,如jsp

小贴士:
这里跳转到了sucess.jsp页面,但路径没有改变,内部使用了转发。

3.6 可能出现的问题:struts.xml输入时没有提示

  • 如果struts里没有标签提示

    • 第一种解决办法是电脑联网,会自动搜索struts的dtd
    • 第二种解决办法配置本地dtd,打开偏好设置,安装下面的步骤操作即可
    • struts-2.3.dtd文件可以从struts2-core-2.3.33.jar包内找到
      在这里插入图片描述
  • 复制这个文件在项目中创建一个dtd文件夹放入
    在这里插入图片描述

  • 如果找不到,也可以解压struts2-core-2.3.33.jar在里面找到
    在这里插入图片描述

  • 【Windows】>>>【Preferences】打开偏好设置
    在这里插入图片描述

在这里插入图片描述

  • 再将struts.xml中的网址:http://struts.apache.org/dtds/struts-2.3.dtd 复制进去

在这里插入图片描述

小贴士:
这里就是告诉Eclipse要去网上找dtd的时候优先找本地的

第四节 Struts执行流程图

在这里插入图片描述

第五节 查看Struts的文档

小贴士:
User created标识的是以后我们经常要写的

第六节 Struts配置文件的加载顺序

6.1 加载时机

  • struts有很多配置文件,如下面6.2的表格
  • 当应用被tomcat加载的时候,struts2的配置文件就已经被加载过了。

6.2 加载顺序

顺序配置文件名所在位置说明
1default.propertiesstruts2-core-2.3.15.3.jar\org\apache\struts2不能修改
2struts-default.xmlstruts2-core-2.3.15.3.jar不能修改
3strtuts-plugin.xml在struts2提供的插件jar包中不能修改
4struts.xml我们的应用中可以修改:推荐
5struts.properties我们的应用中可以修改
6web.xml我们的应用中可以修改,可以给过滤器配置参数

6.3 default.properties的一些默认配置

struts.i18n.encoding=UTF-8国际化
struts.action.extension=action,,默认访问扩展后缀,可以是action,也可以没有后续
struts.devMode = false是否是开发模式。开发模式:改了配置文件,不需要重启。输出更多的错误信息。开发阶段建议为true。
  • 未开启开发模式报错网页
    在这里插入图片描述
  • 开启开发模式后报错网页,有了更多错误信息还定位了错误位置
    在这里插入图片描述
  • 在struts.xml文件中配置如下代码即可
<struts>
<!-- 配置开发模式 -->
	<constant name="struts.devMode" value="true"></constant>
</struts>

6.4 struts-defaults中默认的拦截器分组

  • 如图,默认的包里有一结果类型,如转发和重定向
    在这里插入图片描述
  • 如图,默认情况下,struts会使用defaultStack的拦截器分组
    在这里插入图片描述
  • struts-defualts中主要的内容
    • 结果类型、拦截器分组,默认使用的接替器分组
      在这里插入图片描述

6.5 修改struts的访问后缀

第一种方式:

  • 在 struts.xml 的配置文件中添加如下代码:
<constant name="struts.action.extension" value="php"></constant>

在这里插入图片描述

第二种方式:

  • 在src下创建struts.properties
  • 添加struts.action.extension=html
    在这里插入图片描述
    在这里插入图片描述

小贴士:
如果这样配置会覆盖struts.xml的配置
这是由于struts加载文件的顺序所导致

第三种方式:

  • 在web.xml中配置,代码如下:
<filter>
		<filter-name>struts2</filter-name>
		<filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class>
		<init-param>
			<param-name>struts.action.extension</param-name>
			<param-value>jsp</param-value>
		</init-param>
</filter>

在这里插入图片描述
在这里插入图片描述

小贴士:
由于struts加载文件的顺序,web.xml会覆盖掉上面2个方法的配置,即使不注释,后缀.php、.html也无法生效了。

在这里插入图片描述

在这里插入图片描述

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
struts-2.3框架的开发流程包括以下几个步骤: 1. 下载和配置struts-2.3框架:首先,你需要从官方网站下载struts-2.3的jar包。然后,将下载的jar包添加到你的项目中,并在项目的配置文件中引入struts-2.3的DTD文件。另外,你还需要将struts-2.3框架配置文件struts.xml)添加到项目的src目录下。 2. 创建Action类:在struts-2.3框架中,Action类是处理用户请求的核心组件。你需要创建一个Action类,并实现对应的业务逻辑。 3. 配置struts.xml文件:在struts.xml文件中,你需要配置Action类的映射关系,即将用户的请求路径映射到对应的Action类上。你还可以在struts.xml文件中配置拦截器、结果类型等信息。 4. 编写视图页面:根据你的业务需求,你需要编写对应的JSP页面来呈现数据和与用户进行交互。 5. 部署和测试:完成以上步骤后,你可以将项目部署到服务器上,并进行测试,确保struts-2.3框架的开发流程正常运行。 总结起来,struts-2.3框架的开发流程包括下载和配置框架、创建Action类、配置struts.xml文件、编写视图页面以及部署和测试。通过这些步骤,你可以使用struts-2.3框架来进行Web应用的开发。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* *3* [Struts2框架概述Struts简介Struts环境搭建Struts执行流程Struts文档Struts配置文件加载顺序-...](https://blog.csdn.net/qq_43414199/article/details/107729976)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT3_1"}}] [.reference_item style="max-width: 100%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值