Struts2上课笔记

Struts2性能的笔记 阅读详情
上课笔记:
笔记扩展:

Forward 和 Redirect的区别


简单的说Forward是发生在服务器内部,客户端不知道发生了request的转向。客户A向服务器B请求,服务器B处理完请求并发生forward转向,请求不会经过客户端,而是在内部请求另外一个服务器资源。对于客户A来说,该操作是透明的。

Redirect则是客户端A向B请求后,服务器B处理完请求结果,并把结果返回值客户端A,并要求客户端A向服务器C发出请求。对于客户端A来说,其实是发生了两次请求。一个重要的区别还在于,Redirect会重新发起请求,所以会丢失请求参数,请求属性,Action实例和Action中封装的属性。


一,result可以继续转发或者重定向一个action(一个java文件,class文件+)

       result的type结果类型:redirectAction
        redirectAction结果类型,注意的是redirectAction在浏览器中输入如:
        调转之后的页面的url地址栏上的是:
        下面的2个action为例子,第一个对应的servlet是LoginAction.java,其中有一个方法
        execute(),返回值是:success
        1. 最重要的一点把这个action中的result的name设置为success,type="redirectAction"
        2. 在param中name="actionName",这是必须的,然后在param标签中设置这个namespace
        3.这个namespace的内容就是你需要“转发”的请求目的地

            <action name="LoginAction" method="execute" class="com.li.LoginAction">
                <result name="success" type="redirectAction">
                        <param name="actionName">SecondAction</param>
                </result>
         </action>

        <action name="SecondAction" class="com.li.SecondAction" method="execute">
            <result name="success">/test2.jsp</result>
        </action>
        
二,action链

<!--下面举个简单例子来说明下这个action链式处理结果:写2个package,第一个写要写好namespace
,第二个package我没写namespace(其实也可写)-->
          <package name="er" extends="struts-default" namespace="/er">
                        //为了方便讲解,这里我用双//解释,当然你在Struts.xml中要用<!--  -->这样来注释
                        //注意在在这里name=“input-form”,我用了默认的class,默认的方法,当然这样
                      //之后这个action的结果result我用name="success",转发到/WEB-INF/pages/form.jsp
                     <action name="input-form">
                             <result name="success">/WEB-INF/pages/form.jsp</result>
                     </action>
           </package>
                    //再看第二个package,首先把action的路径和方法出在com.li.sqlQueryAction(sqlQueryAction.java)
                    //sqlQueryAction.java中有一个方法:save,方法的返回值:success
                    //看  <result name="success" type="chain">type类型是chain,那么接下来简单了
                    //二个param。一个设置name="actionName",param标签对内容是上一个package中action的input-                                                 //input-form      
                    //   第二个param设置就是刚才要求第一个package中name要写的namespace ,暂时理解则么多了0-0                                                    
           <package name="myapp" extends="struts-default">
                     <action name="sqlQuery" class="com.li.sqlQueryAction" method="save">
                          <result name="success" type="chain">
                                 <param name="actionName">input-form</param>
                                <param name="namespace">/er</param>
                          </result>
                     </action>
            </package>
