关于Struts2的学习总结第一天

4、分布式发电系统中用于改善电能质量的有源、无源和混合滤波器 本文探讨了分布式发电系统中,尤其是光伏(PV)系统运行过程中引入的电能质量问题,并分析了有源滤波器、无源滤波器及混合滤波器在改善电能质量方面的应用。文章详细介绍了光伏系统的建模、最大功率点跟踪(MPPT)技术,以及谐波、电压波动等技术问题,同时对各类滤波器的拓扑结构和控制方法进行了系统性总结。通过仿真实例比较了不同滤波器在减少谐波方面的效果,为实际工程应用提供了参考依据。 阅读详情

一. 什么是Struts2?

       1.Struts2是一种基于MVC设计模式的WEB应用框架;

         2.他的本质相当于一个Servlet;

         3.Struts2作为控制器来建立模型与视图的数据交互;

         4.Struts2是以WebWork作为核心,采用拦截器的机制来处理用户的请求。

        总结:

         Struts2是一个基于MVC设计模式的WEB层的框架。

 

        1.1.1 Web层框架基于前端控制器模式

 

 

 

 

1.1.2 Struts2和Struts1的区别和联系

 

          Struts2内核已经发生变化,以webwork为核心。

 

二 Struts的入门

 2.1.1 下载Struts2的开发包

 

官网http://struts.apache.org/

2.1.2 解压Struts2

 

* apps:Struts2提供一些应用。

* docs:Struts2的开发文档

* lib:Struts2的开发jar包

* src:Struts2的源码

 

2.1.3 创建web工程引入jar包

 

D:\struts2\struts-2.3.24\apps\struts2-blank.war

