Struts2学习笔记(一)--入门常见配置
Struts2框架的学习路线
l 第一天:Struts2的概述、Struts2的入门、Struts2常见的配置、Struts2的Action的编写
l 第二天:Struts2的数据的封装、结果页面配置
l 第三天:Struts2的值栈和OGNL表达式
l 第四天:Struts2的标签库
Struts2的概述
Struts2是一个基于MVC设计模式的WEB层框架。
Struts2的内核相对于Struts1来讲已经发生巨大变化。
常见的web层框架
Struts2
Struts1
Webwork
SpringMVC
Web层框架基于前端控制器模型设计
下载Struts2的开发环境 http://struts.apache.org/
解压Struts2开发包
apps :Struts2提供的应用,war文件:web项目打成war包。直接放入到tomcat可以允许。
docs :Struts2的开发文档和API
lib :Strtus2框架的开发的jar包
src :Struts2的源码
创建web项目,引入jar包
引入jar包
struts-blank项目下找jar包
创建一个JSP页面
<body><h1>Struts2的入门</h1> <!--点击连接会触发相应的反应--><h3><a href="hello.action">Struts2的入门</a></h3></body>
编写Action的类
对Action进行配置
在src下创建(提供)名称叫做struts.xml的配置文件。注意名字不可以改变,src目录下的是主要的
配置前端控制器(核心过滤器)
这是web.xml中的配置
<?xml version="1.0" encoding="UTF-8"?> <web-app version="2.5" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"><welcome-file-list><welcome-file>index.jsp</welcome-file></welcome-file-list><!-- 配置Struts2的核心过滤器 --><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> </web-app>
改写Action中的方法的返回值
public class HelloAction {public String execute(){System.out.println("HelloAction执行了......");return "sucess";} }
改写struts.xml
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE struts PUBLIC"-//Apache Software Foundation//DTD Struts Configuration 2.3//EN""http://struts.apache.org/dtds/struts-2.3.dtd"><struts> <!-- Struts2为了管理Action的配置,通过包进行管理 --> <!-- 配置Struts2的包============================== --> <!-- package中的名字随意,但是在配置文件中不可以重复 --><package name="demo1" extends="struts-default" namespace="/"><!-- 配置Action==action中的名字必须是刚刚页面中的xxx.action==class部分是对应的的类的路径地址 --><action name="hello" class="com.zyz.struts.HelloAction"><!-- 配置跳转页面===当类中返回的是sucess那么就会设定跳转到相应的界面==== --><result name="sucess">/demo1/sucess.jsp</result></action></package> </struts>
编写sucess.jsp
分析Struts2的执行流程
当用户访问某一个Action的时候,先经过核心过滤器,在核心过滤器中执行一组拦截器(这组拦截器实现部分功能),执行目标Action,根据Action的返回值,进行页面跳转。
Struts2的常见配置
Struts2的配置文件的加载顺序(了解)
init_DefaultProperties() ----加载default.properties
init_TraditionalXmlConfigurations(); ----加载struts-default.xml、struts-plugin.xml、struts.xml
init_LegacyStrutsProperties(); ----加载struts.properties
init_CustomConfigurationProviders(); ----加载配置提供类
init_FilterInitParameters() ; // [6] ----加载web.xml中过滤器初始化参数
init_AliasStandardObjects() ; // [7] ----加载Bean对象
加载顺序
default.properties
struts-default.xml
struts-plugin.xml
struts.xml
struts.properties
web.xml
注意:后配置的常量的值会覆盖先配置的常量的值。
Action的配置
package相关配置
package标签称为包,这个包与Java中的包的概念不一致。包为了更好管理action的配置。
package标签的属性
name :包的名称,只有在一个项目中不重名即可。
extends :继承哪个包,通常值为struts-default
namespace :名称空间,与<action>标签中的name属性共同决定访问路径。
名称空间有三种写法:
带名称的名称空间 :namespace=”/aaa”
跟名称空间 :namespance=”/”
默认名称空间 :namespace=””
abstract :抽象的,用于其他包的继承。
action相关配置:
action标签配置Action类。
action标签的属性
- name :与namespace共同决定访问路径
- class :Action类的全路
- method :执行Action中的哪个方法的方法名,默认值execute
- converter :用于设置类型转换器
常量的配置
struts2的常量配置
在Struts2的框架中,提供了非常多的常量:(在default.properties)
- struts.i18n.encoding=UTF-8 ----Struts2中所有的post请求的中文乱码不用处理。
- struts.action.extension=action,, ----Struts2请求的默认的扩展名。默认扩展名是.action或者什么都不写。在Struts2中修改一些常量的值:
- 修改常量的值,可以有三个位置进行修正
struts.xml中进行修改
struts.properties中进行修改
web.xml中进行修改
分模块开发设置
include的配置
经测试可以正常的运行
首先在包的目录下建一个struts_demo1.xml代码如下:
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE struts PUBLIC"-//Apache Software Foundation//DTD Struts Configuration 2.3//EN""http://struts.apache.org/dtds/struts-2.3.dtd"><struts> <!-- Struts2为了管理Action的配置,通过包进行管理 --> <!-- 配置Struts2的包============================== --> <!-- package中的名字随意,但是在配置文件中不可以重复 --><package name="demo1" extends="struts-default" namespace="/"><!-- 配置Action==action中的名字必须是刚刚页面中的xxx.action==class部分是对应的的类的路径地址 --><action name="hello" class="com.zyz.struts.HelloAction"><!-- 配置跳转页面===当类中返回的是sucess那么就会设定跳转到相应的界面==== --><result name="sucess">/demo1/sucess.jsp</result></action></package> </struts>
然后在src目录下的struts.xml的文件中代码如下:
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE struts PUBLIC"-//Apache Software Foundation//DTD Struts Configuration 2.3//EN""http://struts.apache.org/dtds/struts-2.3.dtd"><struts> <include file="com/zyz/struts/struts_demo1.xml"></include> </struts>
其他的不变。网页依然可以正常的进行访问
Action的访问问题
Action类是POJO的类
Action类实现一个Action的接口
Action类继承ActionSupport类
Action的三中访问方式:
通过method设置
<body><h1>Struts2的入门</h1><h3><a href="hello.action">入门</a></h3><h3><a href="find.action">查看信息</a></h3><h3><a href="update.action">修改信息</a></h3><h3><a href="delete.action">删除信息</a></h3><h3><a href="add.action">添加信息</a></h3></body>
配置文件
<struts> <!-- Struts2为了管理Action的配置,通过包进行管理 --> <!-- 配置Struts2的包============================== --> <!-- package中的名字随意,但是在配置文件中不可以重复 --><package name="demo2" extends="struts-default" namespace="/"><!-- 配置Action==action中的名字必须是刚刚页面中的xxx.action==class部分是对应的的类的路径地址 --><action name="find" class="com.learn.struts.demo1.Demo1" method="find"></action><action name="update" class="com.learn.struts.demo1.Demo1" method="update"></action><action name="delete" class="com.learn.struts.demo1.Demo1" method="delete"></action><action name="add" class="com.learn.struts.demo1.Demo1" method="add"></action></package> </struts>
通过通配符的方式进行配置(*****)
更加抽象的通配设置
动态方法访问
开启动态方法访问
编写访问路径
唯一区别就是他用的是感叹号!
转载于:https://www.cnblogs.com/byczyz/p/11437513.html
Struts2学习笔记(一)--入门常见配置相关推荐
- nginx学习笔记-01nginx入门,环境搭建,常见命令
nginx学习笔记-01nginx入门,环境搭建,常见命令 文章目录 nginx学习笔记-01nginx入门,环境搭建,常见命令 1.nginx的基本概念 2.nginx的安装,常用命令和配置文件 3 ...
- Struts2框架学习笔记_Struts2入门
文章为学习struts的笔记,可供读者参考,有不足之处还望之指出. 参考: POJO与JavaBean的区别 Velocity Velocity官网 FreeMarker XSLT struts2 学 ...
- Linux操作系统学习笔记【入门必备】
Linux操作系统学习笔记[入门必备] 文章目录 Linux操作系统学习笔记[入门必备] 1.Linux入门 2.Linux目录结构 3.远程登录 3.1 远程登录Linux-Xshell5 3.2 ...
- mybatis学习笔记(3)-入门程序一
2019独角兽企业重金招聘Python工程师标准>>> mybatis学习笔记(3)-入门程序一 标签: mybatis [TOC] 工程结构 在IDEA中新建了一个普通的java项 ...
- javaSE学习笔记01 入门篇
javaSE学习笔记01 入门篇 java语言概述 Java背景知识 java是 美国 sun 公司 在1995年推出的一门计算机高级编程语言. java早期称为Oak(橡树),后期改名为Java. ...
- React学习笔记:入门案例
React学习笔记:入门案例 React 起源于 Facebook 内部项目,因为市场上所有 JavaScript MVC 框架都不令人满意,公司就决定自己写一套,用来架设 Instagram 的网站 ...
- ROS学习笔记一:安装配置ROS环境
ROS学习笔记一:安装配置ROS环境 在安装完成ROS indigo之后,需要查看环境变量是否设置正确,并通过创建一个简单的实例来验证ROS能否正常运行. 1 查看环境变量 在ROS的安装过程中,我们 ...
- mesos 学习笔记-- mesos安装和配置
2019独角兽企业重金招聘Python工程师标准>>> mesos 学习笔记-- mesos安装和配置 博客分类: 架构 mesos 参考资料: 官方文档:http://mesos. ...
- JavaScript学习笔记之入门篇
JavaScript学习笔记之入门篇 JavaScript引入 1. 页面级 js: 2. 外部js文件: JavaScript变量 1. 变量的作用: 2. 声明变量: 3. 变量赋值: 4. 单一 ...
- golang学习笔记8 beego参数配置 打包linux命令
golang学习笔记8 beego参数配置 打包linux命令 参数配置 - beego: 简约 & 强大并存的 Go 应用框架 https://beego.me/docs/mvc/contr ...
最新文章
- 问题清空easyui required=true的提示信息所在位置不对。乱跑的解决办法
- linux安装python3教程_linux下安装python3和对应的pip环境教程详解
- HihoCoder - 1483 区间最值
- 读写二进制c# 二进制读写
- Java 蓝桥杯 判断闰年
- 【转】Go Micro(2)——微服务工具箱
- python课程开课吧怎么样-开课吧最新廖雪峰Python商业爬虫课程,全套完整课程资源下载...
- 查询oracle历史scn,ORACLE中的各种SCN查询
- PhotoshopCS2相关教程网址
- X.509,RSA,PKCS 普及
- windows xp共享访问提示“拒绝访问”的故障处理步骤
- 数据仓库分层架构深度讲解
- c# 获取数字的小数位数
- 【玩转linux】head命令
- Android深入浅出系列课程---Lesson13 LLY110529_虚拟机概述,JIT概述
- 三维空间的三角剖分( 3D Delaunay Triangulated graph)第二部分:剖分三维空间
- 布局Mac,QQ浏览器全面出击
- Opencv学习笔记(1)计算机眼中的图像
- php udp,PHP UDP攻击查找源头
- 基于若依开发物品管理系统(springboot+vue)
热门文章
- 鱼油账号记录程序(续) - 零基础入门学习Delphi39
- 今天开始学C#.NET
- 关于 C语言的 按位取反 ~
- android病毒下载地址,LINE病毒查杀
- java tick_Java中的Clock tick()方法
- 详解CSS选择器、优先级与匹配原理
- NXP UWB NCJ29D5开发(二)BlinkyLed例程
- 九齐51单片机使用注意事项:不要用float
- Linux第一条指令地址,arm-linux 启动代码分析——stage1 (1)
- probuffer java_Protocol Buffer的使用