HowTO Build the FiRst GWT Application On Tomcat

本文介绍使用GWT(Google Web Toolkit)构建Ajax应用的过程,涵盖环境搭建、代码编写、编译部署及常见错误处理。

 

 

 

初试GWT(Google Web Toolkit),废了老大尽了-, - 今天终于搞定了^_^  傻瓜式流程如下,希望感兴趣的朋友共同讨论

 

一. GWT 简介

 

    基于Java的一款Ajax应用程序开发工具. 简单来说,将我们熟悉的java code编译成javascript. 目的是构建运行在浏览器中的桌面般的应用程序.

 

    我更喜欢用它来做些小的表现层组件.

 

二. 准备工作 -- > Build

 

    1. 需下载的东东: JDK, Apache Tomcat, Ant, GWT(Google Web Toolkit), 很好找,我就不把链接放上了,看着乱...

 

    2. 工具: Eclipse

 

    3. 建立开发环境:http://code.google.com/webtoolkit/gettingstarted.html

       ( 用projectCreator和applicationCreator建目录,用loginStart-compile生成js与html,用loginStart-shell做host test, 前两个文件均在下载的GWT目录下可找到,后两个文件通过前两个生成而得, XX-shell & XX-compile)

 

    4. 一小点废话

       我们的程序一般都要和服务器打交道,简单的Login也不例外。尽管最后生成了一个不起眼的js文件和一些七七八八的东西。GWT为我们提供了客户端向服务器发送远程过程调用(RPC)的完美支持。

 

        通过GWT实现RPC需要5个步骤:

       创建一个远程服务接口-->创建一个对应的异步接口-->构建一个实现远程服务接口的远程servlet(真绕口)-->在应用程序的配置文件中声明该服务-->实例化上述接口一个实例,并通过它生成RPC调用。

 

    5. 开始代码

 

       直接用图+代码的方式

 

      

 

      要把GWT相关的几个jar包放进项目里。LoginService(远程服务接口), LoginServiceAsyn(对应的异步接口), LoginDeskTopImpl(远程servlet)

       NOTE: 对应异步接口名字: 接口+Asyn,格式固定,放在同一目录下

 

        

     DeskTopApp.gwt.xml

      

 

       LoginService

      

 

       LoginServiceAsyn

      

 

       LoginDeskTopImpl

      

 

       LoginDeskTop

       

 

       6. 生成js与html与其他...

 

       用XX-complie文件

      

 

       7 build

       build.xml

      

    

      所需jar包: gwt-servlet.jar

      要将生成的www/com.DeskTopApp/下所有文件考到.war中

     (因为生成了包括js与html等一大坨子的数据,因此此build将文件放在${warDir}/${webTo}下)

 

      NOTE:我们把js文件放在了${warDir}/${webTo}下, 而在LoginDeskTop中,

      target.setServiceEntryPoint(GWT.getModuleBaseURL() + "loginService");

      因此,我们写web.xml时要注意

      <url-pattern>/Component/GWT/DeskTopApp/loginService</url-pattern>

 

      web.xml (此文件需要自己写,当然要在build前完成)

     

      

       将生成的war文件放在Tomcat下,启动Tomcat

 

       键入http://localhost:8080/GWTTest/Component/GWT/DeskTopApp/DeskTopApp.html

 

     或者在根目录下建个index.html, 搞个iframe src这个文件,输入http://localhost:8080/GWTTest/

 

       验证结果吧!

 

三. 常见错误

 

       XMLHTTP Status 404, post失败,可能是没找到servlet 检查web.xml是否正确,com.server.LoginDeskTopImpl是否在WEB-INF class下

 

       XMLHTTP Status 500, post找到了,出现internal错误,有可能需要的jar文件没有找到等,看看WEB-INF下/lib里是否有gwt-servlet.jar或者其他要引入的包

 

       其他...看看log之类的再分析吧...

 

 