三,动态结果
     这个动态结果首先明白这个含义:指的是在指定实际视图资源使用了表达式语法,通过这样的语法可以让action
    处理完请求之后,动态的转入实际的视图资源。看下面的例子
    我这里先写3个jsp页面:
   //页面1
    <body>
         <a href="Second1_test">Second_execute request</a><br>
    </body>
    //页面2
     <body>
         <p>test2 哈哈</p> 
     </body>
    //页面3
       <body>
           execute 啊啊啊啊啊 <br>
     </body>
    接下来配置struts.xml
     <package name="er" extends="struts-default" namespace="/">
                //注意这里的_*号的含义,当有一个请求是以Second1_开头的请求action模式情况下
                //都将进行处理(前提交条件是有这个servlet)。这里我模拟Second1_test
             //将这个请求发送到SecondAction.java后,method="{1}"会与test方法对应
            //然后有2个结果之一出现,执行转发2或者3页面
           //注意{1}.jsp,这个{1}就是test
             <action name="Second1_*" class="com.li.SecondAction" method="{1}">
            <result name="input">/test2.jsp</result>
            <result name="success">/{1}.jsp</result>
        </action>
    <package/>
    我在com.li包下写SecondAction.java文件,在这个类中有一个方法test(注意这里的test与页面1中href=“Second1_test”中的test对应
    public class SecondAction 
{
    public String test()
    {
        //使用随机数测试结果返回值为:success或者input
        double i = Math.random();
        if(i<0.5)
        {
            System.out.println("i="+i);
            return "success";
        }
        else
        {
            System.out.println("i="+i);
            return "input";    
        }
    }
}
四,全局结果
<global-results>
            <!-- 全局的result对所有的action都起作用 -->
            <result name="index">/index.jsp</result>
</global-results>

J2EE系列之Struts2学习笔记(一)--Struts2安装与配置 之前跟着教学视频学习过Struts2,但是用到的时候总是忘记,需要回过头了看教学视频,这样既费时效果还不好。现在我准备写成博客的形式,既对自己加深印象,又能够帮助到需要的朋友。开始正题! 一、Struts基本情况介绍 简介:这里百度之,百度百科上面介绍的非常清楚了。 Struts2在用户请求、模块化处理以及页面展示方面具有非常好的效果。 二、下载 1.Struts2的主页为:http:/ 阅读详情

相关推荐

Struts2导出Excel功能实现笔记

Apache Struts2是一个灵活的MVC框架,用于创建企业级Java Web应用程序。它是在Struts 1和WebWork框架的基础上发展起来的,提供了强大的标签库和插件支持,是许多大型应用系统的首选框架。随着企业级应用的快速发展,Struts2凭借其成熟稳定的性能在Java社区中占有一席之地。在这一部分,我们将深入了解Excel文件的基础结构,这对于理解和操作Excel文件是至关重要的。

weixin_42668301的博客 979

Struts2_day01上课笔记

一、框架概述 1、框架的意义与作用: 所谓框架,就是把一些繁琐的重复性代码封装起来,使程序员在编码中把更多的经历放到业务需求的分析和理解上面。 特点:封装了很多细节,程序员在使用的时候会非常简单。 2、三大框架: Struts2,Hibernate,Spring 3、学好框架: 由于框架中细节很多,知识点比较零散,课后总结和做好笔记就变得尤为重要。 二、关于三层架构 三、控制器:MVC中的控制器 ...

qq_41518179的博客 223

FAST-LIO2实战:如何在无人机上部署并实现厘米级定位(附ROS配置全流程)

本文详细介绍了如何在无人机上部署FAST-LIO2激光雷达惯性里程计系统,以实现厘米级精确定位。内容涵盖从硬件选型(如激光雷达与机载计算机)、软件环境配置(ROS Noetic)、传感器标定,到FAST-LIO2参数调优、与PX4飞控集成以及实际飞行测试的全流程。重点解决了实时定位中的外参标定、数据同步等关键问题,为无人机在无GPS或复杂光照环境下提供稳定可靠的定位解决方案。

weixin_29062865的博客 250

struts2马士兵笔记

Struts2 学习笔记 ---wjt276       [二○一○年一月五日 完]     目录 01 Struts2-Action 一、         Struts作用: 二、         搭建Struts2的运行环境: 三、

Insist 5486

基于C#的ASP.NET开发的党史学习网站课设

开展党史学习教育,就是要以史为镜、以史明志,把苦难辉煌的过去、日新月异的现在、光明宏大的未来贯通起来,在鉴往知来中砥砺前行,在乱云飞渡中把准航向,在凝心聚力中团结奋斗,共同创造新的历史伟业。登陆按钮与数据库进行连接,逻辑实现是如图3.1.3所示,自己定义一个SQL查询语句,将账号、密码放入SQL查询语句中,用sqlDataReader.HasRows语句进行逐一比较,找出结果,将用户名存入session并调用cookies,如果结果存在就关闭数据库,进行数据跳转,并弹出登陆成功的提示框,并关闭数据库。

m0_62408555的博客 974

mac搭建ios自动化环境之WebDriverAgent配置

一、WebDriverAgent 1、简单介绍: WebDriverAgent是facebook为苹果公司开发的一款自动化测试工具,github上有下载资源;另外appium安装后也会自动安装自带的WebDriverAgent;可以用自带的,也可以从github下载并替换自带的; 2、不同appium版本自带WebDriverAgent默认路径不同 1)appium 1.10.1之前版本: npm方式安装: /usr/local/lib/node_modules/appium/node_modules/a

qq_30237715的博客 2761

struts2笔记整理

整理struts2的概述、入门、执行过程、源代码、核心配置文件、分模块开发、action编写方式、action访问方法介绍 Struts2入门: 概述: Struts2的框架是应用在web层的框架-显示层 Struts2是在struts1和webwork之上发展的全新的框架 Struts可以解决的问题: 图。 Strut2的版本: Web层常见的框架: spri...

pshdhx的博客 5764

V-REP(Cooprliesim EDU)自学笔记 实现UR5机械臂末端按轨迹移动

V-REP(Cooprliesim EDU)自学笔记 实现UR5机械臂末端按轨迹移动

xu_white的博客 7583

