Struts 2.0初体验--参照Tutorials来写第一个Struts 2.0程序

基于资源预测的Agent弹性伸缩:在成本与响应延迟间寻找最佳平衡点 手动伸缩:完全由运维人员人工调整副本数或服务器数量,效率极低,现在基本只用于极小规模的业务。反应式伸缩:基于当前实时监控指标触发伸缩规则,比如CPU利用率超过70%就加2个副本,是目前应用最广泛的方案,典型代表是K8s HPA、KEDA。预测式伸缩:基于历史时序数据预测未来的负载,提前进行伸缩,解决反应式伸缩的滞后性问题,典型代表是AWS Predictive Scaling、阿里云预测式HPA。智能Agent伸缩。 阅读详情
        首先要说的是我昨天遇到的问题, 之前用的是Tomcat 5.0.28, 把Struts 2.0下的struts2-blank放到Tomcat下, 根本运行不了, 弄了半天也不成, 今天早上来了, 换了个Tomcat 5.5, 结果就OK了. 我想应该是Struts 2.0得要Tomcat 5.5以上的版本吧. 我的开发环境是:JDK5.0+Tomcat 5.5+Eclipse3.2
        好啦, 开始进入我们第一个Struts 2.0的例子吧, 按照惯例, 第一个当然是HelloWorld啦. 就照着Tutorials里的HelloWorld来做一个吧.
        先写一个显示页面, hello.jsp:

<%@ taglib prefix="s" uri="/struts-tags" %>

<html>
<head>
<title>The First Struts 2.0 Example</title>
</head>
<body>
    
<h2><s:property value="message" /></h2>
</body>
</html>

 注意这里的Tag, 跟Struts 1.x里是不一样的了.

        有了JSP页面, 下面该写我们的Action了, 代码如下:
package com.puras.struts2;

import com.opensymphony.xwork2.ActionSupport;

public class HelloWorld extends ActionSupport {
    
public static final String MESSAGE = "Struts 2.0 is up and running...";
    
    
private String message;
    
    
public void setMessage(String message) {
        
this.message = message;
    }

    
    
public String getMessage() {
        
return this.message;
    }

    
    
public String execute() throws Exception {
        setMessage(MESSAGE);
        
return SUCCESS;
    }

}
感觉是不是和1.x不一样啦, 呵呵, 看看这个execute方法, 没有了在1.x里的那四个参数, 这样在单元测试的时候, 就方便多啦.

        Action也OK了, 接下来就是配置它啦, 在2.0里面, 不再用1.x的struts-config.xml了, 而是改成了struts.xml与WebWork的配置文件相似, 其实感觉就是换了个名字, 哈.

<!DOCTYPE struts PUBLIC
    "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"
    "http://struts.apache.org/dtds/struts-2.0.dtd"
>
<struts>
    
<include file="example.xml" />
</struts>

在这里呢, 把Struts的配置, 分成了多个小块, 在struts.xml里面给引用过来, 这样就方便多啦, 在Action等众多的情况下, 分到多个文件里, 可以更方便我们管理和维护. 来看看example.xml吧.

<!DOCTYPE struts PUBLIC
        "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"
        "http://struts.apache.org/dtds/struts-2.0.dtd"
>
<struts>
    
<package name="example" namespace="/example" extends="struts-default">
        
<action name="hello" class="com.puras.struts2.HelloWorld">
            
<result>/hello.jsp</result>
        
</action>
    
</package>
</struts>

相当简单吧? 在Pageage里的namespace不是必须的, 其实只有Name是必须的, 但是NameSpace这个属性很有用哦, 给Action加一个前缀, 可以在我们写Action的时候, 少写一些东西, 要是在1.x里, 所有的Action都是以/struts/开头, 那我们就得在每个里面的Path上都写上/struts/啦, 不过在这里, 有了这个属性, 就可以不写啦.呵呵.

        Action的定义就相当简单啦, name等同于1.x里的Path,  Class呢就是我们刚写的Action啦, 跟1.x里的Type一样, 中间的Result, 就是Action处理完之后, 要返回的页面啦.呵呵, 是不是很简单?

        还要有一个struts.properties文件, 在里面配置一些Struts运行所需要的参数, 在里面加上一些设置:

struts.devMode = true
struts.enable.DynamicMethodInvocation = false

        把struts.xml和struts.properties都放到classes目录下就OK了.

        配置完了Struts的东西, 基本就差不多啦, 不过不要忘了, 在web.xml里定义上哦, 与1.x不同啦, 以1.x里, 用的是 一个Servlet, 在这里, 用的是Filter啦(PS:我也是刚刚接触, 只看到了用Filter的, 不知道还有没有其他的.呵呵.)

<filter>
        
<filter-name>struts2</filter-name>
        
<filter-class>org.apache.struts2.dispatcher.FilterDispatcher</filter-class>
    
</filter>
    
    
<filter-mapping>
        
<filter-name>struts2</filter-name>
        
<url-pattern>/*</url-pattern>
    
</filter-mapping>

        这样你的程序基本就OK啦, 把Tomcat启动起来, 访问一下:http://localhost:8080/struts2/example/hello.action     看看结果撒.具体的URL要参照你自己的配置哦, 还有就是刚才说的那个namespace, 因为允许为空, 所以在空的时间, 是默认的 / .在这里我也只是为了测试一下看看效果.呵呵.

        WEB一块就算结束了, 这里要加几句, 在2.0里, 可以很方便的对Action进行测试, 针对于上面的Action, 可以写个测试为:

package com.puras.struts2;

import com.opensymphony.xwork2.ActionSupport;

import junit.framework.TestCase;

public class HelloWorldTest extends TestCase {
    
public void testHelloWorld() throws Exception {
        HelloWorld hello 
= new HelloWorld();
        String result 
= hello.execute();
        
        assertTrue(
"Expected a success result!", ActionSupport.SUCCESS.equals(result));
        
        assertTrue(
"Expected the default message!", HelloWorld.MESSAGE.equals(hello.getMessage()));
    }

}


        想想如果要是在1.x里做Action的测试, 会是个什么样子, 再看看2.0的, 感觉良好吧?

        好啦, 就写这么多吧, 抓紧时间去熟悉更多的东西喽~~~~~~~
MATLAB功率谱函数psd与pwelch的使用 在网上看到 clear; Fs=1000; n=0:1/Fs:1; y=cos(2*pi*40*n)+3*cos(2*pi*100*n)+randn(size(n)); Nfft=1000; window=hanning(100); noverlap=20; dflag='none'; [Pxx,f]=psd(y,Nfft,Fs,window,noverlap); figure plot(f,10*log10(Pxx)); xlabel('frequency/Hz');ylab 阅读详情

相关推荐

PLDM实战解析:传感器与效应器在智能监控系统中的应用

本文深入解析了PLDM(平台级数据模型)中传感器与效应器两大核心组件在智能监控系统中的应用。传感器负责感知硬件状态,分为数值型与状态型,提供精准的“体检报告”;效应器则负责执行控制指令,实现从监控到操作的闭环。文章通过实战案例,阐述了如何利用这些标准化组件构建高效、自动化的智能监控系统,并探讨了平台描述记录与事件机制等关键技术。

k6l7m8n9的博客 854

重识人生最重要的十个健康伴侣

 伴侣一———菠菜  不贫血———菠菜中富含铁,铁是人体造血原料之一,是女性经期时的好食品。经常吃菠菜的人面色红润、光彩照人,可远离缺铁性贫血。  体质强———菠菜中含有可观的蛋白质,可帮助身体发育,精力旺盛。  皮肤好———维生素K,这是很多蔬菜水果中缺乏的。人的头发光亮,皮肤白净有光泽,不仅需要维生素A、B、C,也少不了维生素K。  排毒———菠菜可以清理人体肠胃里的热毒,避免便秘

软体疯子专栏 1439

今日指数项目之实时流数据采集【六】

实时数据采集代码

Maynor的博客 2103

明智饮食:重识人生最重要的十个健康伴侣

 伴侣一——菠菜     不贫血——菠菜中富含铁,铁是人体造血原料之一,是女性经期时的好食品。经常吃菠菜的人面色红润、光彩照人,可远离缺铁性贫血。     体质强——菠菜中含有可观的蛋白质,可帮助身体发育,精力旺盛。     皮肤好——维生素k,这是很多蔬菜水果中缺乏的。人的头发光亮,皮肤白净有光泽,不仅需要维生素a、b、c,也少不了维生素k。     排毒——菠菜可以清理人体

albert的专栏 1415

人生最重要的十个健康伴侣

伴侣一:菠菜不贫血-菠菜中富含铁,铁是人体造血原料之一,是女性经期时的好食品。经常吃菠菜的人面色红润、光彩照人,可远离缺铁性贫血。体质强-菠菜中含有可观的蛋白质,可帮助身体发育,精力旺盛。  皮肤好-维生素K,这是很多蔬菜水果中缺乏的。人的头发光亮,皮肤白净有光泽,不仅需要维生素A、B、C,也少不了维生素K。  排毒-菠菜可以清理人体肠胃里的热毒,避免便秘,保持排泄的...

weixin_30781107的博客 210

人生重要的十个健康伴侣zz

      伴侣一——菠菜   不贫血——菠菜中富含铁,铁是人体造血原料之一,是女性经期时的好食品。经常吃菠菜的人面色红润、光彩照人,可远离缺铁性贫血。   体质强——菠菜中含有可观的蛋白质,可帮助身体发育,精力旺盛。   皮肤好——维生素K,这是很多蔬菜水果中缺乏的。人的头发光亮,皮肤白净有光泽,不仅需要维生素A、B、C,也少不了维生素K。   排毒——菠菜可以清理人体肠胃里的热毒,避免便秘,保

ruluo 1391

在你眼中,人生最重要的是什么?

导语  在你眼中,人生最重要的是什么? 家人、朋友、健康?还是汽车、房子、工作?   在正文开始之前,我们希望你沉淀一下自己,认真想想人生对你而言最重要的是什么? 家人、朋友、理想工作、成就感、归属感、健康、学习、自信、金钱、社会地位 答案没有设限范围或数量,哪些是你最想把握的?   近两年,越来越多的人不回家过年了。“回家过年”,渐渐地从一种习俗变成了一种可有可无的选择。 其实...

德昂信息博客 1774

人生最重要的十个美味伴侣 [转]

伴侣一 :菠菜   不贫血———菠菜中富含铁,铁是人体造血原料之一,是女性经期时的好食品。经常吃菠菜的人面色红润、光彩照人,可远离缺铁性贫血。   体质强———菠菜中含有可观的蛋白质,可帮助身体发育,精力旺盛。   皮肤好———维生素K,这是很多蔬菜水果中缺乏的。人的头发光亮,皮肤白净有光泽,不仅需要维生素A、B、C,也少不了维生素K。   排毒———菠菜可以清理人体...

dengxiajuan5846的博客 243

【笔记】【人生系统】

为什么纳瓦尔会反复强调说选择人生伴侣是你,一生中最重要的决定,嗯,甚至比你的职业选择和投资决策都还要重要,这个他也有很明确的说,就是选择一个人生伴侣是你一生中最重要的决,定,他的重要性远超你的职业选择,甚至比你的投资决策都还要重要,嗯,因为如果你的这个伴侣关系是很糟糕的,他会把你的内心平静都给摧毁掉,而内心平静是你幸福的基础,就是说我们在找伴侣的时候,真正应该关注的是什么,寻找伴侣的终极目的不是为了社会地位,不是为了经济利益,甚至不是为了满足别人的期待,嗯,而是为了获得长期的幸福和内心的平静,你要找的是那个

wq6qeg88的博客 784

人生什么最重要

什么最重要 20岁的人说,学习成绩最重要.一次考试分数,可以把人分为三六九等."博士","本科","大专""高职""中专",成绩好的上好学校,成绩差的上差学校;成绩好的风光无限,成绩差的灰头土脸. 25岁的人说,理想工作最重要.虽然说,三百六十行,行行出状元;虽然说,只要是金子,到哪儿都发光.但数万人挤破脑袋报考公务员的现状,却在不断地提醒着年轻人,工作岗位的差别实在是太大了.找什么样的

szu030606的专栏 1543

人生中十个重要的健康伴侣

伴侣一:菠菜   不贫血   菠菜中富含铁,铁是人体造血原料之一,是女性经期时的好食品。经常吃菠菜的人面色红润、光彩照人,可远离缺铁性贫血。   体质强   菠菜中含有可观的蛋白质,可帮助身体发育,精力旺盛。   皮肤好   维生素K,这是很多蔬菜水果中缺乏的。人的头发光亮,皮肤白净有光泽,不仅需要维生素A、B、C,也少不了维生素K。   排毒   菠菜可以清理人体肠胃里的热毒,避

lujiancs的专栏 639

生活中的十个健康伴侣

重识人生最重要的十个健康伴侣  伴侣一:菠菜  不贫血:菠菜中富含铁,铁是人体造血原料之一,是女性经期时的好食品。经常吃菠菜的人面色红润、光彩照人,可远离缺铁性贫血。  体质强:菠菜中含有可观的蛋白质,可帮助身体发育,精力旺盛。  皮肤好:维生素K,这是很多蔬菜水果中缺乏的。人的头发光亮,皮肤白净有光泽,不仅需要维生素A、B、C,也少不了维生素K。  排毒:菠菜可以清理人体肠胃

「 GG之绿草 」 1028

人生最重要仅有健康

人这一生,只有今生,没有来世。所以,活着的时候,我们一定要珍惜身体。若没有了健康,只能躺在病床上,吃药打针,忍受病魔。还有什么兴趣谈人生荣耀,欢乐、智慧、学识和美德都会黯然无光,不见影踪。只有身体好,才能享受这精彩的世界,才能追求自己想要的东西。 为了适应这个社会,为了金钱、地位、权力,我们曾为之哭为之笑,不得不和现实妥协,放弃一些梦想,投入所有的时间和精力。 人活一世,如果总是被欲望支配着,总是为金钱而烦恼,总是为追寻名利而苦恼,为得到和失去而纠结,就会心累,时间久了身体就会出现问题。 不是我们不爱钱,

llshow937001的博客 289

到底什么才是人生最大的投资

不是房子,不是股票, 是人,跟什么人交往,跟随什么人, 交什么样的朋友,其实就是你投资什么人, 而这,是对人生影响最大的。 钱不会给人机会,房子也不会, 只有人会给人机会,当人需要帮助的时候,只有人会帮人。 也就是你的人脉,请记住以最短的时间,结交更多优质的人脉。   人生第二大的投资,是时间。 每个人每天都只有24个小时, 你拿这24小时做了什么,是你第二大的投资, 你

szu030606的专栏 950

人生的五大投资,千万不要投错!-

人生第1大投资:人 人生最大的投资,不是房子,不是股票,是人,跟什么人交往,跟随什么人,交什么样的朋友,其实就是投资什么人,而这,是对人生影响最大的。钱不会给人机会,房子也不会,只有人会给人机会,当人需要帮助的时候,只有人会帮人。 人生第2大投资:时间 每个人每天都只有24个小时,我们拿这24个小时做了什么,是我们的第二大投资,是投资给规划思考未来,还是投资给韩剧,还是投

lianjinglei的专栏 1861

ISO 15765-4-2021 英文原版+中文翻译 道路车辆-控制器局域网诊断通信(DoCAN)- 第4部分:适用于排放相关系统的要求+可复制+带目录.zip

​​核心目标与定位​​:该标准的核心目标是确保安装在车辆上的一个或多个与排放相关的电子控制单元(ECU)能够与连接至车辆诊断接口的外部测试设备(如诊断仪)之间,建立、维持和终止稳定的诊断通信。它不规定车辆内部CAN网络的具体架构,而是专注于​​诊断连接器接口处的通信规范​​,是实现合规车载诊断(OBD)功能的关键。​​关键技术机制​​:该标准定义了一套完整的通信协议,以确保数据在CAN总线上可靠传输。其核心包括​​单帧传输​​(用于短数据)、​​首帧-连续帧传输​​(用于长数据,进行分段和重组)以及​​流控制帧​​(用于协调数据传输速率,防止数据丢失)等机制。标准还详细规定了数据帧的格式、报文排序、定时参数以及错误检测和处理机制,从而保障诊断会话的可靠性。​​与其他标准的关系​​:ISO 15765-4是ISO 15765系列标准的一部分,它基于​​ISO 15765-2(网络层服务)​​ 的规范,并为其上层应用层协议(如ISO 14229-1中定义的统一诊断服务UDS)或特定的OBD服务(如ISO 15031-5)提供传输支持。同时,它也依赖于ISO 11898系列标准对CAN总线物理层和数据链路层的定义

Delphi 12.3 控件之delphi设置主菜单字体.zip

delphi设置主菜单字体.zip

上一篇: Struts 2.0初体验
下一篇: Struts 2.0初体验-参考Tutorials写的登录页面
Puras
博客等级 码龄21年 2粉丝 9原创
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值