特别说明: 下面是JavaWebStudio界面预览: 环境变量设置时,将提示是否要保存老的环境变量设置,如果选择保存将把存老的环境变量设置保存在\JavaWebStudio\bin\config目录下的Old_Environment.config文件中。包括如下几项: 自动打开和跳转到Acion.java文件。 1.11 可对各种网站内容特别是不能进行“另存为”和“查看源文件”操作的网站进行编辑 2.1 Struts JSP页的可视化图层设计 从Web编辑工具条中点击插入图层工具,或选择“插入”—“插入图层”菜单,可插入图层一个图层: 2.2 可视化样式设计 底纹设置: 2.3 交互式按钮设计 交互式按钮设计界面: 一般可用两层来代表一个按钮,也可以是一层或多层: 背景图片层的属性: 自动插入到了web编辑页面中: import org.apache.struts.action.ActionForm; public final class myBeanName extends ActionForm private String password; private String username; //myfiledata; public String getUsername() public void setUsername(String username) public void setPassword(String password) public void setRole(String role) } 2.5 Bean变量及Action配置动态监视功能 打开JSP文件时,如果JSP文件中有Struts表单,JavaWebstudio 2005将自动到配置文件中读取表单位的Action配置及ActionForm配置,并在Bean变量提示栏中显示出来。 在java源程序编辑窗口中点击鼠标右键,从弹出采单中选择“批量添加Bean变量”。 package emptyprj; import javax.servlet.http.HttpServletRequest; public final class lykForm extends ActionForm private String myBean5; private String myBean4; private String myBean3; private String myBean2; private String myBean1; private String mybeanvariable1; //myfiledata; public String getMybeanvariable1() public void setMybeanvariable1(String mybeanvariable1) public void setMyBean1(String newmyBean1) public void setMyBean2(String newmyBean2) public void setMyBean3(String newmyBean3) public void setMyBean4(String newmyBean4) public void setMyBean5(String newmyBean5) public void setMyBean6(String newmyBean6) 2.7 Hibernate文件向导功能 2.8 新增了Struts_menus模板、Struts1.2.4模板、JSF模板、Hibernate模板 (3)由于新下载的tomcat没有调试状态下的服务器启动文件startup_jpda.bat,所以得自己建立startup_jpda.bat文件,方法是把startup.bat的内容全部拷贝到startup_jpda.bat文件中,然后修改倒数第二行,原来是: (2)利用J2ME模板建立手机游戏新项目 在新建项目对话框中,选择项目类型为“JME应用程序项目”,模板名称选择“实现菜单模板”,项目名称为“JmeMenu”。 public class FirstMIDlet extends MIDlet public FirstMIDlet() public void startApp() display.setCurrent(f); public void pauseApp() public void destroyApp(boolean unconditional) (4)项目描述文件MyFirst.jad内容如下: 在MyFirst.jad文件中,有一项需特别注意,即MIDlet-Jar-Size一项,它描述项目生成的JAR包装文件的大小,这一项在修改程序后再编译是要改变的。在JavaWebStudio中,编译时ant会调用\JavaWebStudio\bin目录下的setJarSize.exe文件提取项目JAR文件的大小,自动填写这一项。 (5)在本项目中,混淆器采用的是 retroguard,类文件包含在retroguard.jar库中。另外,JavaWebStudio 还提供了retroguard混淆器的源程序,就在\JavaWebStudio\bin\模板\JME 应用程序项目\目录下,叫做“retroguard模板”。 (6)编译、运行 <!-- 引入位于build.properties之中的常用属性 --> <target name="prepare" description="准备工作"> <target name="cleandir" description="清除目录"> <target name="compile" description="编译源代码" depends="prepare"> <target name="beforeobfuse" description="混淆前先打包成JAR" depends="compile"> <target name="obfuscate" description="使用混淆器" depends="beforeobfuse"> <target name="afterobfuse" description="混淆后再打包成JAR" depends="obfuscate"> <target name="preverify" description="预先审核" depends="afterobfuse"> <target name="package" description="包装成JAR与JAD" depends="preverify"> <target name="runpreverify" description="使用模拟器执行"> <target name="run" description="使用模拟器执行"> <target name="all" description="完成所有步骤" depends="cleandir,package,runpreverify,run" /> </project> #JAD与JAR的文件名 #源文件所在路径 #编译后类文件的放置位置 #J2ME Wireless Toolkit所在路径 #空白MIDP程序库所在路径 用鼠标点击模拟器上SELECT按钮,选择运行当前项目FirstMIDlet,出现下面的FirstMIDlet主界面: 再点击模拟器右键,如上图红色文字提示位置。模拟器运行结果如下: Struts_DB 0.1版本源程序 在JavaWebStudio 2005的模板目录下有Struts_DB开源项目的源程序、编译后的库及应用模板,也可到网上下载最新版本,源程序放在网络硬盘上,地址:http://vv.vdisk.cn/login.php struts_db中还包含了中文显示乱码处理的过滤器,过滤器的加载方法,在web.xml加入下列代码即可: <filter-mapping>
如果文中某图片显示不出来,只有空的框,请点击鼠标右键选择“显示图片”即可显示出来,这可以是服务器的原因。
由于这里上传图片太麻烦,所以没有加入所有的图片,详情见http://javawebstudio.51.net/J2005.htm
_____________________________________________
JavaWebStudio 2005下载地址:
ftp://61.155.65.187/upload/
用户:lhbup
密码:lhbup
JavaWebStudio 2005是目前最方便快捷的可视化Struts、JSP、Hibernate开发平台,是功能强大的Java Web集成开发环境(IDE),JavaWebStudio 2005新增功能如下:
1、 改进功能:
1.1 环境变量设置
1.2 中文编辑双字节处理
1.3 键盘快捷键处理
1.4 文件管理器
1.5 类管理器
1.6 工具栏中Html控件(标签)拖动功能
1.7 启动画面的随机图像显示和主画面的可定制显示
1.8 java文件编辑自动提示的快速搜索
1.9 可快速跳转到任何已知类源文件
1.10 增强系统的稳定性
1.11 可对各种网站内容特别是不能进行“另存为”和“查看源文件”操作的网站进行编辑
2、 新增功能:
2.1 Struts JSP页的可视化图层设计
2.2 可视化样式设计
2.3 交互式按钮设计
2.4 Bean工厂、Bean_DAO工厂
2.5 Bean变量及Action配置动态监视功能
2.6 批量Bean变量添加
2.7 Hibernate文件向导功能
2.8 新增了Struts_menus模板、Struts1.2.4模板、JSF模板、Hibernate模板
2.9 JDK采用了J2SE 5.0(即1.5)版本,服务器采用了jakarta-tomcat-5.5
2.10 支持J2ME开发,在采用WTK2.2版本,提供15个J2ME模板
2.11 调试功能
2.12 JavaWebStudio开源项目:Struts_db
——————————————————————————————————————————
1.1 环境变量设置
环境变量从原来的启动时检测改为启动完成后,在新建项目时检测,所以可在启动完成后从“启动”—“设置环境变量”菜单进行环境变量的设置。
<classpath></classpath>
<JAVA_HOME></JAVA_HOME>
<ANT_HOME></ANT_HOME>
<path></path>
方便过后手工恢复老的环境变量设置。
设置JavaWebstudio2005时,如果原版本的安装目录是JavaWebStudio,将自动删除原来的设置,更为新。
JavaWebstudio 2005环境变量的设置path一项采用了独立的JavaWebStudioPath项,在path仅仅添加“%JavaWebStudioPath%”一项;classpath一项仅添加dt.jar;htmlconverter.jar;jconsole.jar; tools.jar四个库文件即可。这样完全解决了原版本中环境变量的设置的各种问题。
1.2 中文编辑双字节处理
原版本中文编辑时,无法自动识别中文,不能进行双字节处理。JavaWebstudio 2005完成解决了这个问题,可自动识别中文,自动进行双字节处理。
1.3 键盘快捷键处理
原版本部分编辑框无法使用键盘快捷键进行自制、删除等处理,JavaWebstudio 2005已解决了这一问题。
1.4 文件管理器
原版本文件管理器无法进行自动刷新及键盘快捷键进行自制、删除等处理,JavaWebstudio 2005已解决了这一问题。
1.5 类管理器
类管理器的解析原版本只到类一级,JavaWebstudio 2005可解析函数一级,对函数双击鼠标左键可自动跳转到原文件的对应函数位置。
1.6 工具栏中Html控件(标签)拖动功能
原版本的工具栏中,Html控件(标签)只能实现插入功能,JavaWebstudio 2005改为拖动功能,操作更方便。
1.7 启动画面的随机图像显示和主画面的可定制显示
启动画面的随机图像显示,并可由用户设置图像所在的目录,JavaWebstudio 2005将到指定的目录中随机读取一个图像文件进行显示。目录配置在JavaWebStudio.config配置文件中的<StarImageDir>\res</StarImageDir>项中,用户可改成功其它的目录。主画面的可定制显示,配置在JavaWebStudio.config配置文件中的<StartFile>\help\help\html\index.htm</StartFile>项中,如果这一项设置为空,即为<StartFile>\help\help\html\index.htm</StartFile>,就不显示主画面启动主画面,启动速度可加快一些。
1.8 java文件编辑自动提示的快速搜索
原版本java文件编辑自动提示的搜索采用即时搜索方法,速度慢。JavaWebstudio 2005采用了预先搜索方法,大大提高加快了搜索速度,提高了java文件编辑自动提示的显示速度。
1.9 可快速跳转到任何已知类源文件
在)java文件编辑中,对编辑区的的某个类名点击鼠标右键,选择“跳转到原文件”,即可打开相应的类原文件。
例如对Action点击鼠标右键并选择“跳转到原文件”,即自动打开Struts的Action.java源程序。JavaWebstudio 2005带有JDK、Struts、Hibernate等决大部分的源程序。
1.10 增强系统的稳定性
JavaWebstudio 2005增强系统的稳定性。
先在JavaWebstudio 2005地址栏中输入要编辑的网站地址,按回车键打开网站,选择“编辑”主菜单下的“编辑”了菜单,即可对网站内容进行编辑,然后保存就行了。这一功能特别在遇到相查看网页源代码但又不能进行“另存为”和“查看源文件”操作的网站有用。例如相查看“老鼠爱大米”这个Flash的源文件,可采用如下方法查看:
可对图层进行可视化编辑:
对控件点击鼠标右键选择“控件属性及样式”:
边框设置:
打开Html、JSP等web文件,把编辑光标定位在要插入交互式按钮处,再点击web编辑工具条上的交互式按钮工具,可进入交互式按钮设计界面。
按钮的文字可通过拖动边框大小平滑改变字体大小,这点非常方便:
文字层的属性:
两层重叠放在一起:
用鼠标同时选择两个层,点击鼠标右键选择“插入(返回)到网页中”—“图片方式(Img)”:
2.4 Bean工厂、Bean_DAO工厂
这里的“工厂”并不是指“工厂模式”,而是指可根据数据库表字段或输入字段信息可自动生成Bean文件及DAO文件。
从文件管理器中点击鼠标右键或从“文件向导”菜单中选择“Struts”—“Struts_Bean工厂”:
输入文件名,并点击“选择或新建数据源”,选择数据源:
选择数据源表名:
自动生成Bean文件myBeanName.java,内容如下:
package emptyprj;
{
private String role;
{
return (this.username);
}
{
this.username=username;
}
public String getPassword()
{
return (this.password);
}
{
this.password=password;
}
public String getRole()
{
return (this.role);
}
{
this.role=role;
}
同时JavaWebstudio 2005将自动读取ActionForm源文件中的Bean变量,并在Bean变量提示栏中显示出所有的Bean变量。
2.6 批量Bean变量添加
选择“完成”按钮,自动生成Bean变量,自动生成的源代码如下:
import org.apache.struts.action.ActionError;
import org.apache.struts.action.ActionErrors;
import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionMapping;
{
private String myBean6;
{
return (this.mybeanvariable1);
}
{
this.mybeanvariable1=mybeanvariable1;
}
{
myBean1=newmyBean1;
}
public String getMyBean1()
{
return myBean1;
}
{
myBean2=newmyBean2;
}
public String getMyBean2()
{
return myBean2;
}
{
myBean3=newmyBean3;
}
public String getMyBean3()
{
return myBean3;
}
{
myBean4=newmyBean4;
}
public String getMyBean4()
{
return myBean4;
}
{
myBean5=newmyBean5;
}
public String getMyBean5()
{
return myBean5;
}
{
myBean6=newmyBean6;
}
public String getMyBean6()
{
return myBean6;
}
}
提供了Hibernate和Hibernate+Struts文件向导,自动完全所有的配置和生成所有的Bean、DAO、Action文件。不用自已写一行代码,只需要输入文件名和数据源,即可完成Hibernate的应用程序设计。
见《如何实现Hibernate_Struts 数据库应用程序》。
从下面“新建项目”对话框也可以基本看得出,项目类型的分类更多也类细,每个项目类型下都增加了新的模板。
2.9 JDK采用了J2SE 5.0(即1.5)版本,服务器采用了jakarta-tomcat-5.5
JavaWebstudio 2005 采用的是JDK版本是J2SE 5.0(JDK 1.5.0),方便用户使用J2SE 5.0提供了大量新功能。同时,服务器采用了jakarta-tomcat-5.5.5。用户也可以自己到tomcat 官方网站http://jakarta.apache.org/site/binindex.cgi下载最新版本的tomcat服务器。然后通过下面的步骤进行配置即可,这里以tomcat-5.5.4主为例:
(1)把下载的tomcat压缩文件jakarta-tomcat-5.5.4.zip解压到JavaWebStudio的根目录下,例如:F:\JavaWebStudio\目录。tomcat压缩解压后的目录名是jakarta-tomcat-5.5.4。
(2)把开\JavaWebStudio\bin\config\目录下JavaWebStudio主配置文件JavaWebStudio.config:
其中<jspserver_home>一项是设置服务器的相对目录,相对JavaWebStudio的根目录;<jspserver_workdir>是服务器工作目录,相对于服务器的根目录;<jspserver_starfile>服务器启动文件,是相对于服务器的根目录;<jspserver_stopfile >服务器停止文件,相对于服务器的根目录;<jspserver_starfile_debug >调试状态下的服务器启动文件,相对于服务器的根目录。
<jspserver_home>\jakarta-tomcat-5.5.4</jspserver_home>
<jspserver_workdir>\webapps</jspserver_workdir>
<jspserver_starfile>\bin\startup.bat</jspserver_starfile>
<jspserver_stopfile>\bin\shutdown.bat</jspserver_stopfile>
<jspserver_starfile_debug>\bin\startup_jpda.bat</jspserver_starfile_debug>
<debug_command>JDB -attach jdbconn</debug_command>
<JavaWebStudio_newprjdir>\JavaWebStudioWorkDir</JavaWebStudio_newprjdir>
<jspstudio_newprjdir>\JavaWebStudioWorkDir</jspstudio_newprjdir>
//1--Microsoft Visual Studio 97
//2--Microsoft Visual Studio.NET
//3--Microsoft Office 2003
<AppInerfaceType>3</AppInerfaceType>
<StarImageDir>\res</StarImageDir>
<InterDrawDir>\res\InterDraw</InterDrawDir>
<StartFile>\help\help\html\index.htm</StartFile>
call "%EXECUTABLE%" start %CMD_LINE_ARGS%
把它改成:
call "%EXECUTABLE%" jpda start %CMD_LINE_ARGS%
保存即可。
2.10 支持J2ME开发,在采用WTK2.2版本,提供15个J2ME模板
通过JavaWebstudio 2005提供的J2ME模板开发手机游戏的步骤如下:
(1)启动JavaWebstudio
通过“文件”—“新建项目”菜单建立一个新的项目。
生成的新项目目录结构如下:
(3)本项目主要入口和实现代码都包含在FirstMIDlet.java文件中,内容如下:
package my;
import javax.microedition.midlet.*;
import javax.microedition.lcdui.*;
{
private Display display;
{
display = Display.getDisplay(this);
}
{
Form f = new Form("测试") ;
Command c1=new Command("Back_1",Command.BACK,2);
Command c2=new Command("Back_2",Command.BACK,1);
Command c3=new Command("Back_3",Command.BACK,3);
f.addCommand(c1);
f.addCommand(c2);
f.addCommand(c3);
}
{
}
{
}
}
MIDlet-Name: HelloWorld
MIDlet-Version: 1.0.0
MIDlet-Vendor: Sun Microsystems, Inc.
MIDlet-Description: Sample Hello World MIDlet
MIDlet-Info-URL: http://java.sun.com/j2me/
MIDlet-Jar-URL:the Jar file URL
MIDlet-Jar-Size:the JAR file Size
MicroEdition-Profile: MIDP-1.0
MicroEdition-Configuration: CLDC-1.0
MIDlet-1: MyFirstMIDlt,, my.FirstMIDlet
编译和运行的配置都在build.xml文件中,编译时JavaWebStudio将通过ant调用build.xml文件实现编译和运行。build.xml文件内容如下:
<?xml version="1.0" encoding="GB2312"?>
<project name="第一个MIDP程序" default="all" basedir=".">
<property file="build.properties"/>
<mkdir dir="${build.dir}"/>
<mkdir dir="${build.dir.classes}"/>
<mkdir dir="${build.dir.obfused}"/>
<mkdir dir="${build.dir.preverified}"/>
<mkdir dir="${build.dir.bin}"/>
</target>
<delete dir="${build.dir}"/>
</target>
<javac debug="off"
classpath="${midp.api0};${midp.api1};${midp.api2};."
bootclasspath="${midp.api}"
srcdir="${src.dir}"
destdir="${build.dir.classes}"
source="1.3"
/>
</target>
<jar basedir="${build.dir.classes}"
jarfile="${build.dir.bin.jarunobfus}"
/>
</target>
<java fork="yes" classname="RetroGuard" classpath="${obfuscator.lib};${midp.emptyapi}">
<arg line="${build.dir.bin.jarunobfus}"/>
<arg line="${build.dir.bin.jarobfused}"/>
<arg line="${obfuscator.script}"/>
</java>
</target>
<unzip src="${build.dir.bin.jarobfused}"
dest="${build.dir.obfused}"
/>
<delete dir="${build.dir.obfused}/META-INF"/>
</target>
<exec executable="${midp.home}/bin/preverify">
<arg line="-classpath ${midp.api};${midp.api1}"/>
<arg line="-d ${build.dir.preverified}"/>
<arg line="${build.dir.obfused}"/>
</exec>
</target>
<jar basedir="${build.dir.preverified}"
jarfile="${build.dir.bin.jar}"
manifest="MANIFEST.MF">
<fileset dir="${res.dir}"/>
</jar>
<copy file="${jad}" tofile="${build.dir.bin}/${jad}"/>
</target>
<exec executable="../../bin/setJarSize.exe">
<arg line="${build.dir.bin.jar} ${build.dir.bin}/${jad}"/>
</exec>
</target>
<exec executable="${midp.home}/bin/emulator">
<arg line="-Xdescriptor:${build.dir.bin}/${jad}"/>
</exec>
</target>
另外,build.xml文件中还加载了属性配置文件build.properties,该文件用来设定一些常用属性,内容如下:
#此文件用来设定一些常用属性
#项目名称
name=MyFirst
jar=${name}.jar
jad=${name}.jad
src.dir=src
#资源文件所在路径
res.dir=res
#建构产物放置位置
build.dir=build
build.dir.classes=${build.dir}/classes
#未经过混淆的JAR文件名
build.dir.bin.jarunobfus=${build.dir.bin}/${name}-unobfus.jar
#经过混淆的JAR文件名
build.dir.bin.jarobfused=${build.dir.bin}/${name}-obfused.jar
#混淆后类的放置目录
build.dir.obfused=${build.dir}/obfused
#经过预先审核之后的类文件放置位置
build.dir.preverified=${build.dir}/preverified
#JAD与JAR的放置位置
build.dir.bin=${build.dir}/bin
#最终的JAR文件名
build.dir.bin.jar=${build.dir.bin}/${jar}
midp.home=../../WTK/
#MIDP程序库所在路径
midp.api=${midp.home}/lib/midpapi20.jar
midp.api1=${midp.home}/lib/rt1.42.jar
midp.emptyapi=${midp.home}/wtklib/emptyapi.zip
#混淆器与控制文件
obfuscator.lib=retroguard.jar
obfuscator.script=script.rgs
(7)运行结果
2.11 调试功能
提供了功能强大的断点设置、单步执行、单过程执行、断点执行等调试功能。可动态获取变量的值。
见《如何实现Hibernate_Struts 数据库应用程序》。
2.12 JavaWebStudio开源项目:Struts_db
这也许是目前网上能见到的最简单的开源项目了。
(1)Struts提供的datasource接口需要用ActionServlet中定义的方法从Action类访问数据源,不能从其它类中用它。
(2)由于新版本的Struts 不再提供GenericDataSource和GenericConnection接口。
(3)Struts直接操作数据库时,存在中文乱码问题。
(4)Struts未提供数据的分页、数据库操作等功能。
包括如下内容:
(1)数据库连接池;
(2)Struts PlugIn插件;
(3)Struts 数据连接池服务器文件;
(4)Struts数据库中文显示过滤器文件。
ID:javaweb
源程序文件名:struts_db_src.rar
编译后生成库文件:struts_db.jar
使用方法1,在web.xml中以servlet加载:
<servlet>
<servlet-name>dbInit</servlet-name>
<servlet-class>javawebstudio.struts_db.DBInitServlet</servlet-class>
<init-param>
<param-name>driverClass</param-name>
<param-value>com.microsoft.jdbc.sqlserver.SQLServerDriver</param-value>
</init-param>
<init-param>
<param-name>jdbcURL</param-name>
<param-value>jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=EDB</param-value>
</init-param>
<init-param>
<param-name>minCount</param-name>
<param-value>1</param-value>
</init-param>
<init-param>
<param-name>maxCount</param-name>
<param-value>10</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
<init-param>
<param-name>user</param-name>
<param-value>sa</param-value>
</init-param>
<init-param>
<param-name>password</param-name>
<param-value>sa</param-value>
</init-param>
</servlet>
使用方法2,在struts-config.xml中以PlugIn加载:
<plug-in className="javawebstudio.struts_db.DatabasePlugIn" >
<set-property property="driverClass" value="com.microsoft.jdbc.sqlserver.SQLServerDriver"/>
<set-property property="jdbcURL" value="jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=EDB"/>
<set-property property="minCount" value="1"/>
<set-property property="maxCount" value="10"/>
<set-property property="user" value="sa"/>
<set-property property="password" value="sa"/>
</plug-in >
<filter>
<filter-name>Set Character Encoding</filter-name>
<filter-class>javawebstudio.struts_db.SetCharacterEncodingFilter</filter-class>
<init-param>
<param-name>encoding</param-name>
<param-value>GB2312</param-value>
</init-param>
<init-param>
<param-name>ignore</param-name>
<param-value>true</param-value>
</init-param>
</filter>
<filter-name>Set Character Encoding</filter-name>
<servlet-name>action</servlet-name>
</filter-mapping>