WEB-INF/lib/*.jar

 

2.1.4 创建页面

<%@ page language="java"contentType="text/html; charset=UTF-8"

    pageEncoding="UTF-8"%>

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">

<html>

<head>

<meta http-equiv="Content-Type"content="text/html; charset=UTF-8">

<title>Insert title here</title>

</head>

<body>

<h1>Struts2的入门</h1>

<a href="${ pageContext.request.contextPath }/helloStruts.action">Struts2的入门的访问路径</a>

</body>

</html>

 

 

 

 

 

 

 

2.1.5 编写Action

 

public class HelloStrutsAction {

 

public String execute(){

System.out.println("Hello Struts2...");

return null;

}

}

2.1.6 配置Action (在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>

<package name="demo1" extends="struts-default" namespace="/">

 

<action name="helloStruts" class="com.csq.study.struts2.demo1.HelloStrutsAction">

</action>

</package>

</struts>

 

2.1.7  配置前端控制器(核心过滤器)修改web.xml

  <!--配置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>

 

 

 

2.1.8  Struts2的执行流程
   

          页面发送请求,请求先到达前端控制器(核心过滤器StrutsPrepareAndExecuteFilter),过滤器中执行一组拦截器,这组拦截器完成了部分的功能代码。如果没有拦截器,就会执行目标Action。执行Action后返回一个逻辑视图名称。根据Result进行页面跳转。

 

          图解如下:

 

 

 

 

3.1 Struts2的常见配置

3.1.1 struts.xml中配置

   核心配置文件,主要负责管理Action
   通常放在src目录下,在该目录下的struts.xml文件可以被自动加载

 

3.1.2. Package标签的配置

 

Package称为是包,为了管理Action的配置。
包可以“继承”已定义的包,并可以添加自己包的配置

包的作用:简化维护工作,提高重用性

* name:包的名称,属性为必需的且唯一,用于指定包的名称

* extends:属性指定要扩展的包,通常情况下继承struts-default。

* namespace:(可选)名称空间,namespace通常和<action>标签中的name属性共同决定访问路径。

* namespace=””

* namespace=”/”

* namespace=”/aaa”

* abstract:抽象的,用于被其他的包继承。

 

3.1.3 Action的配置

 

<action>标签用来配置Action类。

* name:与namespace共同决定访问路径。

* class:Action类的全路径。

* method:Action中执行的方法名。默认值是execute。

 

3.1.4 配置文件的加载顺序

 

Struts2中的配置文件

配置文件的数量:

一共有6个配置文件。

6个配置文件执行时机:(这些配置文件是由过滤器加载的)

default.properties它都是key=value的形式。类似于开关。

struts-default.xml配置的都是struts2的核心。纯struts2核心。

struts-plugin.xml它是当我们使用了plugin的jar时才有的配置文件。如果没用插件,就没有。

struts.xml       我们程序中的struts2核心配置。是针对当前项目的核心配置。推荐的

struts.propertiesstruts2不仅支持基于xml的配置还可以再使用.properties。但是我们不推使用

web.xml           配置的是struts2的一些开关性配置。靠过滤器的初始化参数配置

                              它最后加载,但加载的只是和struts2相关的配置。

它们会按照上面的顺序逐个加载,如果遇到相同的配置,后加载的覆盖先加载的。

      

       init_FileManager();

         init_DefaultProperties(); // [1]----加载default.properties

         init_TraditionalXmlConfigurations();// [2]----加载struts-default.xml,struts-plugin.xml,struts.xml

         init_LegacyStrutsProperties();// [3]----加载struts.properties

         init_CustomConfigurationProviders();// [5]----加载用户定义类

         init_FilterInitParameters() ;// [6]----加载web.xml里面过滤器配置参数

         init_AliasStandardObjects() ;// [7]----加载JavaBean

3.1.5 Struts的常量的配置

Struts2的框架中,定义了许多常量。常量定义在default.properties

struts.i18n.encoding=UTF-8  

struts.action.extension=action,,

改变Struts2的常量的值,需要怎么做?

Ø Struts.xml

constant元素(可选):配置常量,可以改变Struts 2框架的一些行为

<constant name="struts.action.extension" value="do"/>

注意:后加载的配置文件中的常量的值会将先加载的配置文件的常量的值覆盖。

 

 

4.1 Struts2的Action的访问

4.1.1 Struts2中Action的3种创建方式
1)普通的Java类
2)实现Action接口
3)继承ActionSupport类

1.1 Action是一个POJO的类

Action是一个普通的Java类。Action没有实现任何的接口,没有继承任何的类。

public class StrutsDemo1Action {

public String execute(){

System.out.println("Struts2Demo1....");

return null;

}

}

 

1.1.1.2 Action类实现一个Action接口

Action接口中提供了五个逻辑视图名称:

* SUCCESS:成功

* ERROR:错误

* INPUT:用于数据校验

* LOGIN:用于登录

* NONE:页面不跳转

 

public class StrutsDemo2Actionimplements Action{

 

@Override

public String execute()throws Exception {

System.out.println("StrutsDemo2....");

return NONE;

}

 

}

1.1.1.3 Action类继承一个ActionSupport类

public class StrutsDemo3Action extends ActionSupport{

 

@Override

public String execute()throws Exception {

System.out.println("StrutsDemo3....");

return NONE;

}

}

 

ActionSupport类中有数据校验等功能。Action继承了这个类,就可以有这些功能。

1.1.2 Struts2中Action方法的3种访问方式

1)动态方法访问


2)通过method属性配置


3)通过通配符的配置方式:

 

1.1.2.1 动态方法访问

作用:减少Action数量
       语法:actionName!methodName.action 
       使用:将属性struts.enable.DynamicMethodInvocation设置为true

<constant name="struts.enable.DynamicMethodInvocation" value="true"/>

 

//Action处理类

public class UserAction implements Action {

   public String login() {      

   }

   public String register() {      

   }

}

 

//struts.xml文件

<action name="user" class="com.csq.study.action.UserAction">

</action>

 

 

 说明:

 编写form表单中action=”user!register.action” 

 则会调用UserAction类的register()方法

 

1.1.2.2 通过method属性配置

    优点:避免动态方法调用的安全隐患

    缺陷:导致大量的Action配置

public class UserAction implements Action {

   

   public String login() {

      

   }

   public String register() {

     

   }

}

//struts.xml文件

<action name="login" class="com.csq.study.action.UserAction" method="login">

</action>

<action name="register" class="com.csq.study.action.UserAction" method="register">

</action>

1.1.2.3 通过通配符的配置方式:

    另一种形式的动态方法调用

 

<action name= "*User"  class="cn.jbit.houserent.action.UserAction" method="{1}">

   <result name=”success”>/{1}_success.jsp</result>

   <result name="input">/{1}.jsp</result>

   <result name="error">/error.jsp</result>

</action>

 

说明:

编写form表单中action=”loginUser.action”

则struts.xml中的代码相当于

method="login"

/login_success.jsp

/login.jsp

 

 



 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

       

点云语义分割:RandLANet模型推理C++部署(2) 一、数据读取及预处理 二、模型推理 三、结果保存 阅读详情

相关推荐

微信小游戏CE修改实战:从入门到精通(附防作弊思路)

本文深入探讨微信小游戏的安全攻防实战,重点分析CE修改、反编译和重打包等安全风险。通过详细的内存修改案例和代码保护方案对比,提供从客户端到服务端的全方位防护策略,帮助开发者构建有效的防作弊体系。

m2n3b4v5c6的博客 1138

Struts的Action接口---(2)Method属性方法调用。

Method 即通过 struts.xml的action配置的method属性实现方法的调用。 优点:避免动态方法调用的安全隐患 缺陷:导致大量的Action配置 login.jsp 姓名 密码<input type="text" name="pwd" value="123" /> login登录 姓名 密码<input

tomatoFIREegg的博客 536

MATLAB实战:手把手教你用三频四步相移法搞定结构光三维重建(附完整代码)

本文详细介绍了如何使用MATLAB实现三频四步相移法进行高精度结构光三维重建。通过光栅图像预处理、相位计算、多频外差与相位解包裹等步骤,结合完整代码示例,帮助读者掌握从二维图像到三维点云的关键技术。该方法在工业检测和逆向工程中具有抗干扰能力强、高分辨率和鲁棒性等优势。

weixin_29201933的博客 338

Struts2学习总结_Action

1.Struts2的配置文件

hany233的专栏 1146

保姆级教程:用Python+OpenCV搞定Orbbec Gemini深度与彩色流对齐(附完整代码)

本文提供了一份详细的Orbbec Gemini深度与彩色流对齐教程,涵盖从环境配置到完整代码实现的每一步。通过解析深度流对齐原理,对比不同对齐模式,并提供工业级应用中的问题排查方法,帮助开发者快速掌握Orbbec Gemini相机的使用技巧。文章还包含进阶应用如点云生成与三维重建的实战代码。

weixin_29090917的博客 470

burpsuite抓取ios数据包

1:首先在burpsuite中设置 添加proxy listeners 2:电脑开热点,手机连接,把代理设为电脑的ip和代理的端口 3:在Safari浏览器中打开网址http://burp下载证书 4:打开设置->通用->描述文件与设备管理 5:设置->通用->关于本机->证书信任设置 之后就可以正常抓包了 ...

weixin_45682070的博客 2065

Struts2学习第一天——struts2基本流程与配置

struts2框架 struts2快速入门 Struts2 处理流程 模仿struts2流程完成入门程序 struts2的流程分析以及工具配置 struts2配置(重点) 1.struts2配置文件加载顺序 2.关于Action的配置 关于常量配置 Action 关于Action类的创建方式介绍 关于action的访问方式 在struts2框架中获取servlet API Result结果类型

lutianfei的专栏 3万+

PointNetLK实战:5步搞定点云配准(附ModelNet40数据集训练技巧)

本文提供了一份详细的PointNetLK实战指南,帮助读者在5步内掌握点云配准技术。文章以ModelNet40数据集为例,深入讲解了环境搭建、数据预处理、模型训练与调试等核心步骤,并分享了关键的训练技巧和调参策略,旨在让开发者快速实现并应用这一高效的深度学习配准方法。

wind6的博客 462

Struts2第一天学习内容

Struts2 第一天学习目标 1、了解Struts2的基本概念 2、掌握Struts2的开发步骤 3、了解Struts2的执行原理 4、掌握Struts2的常用配置 1、了解Struts2的基本概念 什么是Struts2? ----严格按照MVC的分层思想,把客户端和服务端响应按照流程编写的开发框架。 MVC分层思想。M:model 模型 V:view 视图 C:controller 控制器 总...

weixin_44362398的博客 224

Claude Code Router 401错误修复

claude code router配置相关环境变量问题

如沐春风 6358

论文必备 - YOLOv13热力图可视化,支持指定模型,指定显示层,设置置信度,以及10种可视化实现方式

本文带来的是YOLOv13热力图可视化功能,支持,以及。我们经常看到一些论文里绘制了不同的热力图,一方面能够直观的感受其模型的有效性,另一方面也丰富了论文内容。特别是在使用了注意力模块的网络中,热力图就可以验证注意力机制是否真正聚焦到了预期的重要特征上,以便对模型的有效性和合理性进行评估。例如这篇文章中展示的,就很能够表达作者改进后的模型相比之前模型的优越性。

Limiiiing的博客 487

第一天学习struts2

第一天学习struts2 第一天学习struts2,看了6个视频,学到了struts2的入门跳转,记录一下,学到的知识(学习资源来自黑马程序员视频) 新的改变 1、首先导入struts2的依赖包 2、创建一个jsp主页面,并输入href跳转路径 <a href="${ pageContext.request.contextPath"}/hello.action> 3、创建一个acti...

wcxy_study的博客 230

IMSL CNL 7.0.0 (x86-64)Crack

IMSL CNL 7.0.0 (x86-64)Crack intel的算法库破解文件,这是C++版本的破解文件

Struts2学习第一天

导言:Struts2 是一个非常优秀的MVC框架,基于Model2 设计模型. 由传统Struts1和WebWork两个经典框架发展而来:Struts2框架=Struts2+XWork Strust2 核心功能: 负责表现层:处理与界面交互的相关操作 允许POJO(Plain Old Java Objects)对象 作为Action. Action的execute 方法不再与Servlet ...

malloc_can的博客 206

ssm框架搭建

这个是一个在idea上成功跑起来的ssm框架项目,保存在这里方便以后使用直接下载

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

struts2学习之第一天

什么是struts2 Struts2是一个基于MVC设计模式的Web应用框架,它本质上相当于一个servlet,在MVC设计模式中,Struts2作为控制器(Controller)来建立模型与视图的数据交互。Struts 2是在WebWork2基础发展而来的。相比与servlet,struts2在底层封装了许多操作,如获取表单、封装到实体类等来简化开发人员的开发过程。 struts2执行过

BestbpF的博客 314

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

Struts2学习第一天笔记

Struts2 第一天学习笔记 1、Struts2的概述 1.1 什么是Struts2 Struts2是一个基于MVC设计模式的Web应用框架,它本质上相当于一个servlet,在MVC设计模式中,Struts2作为控制器(Controller)来建立模型与视图的数据交互。Struts 2是Struts的下一代产品,是在 struts 1和WebWork的技术基础上进行了合并的全新的Struts...

Serkar的博客 160

Struts2学习--第一天

Struts2笔记 Struts2学习–第一天:Struts2入门 1、三层架构 表现层:接收和处理请求(MVC是一个表现层模型) 业务层:处理程序业务请求 持久层:对数据库操作 2、MVC模型 M:Model 封装数据 实体类 V:View 展示数据 JSP、HTML C:Controller 控制程序流转 Servlet、Filter 3、Se...

weixin_44297527的博客 182

Struts2学习笔记——第一天

一、Struts2概述 1.Struts2框架应用于javaee三层结构中web层框架 2.Struts2框架在Struts1和webwork基础上发展的全新框架 3.Struts2可解决的问题 4.web层常见框架:struts2,springMVC 二、Struts2框架入门案例 第一步 导入jar包 第二步 创建action public class HelloActi...

绿芽在山顶 290

Struts2学习笔记第一天

Struts2学习笔记共有三天: 第一天学习重点: MVC编程思想 Struts2实现的基本原理 Struts2中的跳转问题: 一、MVC编程思想【重点 面试】 核心:人为的将程序划分为3个层次。分别为M、V、C。 M(Model 模型层)模拟现实生活中存在的事物。 V(View 视图层) 可视化的图形界面 用来给用户展示数据 C(Controller 控制层 控制器) 控制整体程序的流程 现有...

冰蛙 256

Struts2学习笔记(第一天)

1.今日任务 ·使用struts2完成客户列表查询 2.相关知识 2.1 Struts2框架的概述 2.1.1 什么是struts2? Struts2是一个基于MVC设计模式的Web应用框架,它本质上相当于一个servlet,在MVC设计模式中,Struts2作为控制器(Controller)来建立模型与视图的数据交互。Struts 2是Struts的下一代产品,是在 struts

lyn_kk的博客 441

Struts2源码学习--第一天

虽然不久之前开始了C++的学习,但关于JAVA

玉逍遥专栏 883

学习Struts2 第一天

1.在web.xml中配置Struts2 &lt;filter&gt; &lt;filter-name&gt;strust2&lt;/filter-name&gt; &lt;filter-class&gt;org.apache.struts2.dispatcher.filter.StrutsPrepareAndExecuteFilter&lt;/filter-class&gt; ...

qq_41206989的博客 147

【Java EE 学习 34】【struts2学习第一天】

一、struts2简介     struts2是一个用来开发MVC应用程序的框架。它提供了Web应用程序开发过程中的一些常见问题的解决方案。   1.struts2的作用域范围:三层架构当中的第一层,相当于MVC层,其出现的作用就是标准化MVC,让程序员在某个标准阿下进行程序的开发。   2.struts2的下载:http://struts.apache.org/download....

197

struts2框架学习之第一天

day01 Struts2概述 1 什么是框架 试想一下,人与人之间不同之处多,还是相同之处多呢?当然是相同之处多,不同之处少!人都有头,而且头都在脖子上面! 软件之间也是相同之处多,不同之处少,框架就是把软件中相同的部分抽取出来而形成的。开发人员在框架的基础之上进行开发,那么只需要给出软件独有部分即可。 软件相同之处称之为应用组件,不同之处称之为业务组件。框架就是已经完成了应用组件这部...

weixin_30565199的博客 183

SSH框架之Struts2(初学)学习第一天

Struts2 环境搭建环境搭建学习使用环境搭建步骤第一步:创建Java web项目第二步:导入jar包第三步:配置web.xml文件第四步:创建action 包第五步:添加struts.xml文件并配置该文件第六步:view页面的处理第七步:调试总结 环境搭建 学习使用环境 开发环境:idea 集成开发环境 服务器:tomcat 7.0.46 搭建步骤 第一步:创建Java web项目 ...

weixin_43934799的博客 371
下一篇: 框架Struts2第二天学习
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值