Struts2学习笔记(一) struts2的下载以及jar包的导入

一、struts2的下载 struts2下载地址:https://struts.apache.org 进入后点击download即可进入下载页面 在这里我们可以选择不同版本的struts2进入下载 下载时我们选择第一个,第一个中包括了下面所有的 这里我们以2.3.37版本为例,下载完成后我们对压缩包进行解压 二、struts2的基本jar包导入 在这之后我们就可以去创建一个Dynamic ...

showadwalker的博客 6448

利用eds editor生成CANOPEN 设备eds文件

通过以上步骤,您可以根据实际设备的功能特性,自动生成一份符合CANopen协议标准的电子数据表(EDS文件),该文件可以被上位机软件或其他CANopen主站设备用于识别、配置和控制您的CANopen从站设备。使用CANopen EDS Editor生成CANOPEN设备的EDS文件是一个系统化的过程,它涉及将设备的具体技术参数和功能映射到CANopen规范定义的对象字典中。

weixin_38604759的博客 6458

24、汽车黑客技术全解析:诊断代码、车库创建与系统攻防

本文深入探讨了汽车黑客技术的核心内容,包括诊断代码模式与参数ID、创建开放车库社区、汽车系统相关技术、硬件与软件工具、攻击与防御手段,以及车辆通信与网络安全。无论你是汽车安全研究人员、爱好者还是开发者,都能从中获取全面的技术解析与实践指南。

Apple的专栏 228

Struts2 完整笔记

MVC模式 MVC(Model-View-Controller 模型-视图-控制器)是一个存在于服务器表达层的模型。在MVC经典架构中,强制性地吧应用程序的输入、处理和输出分开,将程序分成3个核心模块——模型、视图、控制器 Struts2框架 Struts是Apache软件基金下的JAKARTA项目的一部分,它目前有两个版本(STRUTS1.X和STRUTS2.X)都是基于MVC经典设计模式的框架 Struts2的体系结构图 在web.xml中配置过滤器 struts2 org.apache.strut

JPA_soul的博客 606

爬虫瑞数5.5案例:欧冶钢材交易官网,带后缀K5nOZLud(面向对象补环境)

瑞数动态安全 Botgate(机器人防火墙)以“动态安全”技术为核心,通过动态封装、动态验证、动态混淆、动态令牌等技术对服务器网页底层代码持续动态变换,增加服务器行为的“不可预测性”,实现了从用户端到服务器端的全方位“主动防护”,为各类 Web、HTML5 提供强大的安全保护。由于之前某通信的瑞数已经调整,这里再出一篇文章,瑞数特点以及请求执行的流程已在之前的文章中分析过,这里不再特别讲解;

老衲爱洗头的博客 3043

Struts2学习笔记二(Struts2的使用)

注:学习笔记,可能有些地方会有错误,仅供参考 Struts2的基本使用 由于我们使用Struts2代替了表现层的Servlet,同样我们也需要学习如果通过Struts2获取页面传来的数据,或者如何向页面传数据,同时还要学习如何转发或者重定向到一个逻辑页面(jsp或者action类)。 Struts2的域对象的使用 在Servlet时,我们是通过域对象向页面传数据,这些域对象都是Servl...

水中无名鱼的博客 225

全球APN信息汇总

全球APN信息,电信APN,移动APN,联通APN,台湾APN,马来西亚APN,俄罗斯APN,日本APN,泰国APN,美国APN,英国APN,法国APN,德国APN,意大利APN,葡萄牙APN,土耳其APN,荷兰APN,丹麦APN,比利时APN,爱尔兰APN,新加坡APN,越南APN,老挝APN,菲律宾APN,印尼APN,泰国APN,柬埔寨APN,巴基斯坦APN,印度APN,奥地利APN,保加利亚APN,捷克APN,立陶宛APN,罗马尼亚APN,挪威APN,希腊APN,匈牙利APN,瑞士APN,乌克兰APN

renkai721的专栏 2796

蓝牙模块HM-10手册

蓝牙模块HM-10手册,该手册对蓝牙模块HM-10进行了详细的介绍和使用方法以及一些AT指令。

Struts2学习笔记

struts2 域对象 Servlet 中常使用到的 request、session、application 对象,在 struts2 中被重新封装过,变成 Map 类型的。但是在 jsp 页面中的 el 表达式仍旧是访问原始的 request、session、application 对象。 当然在 struts2 中的 Action 组件中也还是可以获取到原始的 request、session、application 对象的。 Action 组件如何使用 request/session/applicati

liaowenxiong的博客 1487

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

Struts2笔记