源码链接: https://pan.quark.cn/s/1889b1ebf6bc ### Linux环境下Vivado借助VCS进行仿真的操作指南 #### 一、前言 在数字电路系统设计领域中,FPGA(Field Programmable Gate Array,即现场可编程门阵列)的设计与验证占据着核心地位。伴随着设计复杂程度的增加,高效的仿真验证成为了保障设计正确性的关键环节之一。在Linux操作系统环境中运用Vivado来调用VCS执行仿真操作,不仅能够提升仿真的执行速度,同时也便于进行波形监测,从而大幅度增强设计验证的整体效率。本指南将详尽阐述如何在Linux系统平台上完成这一流程的操作。 #### 二、准备工作阶段 1. **软件部署**: - 验证Vivado软件是否已经正确安装。Vivado是由Xilinx公司开发的一款集成开发环境,专门用于FPGA的设计工作。 - 进行VCS软件的安装。VCS是一款性能卓越的仿真工具,广泛应用于Verilog和SystemVerilog语言代码的仿真测试。为了更好地支持混合语言环境下的仿真,建议采用VCS-MX版本。 2. **权限配置**: - Linux系统的权限管理机制较为严格,尤其是针对普通用户的权限限制较为严格。因此,在启动Vivado调用VCS仿真之前,必须确保所有必要的权限都已经正确配置。 3. **环境变量设定**: - 配置个人用户目录下的`.bashrc`文件,以便在终端操作时能够顺利加载所需的环境变量。 #### 三、调整个人用户下的.bashrc文件 1. **编辑.bashrc文件**: - 使用`cd`指令进入到个人用户的主目录,通过`ll -la`指令查看当前目录中的所有文件,...
下载代码方式:https://pan.quark.cn/s/a4b39357ea24 标题中所指的"RS485转USB驱动"是一种硬件接口转换技术,其功能在于将传统的RS485通信协议转换为USB接口形式,从而使得现代计算机或设备能够便捷地与采用RS485协议的设备展开通信。RS485作为一种在工业控制、远程通信及多点系统中得到普遍应用的串行通信标准,具备传输距离长、抗干扰性能优异等显著优势。文中提及的型号(CH340、CH341、FT232RL、PL2303、Y-105)是几种常见的USB至UART(通用异步接收发送器)桥接芯片,它们在USB接口与RS485网络之间充当转换媒介的角色。这些芯片赋予USB通信能力,使得计算机可以通过USB接口与RS485网络中的设备执行数据交换。 1. CH340/CH341:这些由韦东山科技研制的USB转串口芯片,常被用于构建低成本的USB转串口适配器。它们提供从USB到UART的转换功能,支持多种波特率的设定,并且在Windows操作系统环境下通常需要安装相应的驱动程序方可正常运作。 2. FT232RL:FTDI公司推出的一款高性能且低功耗的USB到UART桥接器。FT232RL配备全速USB 1.1接口,支持多种串行接口模式,在数据通信、工业控制等领域能够得到广泛应用。同样地,采用FT232RL的设备在连接至电脑时也需要安装对应的驱动程序。 3. PL2303:硅光电子(Prolific)公司所生产的产品,亦是一种常用的USB到UART桥接芯片。它展现出良好的兼容性以及广泛的驱动程序支持,适用于各类USB至串口的应用场景。 4. Y-105:这可能是一款特定的RS485转USB转换模块,或许集成了上述其中一种或多种转换...
已经博主授权,源码转载自 https://pan.quark.cn/s/a4b39357ea24 ### 基本栈和队列操作实验报告 一、实验目标 1、熟练掌握栈和队列的基本操作在数组与链表两种存储结构上的具体实现。 2、学会运用栈和队列来处理简单的实际应用场景。 二、实验内容 任务:设计一个算法,用以检测一个以`@`作为终止标志的字符序列是否构成回文。所谓“回文”是指正向与反向读取均无差异的字符串,例如`"321123"`或`"ableelba"`。 ### 栈和队列的基本操作及其应用实验报告 #### 实验目标 1. **熟练掌握栈和队列的基本操作**:在数组和链表两种存储结构上完成栈和队列的基本操作的具体实现。 2. **应用栈和队列解决实际问题**:通过具体的编程实践,学习如何利用栈和队列来处理简单的实际问题。 #### 实验内容 本实验的核心是通过编写一个算法来判断一个以`@`为结束标志的字符序列是否为回文。回文是指一个字符串不论正向还是反向读都保持相同的情况,比如`"321123"`或`"ableelba"`。 ### 数据结构及核心算法设计 #### 常量及结构体定义 ```cpp #define STACK_INIT_SIZE 100 #define STACK_INCREMENT 10 #define OK 1 #define ERROR 0 struct SqStack { // 定义栈结构体 char *base; // 底部指针 char *top; // 顶部指针 }; struct Queue { // 定义队列结构体 char *front; // 队首指针 char *rear; // 队尾指针 }; ``` #### 栈的操作实现 - `i...
源码下载地址: https://pan.quark.cn/s/a4b39357ea24 在编程领域,特别是GUI应用程序开发中,Qt框架是一个非常流行的选择。 Qt库提供了一套丰富的控件和功能,使得开发者可以构建美观且功能强大的用户界面。 "Qt动态添加控件demo"这个主题聚焦于如何在运行时根据需求动态地向用户界面添加控件,而不是在设计阶段就预设好所有控件。 这种技术在处理数据量不确定、需要用户自定义布局或者创建可扩展的界面时尤其有用。 让我们理解Qt中的控件。 控件(Widgets)是构成Qt界面的基本元素,如按钮(QPushButton)、文本框(QLineEdit)、标签(QLabel)等。 这些控件可以通过Qt Designer图形化工具预先设计,也可以在C++或Python代码中动态创建。 动态添加控件通常涉及以下步骤: 1. **创建控件对象**:你需要实例化相应的控件类,例如`QPushButton *button = new QPushButton("点击我");`。 2. **设置控件属性**:你可以通过调用控件对象的成员函数来改变其属性,如大小、位置、文本等。 例如,`button->setGeometry(x, y, width, height);`来设定按钮的位置和大小。 3. **将控件添加到布局**:在Qt中,布局(Layouts)管理着控件的排列方式和大小调整。 你可以使用各种布局,如水平布局(QHBoxLayout)、垂直布局(QVBoxLayout)或网格布局(QGridLayout)。 创建布局后,使用`addWidget()`方法将控件添加到布局中。 例如,`QHBoxLayout *layout = new QHBoxLayout(); l...
内容概要:本文围绕“基于粒子群优化算法的非最小相位系统的最小化欠阻尼研究”,结合Matlab代码实现,深入探讨了在带有优化的连续死区控制策略下,如何利用粒子群优化(PSO)算法对具有反向响应、延迟等复杂动态特性的非最小相位系统进行动态性能优化,重点解决系统因固有特性导致的欠阻尼、超调大、响应慢等问题。研究通过建立精确的系统数学模型,设计融合PSO算法的优化控制律,对控制器参数进行全局寻优,从而有效提升系统的稳定性、快速性与鲁棒性,并通过大量仿真实验验证了所提方法在抑制振荡、缩短调节时间方面的优越性能。该技术为存在非线性与不稳定零点的工业控制系统提供了有效的优化设计思路。; 适合人群:具备扎实自动控制理论基础、熟悉系统建模与仿真分析,并掌握Matlab/Simulink编程技能的科研人员、高校研究生及从事先进控制算法开发、系统优化设计的工程技术人员。; 使用场景及目标:①应用于飞行器姿态控制、倒立摆系统、热工过程控制等典型的非最小相位系统的高性能控制器设计;②利用智能优化算法(如PSO)自动整定PID或高级控制器参数,克服传统试凑法的局限性;③为解决工业现场中由死区、间隙等非线性环节引发的系统性能下降问题提供仿真验证平台与技术方案。; 阅读建议:建议读者在深入理解非最小相位系统特性的基础上,结合提供的Matlab代码进行仿真复现,重点分析PSO算法中惯性权重、学习因子等关键参数对寻优过程及最终控制效果的影响,并可进一步尝试将该优化框架迁移至灰狼优化器(GWO)、鲸鱼优化算法(WOA)等其他智能算法,以对比不同元启发式算法的性能差异。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值