---恢复内容开始---
第一天 入门
概述:
1:Struts 框架用在javaee三层结构的web层
2:struts2框架在Struts1和webwork基础之上发展全新得框架
之前的原始做法会创建很多servlet,造成维护特别不方便
3: 过滤器拦下不同的操作 action
4:Struts2版本 2.3.24版本
5:web层常见框架 springMVC框架
Struts2框架入门案例
第一步,导入jar包
(1)不能把jar包都导入进去
(2)到apps目录里面找到,解压war包,把jar包复制到lib中
第二步操作:创建action
第三步:配置action类访问路径
(1)创建一个struts 核心配置文件
-名称和位置是固定的
-位置必须在src下面,名称struts.xml
(2)引入dtd约束
<!DOCTYPE struts PUBLIC
"-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"
"http://struts.apache.org/dtds/struts-2.0.dtd">
(3)配置struts.xml
(4)访问路径
http://localhost:8080/struts2/hello.action
(5)配置struts2过滤器的配置 web.xml设置;
<filter>
<filter-name>struts2</filter-name>
<filter-class>org.apache.struts2.dispatcher.ng.filter.StructsPrepareAndExecuteFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>struts2</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
浏览器中action中的路径struts反应机制
查看源代码:
查看过滤器中源代码
1:过滤器在服务器启动时候创建,创建过程中会执行init方法
(1)在init方法中,主要做的就是加载配置文件
-包含自己创建配置文件和struts2自带的配置文件
重点关注:struts.xml,和web.xml
init_DefaultProperties(); // [1]
init_TraditionalXmlConfigurations(); // [2]
init_LegacyStrutsProperties(); // [3]
init_CustomConfigurationProviders(); // [5]
init_FilterInitParameters() ; // [6]
init_AliasStandardObjects() ; // [7]
struts2配置
struts核心配置文件:
1:名称和位置是固定的
2:配置文件中的三个标签package,action,result;
标签:package
1:类似于代码中的包,区别不同的action,要配置action,必须首先写package标签,在package里面才能配置action
2:package标签里面的属性,
(1)name属性:
name属性值跟功能本身没有关系,在一个配置文件中可以写多个package标签,name属
性值不能相同
(2)extends属性
属性值固定的,struts-default
写了这个属性之后,在package里面配置的类具有action功能
(3)namespace属性
名称空间,namespace属性值和action标签里面的name属性值构成访问路径
标签action:
1:action标签是配置action访问路径
2:action标签属性
(1)name属性
-namespace属性值和action标签里面的name属性值构成访问路径
-在package标签里面写多个action标签,但是action的属性值不能相同的
(2)class属性
-action全路径,包名+类名
(3)method属性
-比如在action里面默认执行的方法execute方法,但是在action里面写其他方法
-让action里面多个方法执行,使用method进行配置
标签result:
1:根据action的方法返回值,配置到不同的路径里面
2:result标签属性
(1)name属性
-和方法返回值一样
(2)type属性
-配置如何到路径中(转发或者重定向)
-type属性默认值,做转发操作;
2:struts默认的常量位置(记住)
在struts2-core.jar包中
3:修改struts2默认常量值
(1)常用的方式
-在struts.xml中进行配置
<constant name="struts.i18n.encoding" value="utf-8"></constant>
(2)还有两种方式(了解)
-在src下面创建文件struts.properties,进行修改
-在web.xml进行配置
4:介绍最常用的常量
(1)表单提交数据到action中,在action可以获取表单提交数据
(2)表单提交数据会有中文,有乱码问题,
解决:-post 提交直接设置编码
-get提交做代码转换
(3)如果在action获取表单通过post方式提交中文,中文乱码问题帮解决了,不需要自己处理问题
分模块开发
1:单独写一个配置文件,把配置文件引入到核心配置文件中。
比如你有一个hello.xml,在一个包下
在struts,xml中可以引入
<include file="cn/ismy/hello/hello.xml"></include>
结果也是一样的
action的编写方式
1:action编写有三种方式,
第一种:创建普通类,这个类不继承任何类,也不实现任何接口
第二种:创建类,实现接口action(用的不多)
第三种:创建类,继承Actionsupport(最常用的方式)
实现方法
使用action标签的method属性
2演示错误
(1)如果action方法由返回值,在配置文件中没有配置,出现错误
(2)在action里面的方法有返回值,如果有返回值时候类型必须是String。
BookAction.java方法
第一种:使用action标签的method属性,在这个属性里面写执行action方法
缺陷:action每个方法都需要配置,如果action方法有多个方法,配置很多action。
第二种:使用通配符方法实现(重点)
1:在action标签里面name属性,name属性值里面写符号 * 星号
(1)* 理解,可以匹配任意内容
比如hello.*可以匹配到
比如add.*可以匹配到
第三种:动态演示访问实现(不用)
---恢复内容结束---