特别说明:
如果文中某图片显示不出来,只有空的框,请点击鼠标右键选择“显示图片”即可显示出来,这可以是服务器的原因。
由于这里上传图片太麻烦,所以没有加入所有的图片,详情见http://javawebstudio.51.net/J2005.htm
_____________________________________________
JavaWebStudio 2005下载地址:
用户: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
下面是JavaWebStudio界面预览:
——————————————————————————————————————————
1.1 环境变量设置
环境变量从原来的启动时检测改为启动完成后,在新建项目时检测,所以可在启动完成后从“启动”—“设置环境变量”菜单进行环境变量的设置。
环境变量设置时,将提示是否要保存老的环境变量设置,如果选择保存将把存老的环境变量设置保存在\JavaWebStudio\bin\config目录下的Old_Environment.config文件中。包括如下几项:
<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等决大部分的源程序。
自动打开和跳转到Acion.java文件。
1.10 增强系统的稳定性
JavaWebstudio 2005增强系统的稳定性。
1.11 可对各种网站内容特别是不能进行“另存为”和“查看源文件”操作的网站进行编辑
先在JavaWebstudio 2005地址栏中输入要编辑的网站地址,按回车键打开网站,选择“编辑”主菜单下的“编辑”了菜单,即可对网站内容进行编辑,然后保存就行了。这一功能特别在遇到相查看网页源代码但又不能进行“另存为”和“查看源文件”操作的网站有用。例如相查看“老鼠爱大米”这个Flash的源文件,可采用如下方法查看:
2.1 Struts JSP页的可视化图层设计
从Web编辑工具条中点击插入图层工具,或选择“插入”—“插入图层”菜单,可插入图层一个图层:
可对图层进行可视化编辑:
2.2 可视化样式设计
对控件点击鼠标右键选择“控件属性及样式”:
边框设置:
底纹设置:
2.3 交互式按钮设计
打开Html、JSP等web文件,把编辑光标定位在要插入交互式按钮处,再点击web编辑工具条上的交互式按钮工具,可进入交互式按钮设计界面。
交互式按钮设计界面:
一般可用两层来代表一个按钮,也可以是一层或多层:
按钮的文字可通过拖动边框大小平滑改变字体大小,这点非常方便:
文字层的属性:
背景图片层的属性:
两层重叠放在一起:
用鼠标同时选择两个层,点击鼠标右键选择“插入(返回)到网页中”—“图片方式(Img)”:
自动插入到了web编辑页面中:
2.4 Bean工厂、Bean_DAO工厂
这里的“工厂”并不是指“工厂模式”,而是指可根据数据库表字段或输入字段信息可自动生成Bean文件及DAO文件。
从文件管理器中点击鼠标右键或从“文件向导”菜单中选择“Struts”—“Struts_Bean工厂”:
输入文件名,并点击“选择或新建数据源”,选择数据源:
选择数据源表名:
自动生成Bean文件myBeanName.java,内容如下:
package emptyprj;
import org.apache.struts.action.ActionForm;
public final class myBeanName extends ActionForm
{
private String role;
private String password;
private String username;
//myfiledata;
public String getUsername()
{
return (this.username);
}
public void setUsername(String username)
{
this.username=username;
}
public String getPassword()
{
return (this.password);
}
public void setPassword(String password)
{
this.password=password;
}
public String getRole()
{
return (this.role);
}
public void setRole(String role)
{
this.role=role;
}
}
2.5 Bean变量及Action配置动态监视功能
打开JSP文件时,如果JSP文件中有Struts表单,JavaWebstudio 2005将自动到配置文件中读取表单位的Action配置及ActionForm配置,并在Bean变量提示栏中显示出来。
同时JavaWebstudio 2005将自动读取ActionForm源文件中的Bean变量,并在Bean变量提示栏中显示出所有的Bean变量。
2.6 批量Bean变量添加
在java源程序编辑窗口中点击鼠标右键,从弹出采单中选择“批量添加Bean变量”。
选择“完成”按钮,自动生成Bean变量,自动生成的源代码如下:
package emptyprj;
import javax.servlet.http.HttpServletRequest;
import org.apache.struts.action.ActionError;
import org.apache.struts.action.ActionErrors;
import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionMapping;
public final class lykForm extends ActionForm
{
private String myBean6;
private String myBean5;
private String myBean4;
private String myBean3;
private String myBean2;
private String myBean1;
private String mybeanvariable1;
//myfiledata;
public String getMybeanvariable1()
{
return (this.mybeanvariable1);
}
public void setMybeanvariable1(String mybeanvariable1)
{
this.mybeanvariable1=mybeanvariable1;
}
public void setMyBean1(String newmyBean1)
{
myBean1=newmyBean1;
}
public String getMyBean1()
{
return myBean1;
}
public void setMyBean2(String newmyBean2)
{
myBean2=newmyBean2;
}
public String getMyBean2()
{
return myBean2;
}
public void setMyBean3(String newmyBean3)
{
myBean3=newmyBean3;
}
public String getMyBean3()
{
return myBean3;
}
public void setMyBean4(String newmyBean4)
{
myBean4=newmyBean4;
}
public String getMyBean4()
{
return myBean4;
}
public void setMyBean5(String newmyBean5)
{
myBean5=newmyBean5;
}
public String getMyBean5()
{
return myBean5;
}
public void setMyBean6(String newmyBean6)
{
myBean6=newmyBean6;
}
public String getMyBean6()
{
return myBean6;
}
}
2.7 Hibernate文件向导功能
提供了Hibernate和Hibernate+Struts文件向导,自动完全所有的配置和生成所有的Bean、DAO、Action文件。不用自已写一行代码,只需要输入文件名和数据源,即可完成Hibernate的应用程序设计。
见《如何实现Hibernate_Struts 数据库应用程序》。
2.8 新增了Struts_menus模板、Struts1.2.4模板、JSF模板、Hibernate模板
从下面“新建项目”对话框也可以基本看得出,项目类型的分类更多也类细,每个项目类型下都增加了新的模板。
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>
(3)由于新下载的tomcat没有调试状态下的服务器启动文件startup_jpda.bat,所以得自己建立startup_jpda.bat文件,方法是把startup.bat的内容全部拷贝到startup_jpda.bat文件中,然后修改倒数第二行,原来是:
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
(2)利用J2ME模板建立手机游戏新项目
通过“文件”—“新建项目”菜单建立一个新的项目。
在新建项目对话框中,选择项目类型为“JME应用程序项目”,模板名称选择“实现菜单模板”,项目名称为“JmeMenu”。
生成的新项目目录结构如下:
(3)本项目主要入口和实现代码都包含在FirstMIDlet.java文件中,内容如下:
package my;
import javax.microedition.midlet.*;
import javax.microedition.lcdui.*;
public class FirstMIDlet extends MIDlet
{
private Display display;
public FirstMIDlet()
{
display = Display.getDisplay(this);
}
public void startApp()
{
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);
display.setCurrent(f);
}
public void pauseApp()
{
}
public void destroyApp(boolean unconditional)
{
}
}
(4)项目描述文件MyFirst.jad内容如下:
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
在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.xml文件中,编译时JavaWebStudio将通过ant调用build.xml文件实现编译和运行。build.xml文件内容如下:
<?xml version="1.0" encoding="GB2312"?>
<project name="第一个MIDP程序" default="all" basedir=".">
<!-- 引入位于build.properties之中的常用属性 -->
<property file="build.properties"/>
<target name="prepare" description="准备工作">
<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>
<target name="cleandir" description="清除目录">
<delete dir="${build.dir}"/>
</target>
<target name="compile" description="编译源代码" depends="prepare">
<javac debug="off"
classpath="${midp.api0};${midp.api1};${midp.api2};."
bootclasspath="${midp.api}"
srcdir="${src.dir}"
destdir="${build.dir.classes}"
source="1.3"
/>
</target>
<target name="beforeobfuse" description="混淆前先打包成JAR" depends="compile">
<jar basedir="${build.dir.classes}"
jarfile="${build.dir.bin.jarunobfus}"
/>
</target>
<target name="obfuscate" description="使用混淆器" depends="beforeobfuse">
<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>
<target name="afterobfuse" description="混淆后再打包成JAR" depends="obfuscate">
<unzip src="${build.dir.bin.jarobfused}"
dest="${build.dir.obfused}"
/>
<delete dir="${build.dir.obfused}/META-INF"/>
</target>
<target name="preverify" description="预先审核" depends="afterobfuse">
<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>
<target name="package" description="包装成JAR与JAD" depends="preverify">
<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>
<target name="runpreverify" description="使用模拟器执行">
<exec executable="../../bin/setJarSize.exe">
<arg line="${build.dir.bin.jar} ${build.dir.bin}/${jad}"/>
</exec>
</target>
<target name="run" description="使用模拟器执行">
<exec executable="${midp.home}/bin/emulator">
<arg line="-Xdescriptor:${build.dir.bin}/${jad}"/>
</exec>
</target>
<target name="all" description="完成所有步骤" depends="cleandir,package,runpreverify,run" />
</project>
另外,build.xml文件中还加载了属性配置文件build.properties,该文件用来设定一些常用属性,内容如下:
#此文件用来设定一些常用属性
#项目名称
name=MyFirst
#JAD与JAR的文件名
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}
#J2ME Wireless Toolkit所在路径
midp.home=../../WTK/
#MIDP程序库所在路径
midp.api=${midp.home}/lib/midpapi20.jar
midp.api1=${midp.home}/lib/rt1.42.jar
#空白MIDP程序库所在路径
midp.emptyapi=${midp.home}/wtklib/emptyapi.zip
#混淆器与控制文件
obfuscator.lib=retroguard.jar
obfuscator.script=script.rgs
(7)运行结果
用鼠标点击模拟器上SELECT按钮,选择运行当前项目FirstMIDlet,出现下面的FirstMIDlet主界面:
再点击模拟器右键,如上图红色文字提示位置。模拟器运行结果如下:
2.11 调试功能
提供了功能强大的断点设置、单步执行、单过程执行、断点执行等调试功能。可动态获取变量的值。
见《如何实现Hibernate_Struts 数据库应用程序》。
2.12 JavaWebStudio开源项目:Struts_db
这也许是目前网上能见到的最简单的开源项目了。
(1)Struts提供的datasource接口需要用ActionServlet中定义的方法从Action类访问数据源,不能从其它类中用它。
(2)由于新版本的Struts 不再提供GenericDataSource和GenericConnection接口。
(3)Struts直接操作数据库时,存在中文乱码问题。
(4)Struts未提供数据的分页、数据库操作等功能。
Struts_DB 0.1版本源程序
包括如下内容:
(1)数据库连接池;
(2)Struts PlugIn插件;
(3)Struts 数据连接池服务器文件;
(4)Struts数据库中文显示过滤器文件。
在JavaWebStudio 2005的模板目录下有Struts_DB开源项目的源程序、编译后的库及应用模板,也可到网上下载最新版本,源程序放在网络硬盘上,地址:http://vv.vdisk.cn/login.php
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 >
struts_db中还包含了中文显示乱码处理的过滤器,过滤器的加载方法,在web.xml加入下列代码即可:
<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-mapping>
<filter-name>Set Character Encoding</filter-name>
<servlet-name>action</servlet-name>
</filter-mapping>