Struts2学习笔记(一)--入门常见配置

 Struts2框架的学习路线

第一天:Struts2的概述、Struts2的入门、Struts2常见的配置、Struts2Action的编写

第二天:Struts2的数据的封装、结果页面配置

第三天:Struts2的值栈和OGNL表达式

第四天: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.xmlstruts-plugin.xmlstruts.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标签的属性

  1. name :与namespace共同决定访问路径
  2. class Action类的全路
  3. method :执行Action中的哪个方法的方法名,默认值execute
  4.  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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/386173.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Java周总结1

一、计算机高级编程语言类型&#xff1a; a.编译型 b.解释型 Hello.java Java源文件 编译 Hello.class 字节码文件 解释 01101100.... &#xff08;二进制&#xff09;机器码指令 computer…

MMKV集成与原理,先收藏了

标准文档流 标准文档流&#xff0c;指的是元素排版布局过程中&#xff0c;元素会默认自动从左往右&#xff0c;从上往下的流式排列方式。前面内容发生了变化&#xff0c;后面的内容位置也会随着发生变化。 HTML就是一种标准文档流文件 HTML中的标准文档流特点通过两种方式体现…

Java周总结3

撰写第三周课程总结及实验报告&#xff08;一&#xff09; Java实验报告 班级 计科一班 学号 20188375 姓名 汤云云 完成时间 评分等级 实验一 Java开发环境与简单Java程序 一、 实验目的 &#xff08;1&#xff09; 熟悉JDK开…

MMKV集成与原理,吊打面试官系列!

前言 校招 -1 年 这个阶段还属于成长期&#xff0c;更需要看重的是你的基础和热情。对于 JS 基础&#xff0c;计算机基础&#xff0c;网络通信&#xff0c;算法等部分的要求会相对高一些。毕竟这个阶段比较难考察你的业务项目中的沉淀&#xff0c;所以只能从基础部分入手考察。…

MMKV集成与原理,成功跳槽阿里!

前言 在初学前端的时候&#xff0c;我们总会遇到一些问题&#xff0c;我们可以在网上看到很多关于前端的这些问题&#xff1a; 你们都是怎么学web前端的&#xff1f; 零基础&#xff0c;怎么自学好前端&#xff1f; 前端需要学多久&#xff0c;都学哪些知识&#xff1f; 想成为…

第四周课程总结试验报告(二)

Java实验报告 实验二 Java简单类与对象 一、 实验目的 &#xff08;1&#xff09; 掌握类的定义&#xff0c;熟悉属性、构造函数、方法的作用&#xff0c;掌握用类作为类型声明变量和方法返回值&#xff1b; &#xff08;2&#xff09; 理解类和对象的区别&#xff0c;掌握构造…

MMKV集成与原理,薪资翻倍

毕业工作一年之后&#xff0c;有了转行的想法&#xff0c;偶然接触到程序员这方面&#xff0c;产生了浓厚且强烈的兴趣&#xff0c;开始学习前端&#xff0c;成功收割了大厂offer&#xff0c;开始了我的程序员生涯。 在自学过程中有过一些小厂的面试经历&#xff0c;也在一些小…

Spring入门与常用配置

什么是Spring Spring&#xff1a;SE/EE开发的一站式框架。 一站式框架&#xff1a;有EE开发的每一层解决方案。 WEB层 &#xff1a;SpringMVC Service层 &#xff1a;Spring的Bean管理&#xff0c;Spring声明式事务 DAO层 &#xff1a;Spring的Jdbc模板&#xff0c;Spring的ORM…

MMKV集成与原理,详细学习指南

前言 本文主要是javascript和css方面的基础面试题&#xff0c;适合面试前以及平时复习食用。 基础知识是前端一面必问的&#xff0c;如果你在基础知识这一块翻车了&#xff0c;就算你框架玩的再6&#xff0c;webpack、git、node学习的再好也无济于事&#xff0c;因为对方就不…

第五周课程总结实验报告(三)

实验三 String类的应用 一、实验目的 &#xff08;1&#xff09; 掌握类String类的使用&#xff1b; &#xff08;2&#xff09; 学会使用JDK帮助文档&#xff1b; 二、实验内容 1.已知字符串&#xff1a;"this is a test of java".按要求执行以下操作&#xff1a;&a…