Struts2笔记   第一节:概述 1.      简介: l  Struts2是自webwork框架发展而来,与Struts1无关,只为借助Struts1的名气; l  Sturts2所用到的基本技术:动态代理 + 反射 + 过滤器; l  Struts2主要是针对jsp/servlet的技术,Hibernate是针对DAO的技术。   2.      注意点: l  使用S

AlvinNoending的专栏 943

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

Struts2的国际化与上课总结

今天主要学习的struts2的国际化,国际化其实让我来说就是为了方便不同的人群所写的一个共同的程序,里面可以包括不同的语言,不同的提示信息,今天把国际化的知识讲完了,感觉还可以,上课的时候做了两个实例,感觉也并不是那磨难,只需要加上配置文件,有三种方法,虽然遇到一些bug,但都解决了,在不同的需求可能需要不同的方法,接下来来看看专业术语的解释:      一个系统的国际化就是根据操作系统的语言

维生素&的专栏 2778

[java][struts2]Struts2框架按照如下顺序加载struts2配置

为了避免struts.xml文件过于庞大、臃肿,提高struts.xml文件的可读性,我们可以将一个struts.xml配置文件分解成多个配置文件,该属性指定需要Struts 2处理的请求后缀,该属性的默认值是action,即所有匹配*.action的请求都由Struts2处理。四、在大部分应用里,随着应用规模的增加,系统中Action的数量也会大量增加,导致struts.xml配置文件变得非常臃肿。如果多个文件配置了同一个struts2 常量,则后一个文件中配置的常量值会覆盖前面文件配置的常量值。

一名不太专业的程序员 3364

尚硅谷STRUTS2视频学习笔记

  上一个月一直在学习STRUTS2,学习的是尚硅谷佟刚老师的视频,因为很喜欢佟刚老师的声音,而且他讲的很细,笔记做的也多,基本上是照着他的视频完整的敲了一遍代码,下面就把学习到的知识梳理一遍,最后把项目分享一下,有需要的可以下载一下。佟刚老师是新建了很多个工程,而我是把所有的内容放在一个工程中的,所以可能有些乱。   工程的结构: 自己也照着所说的笔记自己敲了一遍。所以不但...

QQ40153258的博客 379

STRUTS2学习笔记(1)

STRUTS2 应用STRUTS2之前先思考,为什么用STRUTS2,首先想到的就是它把请求与展现分开了,提供了最大的灵活性, 但是这点在之前的MOD2就可以达到了,那么STRUTS2相对于MOD2来说就应该是有更强的功能性。 STRUTS2的定义为基于MVC模式的轻量级WEB应用框架 STRUTS2的处理过程 1发送请求 2调用execute方法 3调用业务方

osakya12的专栏 792

struts2笔记

struts2package元素属性:name:必须的,配置文件中要唯一.extends:指定父包.会把父包中的配置内容继承下来.一般需要直接或间接的继承一个叫做”struts-default”的包(在struts-default.xml配置文件中),如果不继承,那么struts2的核心功能将无法使用abstract:是否是抽象包.没有任何action子元素的package可以生命为抽象包names

yahong6351的博客 276

struts 2学习笔记—初学struts 2

首先我学习了struts 1.x与struts 2的区别: 1.struts 1.x的控制器类必须从Action类继承。 2.struts 2的控制器类可以是一个普通的类,也可以是ActionSupport类的子类。 3.struts 1.x使用一个名为ActionServlet的Servlet类来处理客户端请求。 4.struts 2.x使用一个名为FilterDispatche

li898445911a的专栏 1001

Struts2入门笔记

1.什么是Struts2 Struts2是一个基于MVC设计模式的Web应用框架,它本质相当于一个servlet,在MVC设计模式中,Struts2作为控制器来建立模型与视图的交互。 Struts2的优点有: Result方式页面导航,通过Result标签的配置很方便的实现页面重定向和跳转 通过配置来调度业务类,使得配置和修改都比较容易 自定义拦截器、结果类型、标签等 等等 2.下载Str...

cgs的博客 587

Struts2框架学习笔记之Struts2入门

目录标题Struts2简介Struts2的优点Struts2处理流程Struts2快速入门下载jar包创建项目新建JSP配置web.xml创建struts.xml文件创建class类 Struts2简介 Struts2是一种基于MVC模式的轻量级Web框架,Struts2是Struts1的下一代产品,是在Struts1和WebWork技术的基础上进行合并后的全新框架 struts2框架其实是对javaWeb表现层的MVC作了优化 Struts2的优点 1、项目开源,使用及拓展方便,天生优势。 2、提供E

Atkx's Blog 574
上一篇: Struts2学习(每天一点进步)
下一篇: struts2-国际化资源
javaee3
博客等级 码龄11年 1粉丝 6原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值