使用Struts2开发程序的基本步骤

Autodesk软件网络授权破解 Autodesk 全系列产品网络授权破解 此网络许可授权破解文件及方法适用Autodesk 绝大部分的产品, 安装网络许可证管理器Autodesk网络许可证管理器x64位官方下载地址( https://knowledge.autodesk.com/sites/default/files/file_downloads/nlm11.14.1.3_ipv4_ipv6_win64.msi ) Autod... 阅读详情
使用Struts2开发程序的基本步骤如下:struts.apache.org
第一步:导入架包
(1)commons-fileupload-1.3.2.jar    文件上传时需要使用
(2)commons-io-2.2.jar              Java io扩展
(3)commons-lang3-3.2.jar           包含了一些数据类型的工具类
(4)commons-logging-1.1.3.jar       日志处理
(5)freemarker-2.3.22.jar           Struts2的标签模板使用类库
(6)javassist-3.11.0.GA.jar         对字节进行处理
(7)ognl-3.0.19.jar                 Struts2使用的一种表达式语言类库
(8)struts2-core-2.3.33.jar         Struts2框架的核心类库
(9)xwork-core-2.3.33.jar           XWork类库,Struts2的构建基础
第二步:配置web.xml文件
StrutsPrepareAndExecuteFilter//struts准备和执行的一个过滤器
(导包:org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter)
<!-- Struts2核心过滤器配置 -->
      <filter>
          <filter-name>struts2</filter-name>
          <filter-class>/org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class>
      </filter>
<!-- <url-pattern></url-pattern>过滤的请求格式 -->
      <filter-mapping>
          <filter-name>struts2</filter-name>
          <url-pattern></url-pattern>
      </filter-mapping>
第三步:开发视图层页面
    创建一个login.jsp
    <div align="center">
        <form action="" method="post">
            用户名:<input type="text" name=""/><br/>
            密    码:<input type="password" name=""/><br/>
            <input type="submit" value="登录"/>
        </form>
    </div>
第四步:开发控制层Action

    实现Action(import com.opensymphony.xwork2.Action;)

    public class HelloWorldAction implements Action {
    // 用户输入的姓名
    private String name = "";
    // 向用户显示的信息
    private String message = "";
    public String execute() {
    // 根据用户输入的姓名,进行"Hello,XXXX!"的封装
    this.setMessage("Hello,"+this.getName()+"!");
    // 处理完毕,返回导航结果的逻辑名
    return "success";
    }
    …    
    //省略setter、getter方法
}
第五步:src下配置Struts.xml文件
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE struts PUBLIC "//Apache Software Foundation//DTD Struts Configuration 2.0//EN" "http://struts.apache.org/dtds/struts-2.0.dtd">
<struts>    
    <!-- 打开方法的动态调用 -->    
    <constant name="struts.enable.DynamicMethodInvocation" value="true" />                        
    <!-- Struts-default里面是一些拦截器的配置 ("/")代表根目录-->
    <package name="mypackage" extends="struts-default" namespace="/">
        <action name="user" class="com.zking.action.UserAction">
            <!--成功跳转到login_success.jsp页面-->
            <result name="success" type="">login_success.jsp</result>
            <!--失败跳转到login_success.jsp页面-->
            <result name="fail" >login_fail.jsp</result>
        </action>
    </package>
</struts>    

最后:部署运行项目
20、认知负荷理论在教育技术中的应用 本文深入探讨了认知负荷理论(Cognitive Load Theory, CLT)在教育技术中的应用,重点分析了如何通过优化教学设计减少学习者的认知负荷,提高学习效率。文章介绍了认知负荷的三种类型:内在认知负荷、外在认知负荷和germane认知负荷,并结合多媒体学习原则(如模态效应、空间连续性原则、时间连续性原则等)提出了减少外在认知负荷的具体策略。此外,文章通过实证研究和教学案例,展示了认知负荷理论在不同学科和个性化教学中的广泛应用和有效性。最终,文章总结了应用认知负荷理论进行教学设计的具体流程,强调其在 阅读详情

相关推荐

本地AI代码助手:智能解析大型代码库,实现自动化重构与理解

在软件开发中,大型代码库的理解与维护是常见挑战。传统方法依赖人工阅读和有限上下文工具,效率低下。通过结合检索增强生成(RAG)和多智能体(Multi-Agent)架构,现代AI工具能够智能解析代码结构,理解模块关系,并精准定位相关代码片段。这种技术不仅能提升代码探索效率,还能自动化执行重构、文档生成等任务,在遗留系统维护、快速上手新项目等场景中发挥关键作用。本文以blackboxaicode/cli为例,展示了如何利用其代码感知和Workflow Automation能力,高效处理复杂代码库。

weixin_30240349的博客 363

Struts 1.x项目——简单的登录界面

前言:这是一个最简单的Struts 1.x的项目。设计思路是在表单中输入用户名和密码,验证用户名和密码是否有内容(服务器端验证),如果输入正确显示欢迎信息,否则显示错误信息。 使用软件:MyEclipse2017, Tomcat 8.5 MyEclipse默认支持Struts 1.x和Struts 2.x的开发。 一、建立一个新的项目 1.选择新建Web Project,输入项目名称Struts_Login 2.在Struts 1.x还没有Annotation配置支持,所以此处使用Struts 1.x.

Yua_H的博客 1022

3GPP协议解读_NTN系列(一)_38.811_非地面网络(NTN)的背景、应用场景和信道建模

非地面网络覆盖广,对物理攻击和自然灾害有一定的抵抗性。本文根据3GPP协议对NTN网络的背景、应用场景和信道模型进行了整理。

JCMLSY的博客 4925

struts开发入门

Struts2的下载和安装 去下载Struts2 最新版 struts2目录结构【开发时没必要将lib目录下jar文件全部复制到项目中】 apps 该文件夹包含了基于struts2 的示例应用,这些示例应用对于学习者是非常有用的 docs 该文件夹下包含了struts2 相关文档,包括struts2 快速入门、struts2的文档以及API文档等 lib 该文件夹下包含了Struts2框架和核心类库,以及struts2第三方插件类库 src 该文件夹下包含了Struts2框架的全部源代码 Strut

h1481408400的博客 239

AF3​​​​​​​ Msa、TemplateHit、HitMetadata类解读

Msa:处理 多序列比对 (MSA) 结果,为 AlphaFold3 提供 序列进化信息。 TemplateHit:存储 查询序列与模板结构的比对信息,用于 筛选模板。 HitMetadata:提供 比对模板的 PDB 结构信息,帮助 解析和使用模板数据。

qq_27390023的博客 818

STM32F103C8T6飞控入门:从零开始,用HAL库和MPU6050搭建你的第一架四轴无人机

本文详细介绍了如何使用STM32F103C8T6和MPU6050模块从零开始搭建四轴无人机飞控系统。通过硬件选型、电路设计、HAL库配置、姿态解算算法实现以及PID控制等步骤,帮助创客和嵌入式爱好者快速入门飞控开发。文章还提供了实用的调试技巧和常见问题解决方案,适合想要掌握四旋翼无人机核心技术的开发者。

weixin_42524750的博客 266

Struts|七步搞懂 Struts2 开发和使用步骤

Struts|七步搞定 Struts2 开发和使用步骤。工作之后再也没用过了,^_^,致我们逝去的青春。

不甩锅的码农 1876

STM32 USB2.0 转 Type-C 接口设计与实现

本文详细介绍了STM32 USB2.0转Type-C接口的设计与实现方案,涵盖硬件电路设计、软件配置及调试技巧。重点解析Type-C接口的CC引脚配置和电源管理,提供设备模式、主机模式及双角色模式的实现方法,帮助开发者解决实际应用中的连接稳定性和ESD防护等问题,提升产品可靠性和兼容性。

blockchain9miner的博客 1020

java之路—— 带你了解Struts与其基本的应用

创作不易,各位亲给个免费的呗 文章目录前言一、什么是Struts,可以用来干嘛二、Struts 与 springmvc三、Struts的开发的基本步骤四、Struts的处理流程 前言 Struts是在2000年由Apache软件基金会首次发布的,自那时以来,它在Java Web开发中扮演着重要的角色,并经历了许多值得注意的发展阶段。 Struts 1.x:Struts的最初版本是Struts 1.x系列,它引入了MVC架构模式,提供了基本的控制器(Action)和视图(JSP)的分离。Struts

m0_68987535的博客 1712

逆向实战:手把手教你分析Google DroidGuard虚拟机的加密与反调试(附Python脚本)

本文深入解析Google DroidGuard虚拟机的加密机制与反调试策略,提供从环境配置到逆向分析的完整实战指南。通过IDA Pro、Frida等工具链,详细剖析DroidGuard的信号拦截、内存校验等保护机制,并附Python脚本实现自动化分析,助力Android安全研究人员突破GMS核心组件的安全防护。

weixin_32428571的博客 308

74、光谱成像在电子内窥镜及色彩理论中的应用

本文探讨了光谱成像在电子内窥镜中的应用及其与色彩理论的深度融合。通过分析FICE技术、色彩再现模型及胃黏膜光谱测量,展示了光谱信息在提升医学诊断准确性方面的潜力。同时,系统阐述了颜色的物理属性、标准表示方法、同色异谱现象、颜色测量技术(密度法与比色法)以及CIELAB等均匀颜色空间的构建原理。结合流程图与对比表格,梳理了从光信号获取到颜色处理的完整路径,并展望了人工智能与新型视觉模型在未来医疗成像与色彩科学中的发展方向。

g2h3i4j5的博客 152

创建Struts2项目并实现一个例子

关于这个的简单实现

ccb1372098的博客 1007

【国密】基于SM2的协同签名与协同解密方案

两方协同签名指客户端与服务端协同完成签名、验签操作,具体实现方案参考了信工所专利[3]。在业务应用中,两方或多方的协同签名一般采用门限签名方案可以用来构造。门限密码算法在多方协作的相关场景中应用十分广泛,可以实现数据联合授权、认证、密钥安全恢复、密钥安全交换等需求,在诸多分布式多方计算协议中均可见其身影。在上述两方协同签名方案中,最巧妙的地方在于签名值s分量的构造,通过一些列数学变换,得以恢复。以下从两方协同签名方案介绍入手,介绍门限密码在协同签名中的应用。解决上述问题的关键在于门限密码算法的巧妙构造。

听雨草堂 8388

Struts2 开发程序的基本步骤

使用Struts2开发程序的基本步骤:         1.加载Struts2类库         2.配置web.xmlwen文件         3.开发视图层页面         4.开发控制层Action         5.配置Struts.xml文件         6.部署,运行项目

qq_36074064的博客 480

深度学习工具包 DeepLearningToolbox

深度学习工具包Deprecation notice.-----This toolbox is outdated and no longer maintained.There are much better tools available for deep learning than this toolbox, e.g. [Theano](http://deeplearning.net/software/theano/), [torch](http://torch.ch/) or [tensorflow](http://www.tensorflow.org/)I would suggest you use one of the tools mentioned above rather than use this toolbox.Best, Rasmus.DeepLearnToolbox================A Matlab toolbox for Deep Learning.Deep Learning is a new subfield of machine learning that focuses on learning deep hierarchical models of data.It is inspired by the human brain's apparent deep (layered, hierarchical) architecture.A good overview of the theory of Deep Learning theory is[Learning Deep Architectures for AI](http://www.iro.umontreal.ca/~bengioy/papers/ftml_book.pdf)For a more informal introduction, see the following videos by Geoffrey Hinton and Andrew Ng.* [The Next Generation of Neural Networks](http://www.youtube.com/watch?v=AyzOUbkUf3M) (Hinton, 2007)* [Recent Developments in Deep Learning](http://www.youtube.com/watch?v=VdIURAu1-aU) (Hinton, 2010)* [Unsupervised Feature Learning and Deep Learning](http://www.youtube.com/watch?v=ZmNOAtZIgIk) (Ng, 2011)If you use this toolbox in your research please cite [Prediction as a candidate for learning deep hierarchical models of data](http://www2.imm.dtu.dk/pubdb/views/publication_details.php?id=6284)```@MASTERSTHESIS\{IMM2012-06284, author = "R. B. Palm", title = "Prediction as a candidate for learning deep hierarchical models of data", year = "2012",}```Contact: rasmusbergpalm at gmail dot comDirectories included in the toolbox-----------------------------------`NN/` - A library for Feedforward Backpropagation Neural Networks`CNN/` - A library for Convolutional Neural Networks`DBN/` - A library for Deep Belief Networks`SAE/` - A library for Stacked Auto-Encoders`CAE/` - A library for Convolutional Auto-Encoders`util/` - Utility functions used by the libraries`data/` - Data used by the examples`tests/` - unit tests to verify toolbox is workingFor references on each library check REFS.mdSetup-----1. Download.2. addpath(genpath('DeepLearnToolbox'));Example: Deep Belief Network---------------------```matlabfunction test_example_DBNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit RBM and visualize its weightsrand('state',0)dbn.sizes = [100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);figure; visualize(dbn.rbm{1}.W'); % Visualize the RBM weights%% ex2 train a 100-100 hidden unit DBN and use its weights to initialize a NNrand('state',0)%train dbndbn.sizes = [100 100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);%unfold dbn to nnnn = dbnunfoldtonn(dbn, 10);nn.activation_function = 'sigm';%train nnopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.10, 'Too big error');```Example: Stacked Auto-Encoders---------------------```matlabfunction test_example_SAEload mnist_uint8;train_x = double(train_x)/255;test_x = double(test_x)/255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit SDAE and use it to initialize a FFNN% Setup and train a stacked denoising autoencoder (SDAE)rand('state',0)sae = saesetup([784 100]);sae.ae{1}.activation_function = 'sigm';sae.ae{1}.learningRate = 1;sae.ae{1}.inputZeroMaskedFraction = 0.5;opts.numepochs = 1;opts.batchsize = 100;sae = saetrain(sae, train_x, opts);visualize(sae.ae{1}.W{1}(:,2:end)')% Use the SDAE to initialize a FFNNnn = nnsetup([784 100 10]);nn.activation_function = 'sigm';nn.learningRate = 1;nn.W{1} = sae.ae{1}.W{1};% Train the FFNNopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.16, 'Too big error');```Example: Convolutional Neural Nets---------------------```matlabfunction test_example_CNNload mnist_uint8;train_x = double(reshape(train_x',28,28,60000))/255;test_x = double(reshape(test_x',28,28,10000))/255;train_y = double(train_y');test_y = double(test_y');%% ex1 Train a 6c-2s-12c-2s Convolutional neural network %will run 1 epoch in about 200 second and get around 11% error. %With 100 epochs you'll get around 1.2% errorrand('state',0)cnn.layers = { struct('type', 'i') %input layer struct('type', 'c', 'outputmaps', 6, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %sub sampling layer struct('type', 'c', 'outputmaps', 12, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %subsampling layer};cnn = cnnsetup(cnn, train_x, train_y);opts.alpha = 1;opts.batchsize = 50;opts.numepochs = 1;cnn = cnntrain(cnn, train_x, train_y, opts);[er, bad] = cnntest(cnn, test_x, test_y);%plot mean squared errorfigure; plot(cnn.rL);assert(er<0.12, 'Too big error');```Example: Neural Networks---------------------```matlabfunction test_example_NNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);% normalize[train_x, mu, sigma] = zscore(train_x);test_x = normalize(test_x, mu, sigma);%% ex1 vanilla neural netrand('state',0)nn = nnsetup([784 100 10]);opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samples[nn, L] = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.08, 'Too big error');%% ex2 neural net with L2 weight decayrand('state',0)nn = nnsetup([784 100 10]);nn.weightPenaltyL2 = 1e-4; % L2 weight decayopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex3 neural net with dropoutrand('state',0)nn = nnsetup([784 100 10]);nn.dropoutFraction = 0.5; % Dropout fraction opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex4 neural net with sigmoid activation functionrand('state',0)nn = nnsetup([784 100 10]);nn.activation_function = 'sigm'; % Sigmoid activation functionnn.learningRate = 1; % Sigm require a lower learning rateopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex5 plotting functionalityrand('state',0)nn = nnsetup([784 20 10]);opts.numepochs = 5; % Number of full sweeps through datann.output = 'softmax'; % use softmax outputopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex6 neural net with sigmoid activation and plotting of validation and training error% split training data into training and validation datavx = train_x(1:10000,:);tx = train_x(10001:end,:);vy = train_y(1:10000,:);ty = train_y(10001:end,:);rand('state',0)nn = nnsetup([784 20 10]); nn.output = 'softmax'; % use softmax outputopts.numepochs = 5; % Number of full sweeps through dataopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, tx, ty, opts, vx, vy); % nntrain takes validation set as last two arguments (optionally)[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');```[![Bitdeli Badge](https://d2weczhvl823v0.cloudfront.net/rasmusbergpalm/deeplearntoolbox/trend.png)](https://bitdeli.com/free "Bitdeli Badge")

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

Struts2开发程序步骤

Struts2开发程序步骤 1、新建Dynamic web 项目 关于web项目创建后WEB-INF下面没有出现web.xml的解决方法: https://blog.youkuaiyun.com/weixin_43209201/article/details/86607913 2、导入Struts2需要的jar包 如何快速找到Struts2所需要的基本jar包: https://blog.csdn.ne...

lingtouyang的博客 341

IMSL CNL 7.0.0 (x86-64)Crack

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

开发Struts2应用程序-基本步骤

1. 创建一个web项目,项目取名为struts2_first_project 如图: 2. 添加Struts2的类库和依赖库,使项目支持Struts2的特性(装入最小类库) 最小类库图: 3. 配置web.xml文件,让项目可以使用Struts2 <

消逝の纸屑的博客 1169

温度PID控制PLC程序

温度PID稳定控制程序,适用于欧姆龙PLC,对其他PLC也具有很大参考价值

Struts2入门

使用Struts2开发程序的步骤 1.导入jar包 <dependency> <groupId>javaee</groupId> <artifactId>javaee-api</artifactId> <version>5</vers...

weixin_30244681的博客 59

Struts2框架开发流程

Struts2 本身是一个MVC框架 框架是一个结构化的软件,尽量将特定领域的日常任务和具体问题的处理流程抽象化,然后提供一个平台,基于这个平台可以更快地构建web应用程序。 1. 自动化常见任务 2. 提供了架构解决方法 Struts2是一个面向动作的框架,其核心的关键抽象是动作。 Struts2是实现MVC设计模式的第二代web应用程序框架,由Apache组织推出。

Well's Column 1944

JavaWeb应用程序开发:SpringBoot和Struts2

Spring Boot通过使用Spring Profile和ApplicationContext两个组件,实现对应用程序的配置和内嵌功能。(1)Spring Profile:Spring Profile是一个用于配置Spring应用程序的模块,提供了开发、测试和生产环境的不同配置选项。(2)ApplicationContext:ApplicationContext是Spring Boot中的核心组件,用于管理Spring应用程序的实例。

AI天才研究院 5632

Struts程序开发全攻略

Struts程序开发全攻略 1.概述这篇文章主要通过一步一步的操作来讲述在Windows系统中开发Struts程序的过程。本篇文章注重实践,相关概念不会详细讲述。本文并没有提到有关CVS的安装和配置,如果感兴趣,可以参考另外一篇文档:CVS的配置和使用2.相关工具在开发过程中我们主要使用以下工具:l         Apache2.0.46                主

TELE的博客 2939

Struts2----MVC

许久不更新了,今天重新看了Struts2的内容,想着把一些图画下来方便自己以后学习 MVC图解 MVC模块功能 Struts2工作流程 开发Struts2框架程序步骤 ...

惊蛰雨不惊 204

在Eclipse中配置struts2

Struts是一个基于Model2的MVC框架,为应用程序的WEB层提供了良好的结构严谨的实现。很多企业级应用程序都是基于Struts开发的。 工具/原料 struts-2.3.16.1 Eclipse 下载strut2 1 在官网下载最新版的Struts2.从图中可以看出,即可以分开下载,又可以一次全

fengyee_zju的专栏 991

struts2框架 - 跳转及相关内容

Mode12组件化特点明显,Servlet不承担显示任务,Jsp没有任何商业逻辑,彻底分离了Java程序开发者和网页制作者,让java程序员专注于Java程序代码的编写,而HTML设计人员专注于页面的表现。组件间通过接口连接,只要接口保持不变,任意一个组件发生改变,其他组件都不用随之改变,提高程序的可扩展性和可维护性。(2)跳转路径写死在程序里,一旦目的地地址发生改变,会导致程序的代码发生改变--硬编码。1、框架软件开发过程中的半成品,是对现有代码的合理封装,提高开发效率。2、写Action程序。...

XHW0901的博客 609

Struts2 基础入门

什么是Struts2 Struts2 是 Apache 软件组织推出的一个基于 MVC 模式的轻量级 Web 框架,自问世以来,就受到了广大 Web 开发者的欢迎。目前,Struts2 在 Java Web 开发领域中已占据了十分重要的地位。 目前为止,Struts 框架拥有两个主要版本:Struts1.x 和 Struts2.x。Struts1 是最早的基于 MVC 模式的轻量级 Web 框架,它能够合理划分代码结构,并包含验证框架、国际化框架等多种实用工具框架。 随着技术的不断进步,Struts1 的局

李鲤驴的博客 1743

开发Struts程序的两篇文章

Struts1.x系列教程(1):用MyEclipse开发第一个Struts程序: http://www.blogjava.net/nokiaguy/archive/2009/01/13/251101.html Struts2教程1:第一个Struts2程序: http://www.blogjava.net/nokiaguy/archive/2008/04/15/193229.html 转载...

weixin_30556959的博客 54
上一篇: Android-向服务器提交数据(GET-POST-AsyncHttpClient)
下一篇: 文件上传
XHui_Lin
博客等级 码龄10年 27粉丝 62原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值