MMKV集成与原理,赶紧学起来

开头 Web前端开发基础知识学习路线分享&#xff0c;前端开发入门学习三大基础&#xff1a;HTML、CSS、JavaScript。除此之外还要学习数据可视化、Vue、React、Angular相关框架&#xff0c;熟练运用框架提升开发效率&#xff0c;提升稳定性。 [外链图片转存失败,源站可能有防盗…

MMKV集成与原理,轻松拿下offer

从事前端开发工作差不多3年了&#xff0c;自己也从一个什么都不懂的小白积累了一定的理论和实践经验&#xff0c;并且自己也对这3年来的学习实践历程有一个梳理&#xff0c;以供后面来细细回忆品味。 1、为什么选择学习前端开发&#xff1f; 你可能是因为兴趣&#xff0c;完成…

React面试题总结,一文说清!

前言 JavaScript是面向 Web 的编程语言&#xff0c;获得了所有网页浏览器的支持&#xff0c;是目前使用最广泛的脚本编程语言之一&#xff0c;也是网页设计和 Web 应用必须掌握的基本工具。 JavaScript主要用途 嵌入动态文本与HTML页面对浏览器时间做出相应读写HTML元素在数…

React面试题总结,含爱奇艺,小米,腾讯,阿里

前言 校招 -1 年 这个阶段还属于成长期&#xff0c;更需要看重的是你的基础和热情。对于 JS 基础&#xff0c;计算机基础&#xff0c;网络通信&#xff0c;算法等部分的要求会相对高一些。毕竟这个阶段比较难考察你的业务项目中的沉淀&#xff0c;所以只能从基础部分入手考察。…

React面试题总结,就是这么简单

前言 昨天有幸去字节面试了&#xff0c;顺便拿到了offer&#xff0c;把还记得的东西写下来&#xff0c;供大家参考一下。 计算机网络篇 HTTP HTTP 报文结构是怎样的&#xff1f;HTTP有哪些请求方法&#xff1f;GET 和 POST 有什么区别&#xff1f;如何理解 URI&#xff1f;如…

CSS清除默认样式,成功入职腾讯

前言 又逢金三银四&#xff0c;拿到大厂的offer一直是程序员朋友的一个目标&#xff0c;我是如何拿到大厂offer的呢&#xff0c;今天给大家分享我拿到大厂offer的利器&#xff0c;前端核心知识面试宝典&#xff0c;内容囊括Html、CSS、Javascript、Vue、HTTP、浏览器面试题\数…

CSS清除默认样式,技术详细介绍

前言 JavaScript是面向 Web 的编程语言&#xff0c;获得了所有网页浏览器的支持&#xff0c;是目前使用最广泛的脚本编程语言之一&#xff0c;也是网页设计和 Web 应用必须掌握的基本工具。 JavaScript主要用途 嵌入动态文本与HTML页面对浏览器时间做出相应读写HTML元素在数…

CSS清除默认样式,看完这篇彻底明白了

前端的兴起 前端真正兴起和开始频繁出现在大家的视线里&#xff0c;大概是在十年前。彼时的 Web 开发基本是由后端主导&#xff0c;前端能做的只是校验一下数据、操作一下 DOM。&#xff08;其中数据检验是 JS 产生的根本原因&#xff1a;当时网络太慢&#xff0c;在服务端检验…

CSS清除默认样式,经典好文

前言 不要为了面试而去背题&#xff0c;匆匆忙忙的&#xff0c;不仅学不进去&#xff0c;背完了几天后马上会忘记。 你可能会说&#xff0c;“没办法&#xff0c;这不是为了能找份工作嘛&#xff01;”。我想说的是&#xff0c;“那你没开始找工作的时候&#xff0c;咋不好好…

java实现k-means算法(用的鸢尾花iris的数据集,从mysq数据库中读取数据)

k-means算法又称k-均值算法&#xff0c;是机器学习聚类算法中的一种&#xff0c;是一种基于形心的划分方法&#xff0c;其中每个簇的中心都用簇中所有对象的均值来表示。其思想如下&#xff1a; 输入&#xff1a; k&#xff1a;簇的数目&#xff1b;D&#xff1a;包含n个对象的…