Eciplse祥解

原创 2005年03月01日 13:51:00

我用过的最好的IDE

        EclipseJava社区最出名的Open Source项目之一,自从下载使用之后便爱不释手。在此我就不多做介绍,大家可从网上查到许多这方面的资料。而本文的目的是介绍我目前所收集的Eclipse 2.1plug in,希望能对那些和我一样使用它的伙计们有一些帮助。

        对于Eclipse我还想说一声:“简直是太棒了!”

我收集的Plug in

        Eclipse 2.1已经内置了对AntJunit的支持,但是对于开发来说,我们还期待更多的……

CheckStyle Plug in

        对于那些需要有或已经有Code Standard的公司来说都明白它的重要性。但是人不是机器,总会在有意无意间写出违反编码标准的代码来。如何使这些错误在编码的时候就显示出来呢?对于java,答案是:“CheckStyle”。

        CheckStyle是一个检查Java代码是否遵循现有编码标准的工具之一。它默认的编码标准是SunJava编程规范,并且能与Ant集成使用。同时它也提供了Eclipseplug in,使得在编码期间违反编码标准的错误暴露于程序员的眼下。

CheckStyle的下载地址:

http://sourceforge.net/projects/checkstyle/

Eclipse CheckStyle plug in的下载地址:

http://sourceforge.net/projects/eclipse-cs/

Tomcat Plug in

        经常使用Tomcat作为项目的Servlet/Jsp容器吗?如果有一个针对JspServlet的图形化调试界面该有多好!试试它吧,TomcatEclipse Plug in。下载地址:http://www.sysdeo.com/eclipse/tomcatPlugin.html

        不过那些期望直接针对.jsp文件进行的同志们请不要高兴太早,目前还没有这样的工具,它的调试原理是:直接针对jsp文件所产生的java文件进行调试。不过这也比jsp文件中到处充斥着打印语句强多了呀。

Strut Plug in

        开发Web应用现在还在使用Model 1?!想试试Model 2么?本着别人有我就用的原则,当然首选Strut。知道它的人我就不啰嗦了,不知道的用Google一搜也是一大把,呵呵。但是这么好的东西怎么和Eclipse集成起来呢?“Plug in”,当然还是Plug in

        对于Strut,我收集了Easy Strut。它能完成:

Easy Struts plugin can be used with J2EE plugin : Sysdeo Tomcat, Resin, Lomboz... (or simply a Java project).

-       Provide Struts config editor for Struts 1.0 and Struts 1.1 files.

-       XSLT generation.

-       Provide a global view of any Java project with Easy Struts support.

-       Full support for Struts 1.1 modules.

-       Tool tip text extracted from Struts DTD.

-       Input helper (chooser dialog and validation).

-       Compatible with IBM WSAD 5 (with some troubles...)

-       XDoclet support in progress.

-       ... and it's FREE

-       Easy Struts developpement is in progress ...there are still bugs in theses versions...

        下载地址:http://easystruts.sourceforge.net/

UML Plug in

        近些年MDA日益受到关注,体验一下如何?RoseTogether,这些都是要花钱的(即使是D版也要吧,呵呵),而且目前还不能和Eclipse集成(Rose可能可以吧)。没关系,热心人多的是。Try thisEclipseUML它提供了画UML中全部9种图的功能,同时在画类图时可以同时产生相应的Java代码。

        它的逆向工程也做得不错,在含有源码的目录下新建UML类图文件时,它会自动的产生各类的类图和之间的关系。

        下载:http://www.eclipseuml.com/

J2ee Plug in

        虽然Tomcat Plug in提供了调试jsp的手段,但是没有提供jsp/servlet的向导,而且不支持J2ee的开发调试。怎么办?嘿嘿,幸亏早有准备:lomboz

        它支持jsp/servlet/ejb的向导,支持jsp/servlet/ejb的调试。总之,好得很。下载:http://www.objectlearn.com/products/download.jsp

结束语

至此,我收集的plug in就全部交待完了,希望同志们收集的其他的好的Eclipseplug in也能知会声。呵呵。


你说的是plugin的安装么?下载后直接解压到eclipseplugin目录就行了。然后重新启动eclipse,在window- >preferences下你可以注意到左边的treeview中会有个checkstyle的项目。选中它你就可以定义自己的code standard了。在每个工程的properties中同样有一个checkstyle项目这个就是与工程相关的checkstyle。需要注意的是:先定义整个的checkstyle(也就是window菜单下的),然后在工程中选择。

 

 

 

 

 

 

 

 

 

 

使用Eclipse开发CMP2.0

--集成JBoss-IDE 1.1.0JUnitEJBMySQL

 

Eclipse作为目前成功的开源IDE之一受众多Java开发人员的喜爱,但是其内部并不直接支持EJB的开发一直为广大开发人员所诟病,并且大大增加了EJB初学者使用Eclipse开发EJB的难度;JBoss作为目前最为成功的EJB容器,由于文档的缺乏,初学者往往抓不住要点,对部署和调试时产生的错误往往束手无策。本文使用JBoss Group提供的Eclipse插件JBoss-IDE 1.1.0进行CMP开发,希望能够带领大家一窥Eclipse下开发EJB的神秘面目。

范例开发使用软件:

1)Eclipse2.1       http://www.eclipse.org

2)JBoss3.07        ( http://sourceforge.net/projects/jboss/

3)JBoss-IDE 1.1.0  ( http://sourceforge.net/projects/jboss/

4)JUnit            ( http://sourceforge.net/projects/junit/

5)JUnitEJB         ( http://sourceforge.net/projects/junitejb/

6)MySQL 3.23.56    ( http://www.mysql.com

7)MySQL JDBC 2.0.14( http://www.mysql.com/downloads/

 

一.配置篇
1.  Eclipse插件的配置
    首先将下载的JBossIDE文件org.jboss.ide.eclipse_1.1.0.bin.dist.zip直接解压缩至Eclipse2.1所在目录下,Eclipse目录结构如下图所示:

如果操作正确,将出现“确认文件夹替换窗口”,点击“全部”即可。等到Eclipse下次启动时,插件将自动加载。

 

2.  JBoss3.07的配置

    这里需要对JBoss进行配置的地方有两处,一处为JBoss的日志信息选项,使得我们今后在部署EJB时能够得到关于部署的详细信息;另一处为JBoss中的数据源,使得我们可以使用容器持久化管理的EntityBean对数据库中的数据进行操作。

    (1)首先我们讲述日志信息选项的更改,进入JBoss所在目录下的server/default/conf目录,找到文件log4j.xml,将其用文本编辑器打开,将属性作如下修改:

修改一:

  <!-- Limit JBoss categories to INFO

  <category name="org.jboss">

    <priority value="INFO"/>

  </category>

  -->

修改为:

  <!-- Limit JBoss categories to INFO -->

  <category name="org.jboss">

    <priority value="INFO"/>

  </category>

 

修改二:

  <!-- ============================== -->

  <!-- Append messages to the console -->

  <!-- ============================== -->

 

  <appender name="CONSOLE" class="org.apache.log4j.ConsoleAppender">

    <param name="Threshold" value="INFO"/>

    <param name="Target" value="System.out"/>

修改为:

  <!-- ============================== -->

  <!-- Append messages to the console -->

  <!-- ============================== -->

 

  <appender name="CONSOLE" class="org.apache.log4j.ConsoleAppender">

    <param name="Threshold" value="DEBUG"/>

    <param name="Target" value="System.out"/>

将这些属性进行修改之后,当我们部署CMP EntityBean的时候将能看见JBoss针对所部署的CMP EntityBean自动产生的SQL插入语句与CMP EntityBean中包含的EJB-QL语句;并且在EntityBean被使用时发生的SQL查询语句。

(2)接着我们讲述数据源的配置,第一步:我们进入JBoss的文件夹下的docs/examples/jca目录,用文本编辑器打开mysql-service.xml,将其中的部分内容作如下修改:

<attribute name="JndiName">MySqlDS(数据源名称)</attribute>

<attribute name="ManagedConnectionFactoryProperties">

<properties>

        <config-property

name="ConnectionURL" type="java.lang.String">jdbc:mysql://localhost:3306/resultmanager

(数据库URL

</config-property>

        <config-property

name="DriverClass" type="java.lang.String">com.mysql.jdbc.Driver

(数据库驱动程序)

</config-property>

<config-property

name="UserName" type="java.lang.String">DataBase(数据库用户)

</config-property>

<config-property

name="Password" type="java.lang.String">

sailing(数据库用户密码)

</config-property>

</properties>

</attribute>

将修改好的内容保存后,复制mysql-service.xml文件至JBoss文件夹下server/default/deploy 目录,此时deploy目录中的文件如下图所示:

第二步,我们将含有MySQL JDBC 2.0.14驱动程序的jar文件复制到JBoss安装目录的server/default/lib目录下,此时lib目录中的文件如下图所示:

现在我们已经完成了前期的配置工作,接下来我们将讲述CMP EntityBean的开发。

 

二:开发篇

1.  程序介绍:程序中含有两个EntityBean,分别为StudentBean和ResultBean。StudentBean中包含学生的基本信息:student_ID(学号,主键),name(名字);ResultBean中包含学生的成绩信息:result_ID(成绩的编号,主键),catalogname(科目名称),score(成绩得分),student_ID_FK(与StudentBean相关联的外键)。实体关系图如下:

数据库建立脚本如下:

#

# Table structure for table 'result'

#

 

CREATE TABLE `result` (

  `result_ID` int(5) unsigned NOT NULL default '0',

  `catalogname` varchar(50) NOT NULL default '0',

  `score` int(5) unsigned NOT NULL default '0',

  `student_ID_FK` int(5) unsigned default '0',

  PRIMARY KEY  (`result_ID`)

) TYPE=MyISAM;

 

#

# Table structure for table 'student'

#

 

CREATE TABLE `student` (

  `student_ID` int(5) unsigned NOT NULL default '0',

  `name` varchar(50) NOT NULL default '0',

  PRIMARY KEY  (`student_ID`)

) TYPE=MyISAM;

 

2.  建立工程:选择FileàNewàProject…,出现对话框,如图所示:

选中Java Project,点击Next按钮,出现对话框:

Project name中填入工程名称ResultManager,下面的对话框为工程文件的存放路径,选择默认即可。填写完毕后点击Next按钮,出现下图:

接着选择右上偏中的Libraries标签,如图:

选择右方的add External JARs…按钮,将JBoss目录中client目录下的所有jar文件选中,加入到当前工程中:

 

点击Finish按钮,结束工程的建立。

建立完成的工程结构如下图(文中涉及工程结构的图均不包含导入工程的JAR文件)

3.  建立StudentBean EntityBean:(1)选择FileàNewàClass,在弹出的对话框中按照下图进行填写:

完成后选择FinishEclipse将为我们自动产生实现接口中方法的默认实现代码。此时的工程文件夹结构如图所示:

2)编写StudentBean EntityBean:由于XDoclet中的ejb和JBoss标签有着良好的自解释性,所以很容易看出其代表的意思(由于本文主要讲述工具的使用方法,所以省去关于CMP原理及XDoclet中包含标签的介绍)。StudentBean代码如下所示:

package edu.njut.resultmanager.ejb;

 

import java.rmi.RemoteException;

 

import javax.ejb.EJBException;

import javax.ejb.EntityBean;

import javax.ejb.EntityContext;

import javax.ejb.RemoveException;

 

 

 

/**

 * @author sailing

 * @ejb.bean

 *         name = "Student"

 *         display-name = "Student EntityBean"

 *         description = "Student CMP EntityBean"

 *         view-type = "both"

 *         jndi-name = "Student"

 *         local-jndi-name = "StudentLocal"

 *         type = "CMP"

 *         cmp-version = "2.x"

 *         primkey-field = "student_ID"

 *        

 * @ejb.persistence

 *         table-name = "student"

 *

 * @jboss.persistence

 *           datasource = "java:/MySqlDS"

 *           datasource-mapping = "mySQL"

 *

 * @ejb.finder

 *         query = "SELECT OBJECT(o) FROM Student o"

 *         result-type-mapping = "Local"

 *         signature = "java.util.Collection findAll()"

 *

 * @ejb.finder

 *         query = "SELECT DISTINCT OBJECT(o) FROM Student o WHERE o.name=?1"

 *         result-type-mapping = "Local"

 *         signature = "java.util.Collection findByName(java.lang.String name)"

 *

 */

public abstract class StudentBean implements EntityBean {

    private javax.ejb.EntityContext _entityContext;

 

    //------CMP Fields------

 

    /**

     * @ejb.persistence

     *         column-name = "student_ID"

     *

     * @ejb.interface-method

     *         view-type = "both"

     * @ejb.pk-field

     */

    public abstract java.lang.Integer getStudent_ID();

 

    /**

     * set student's ID

     * @param id student's ID

     */

    public abstract void setStudent_ID(java.lang.Integer id);

 

    /**

     * @ejb.persistence

     *         column-name = "name"

     *

     * @ejb.interface-method

     *         view-type = "both"

     */

    public abstract java.lang.String getName();

 

    /**

     * set student's name

     * @param name student's name

     */

    public abstract void setName(java.lang.String name);

 

    //------CMR Fields------

 

    /**

     * @ejb.relation

     *         name = "student-result"

     *         role-name = "student-has-result"

     *         target-ejb = "Result"

     *         target-multiple = "no"

     *         target-role-name = "result -belong-student"

     *         target-cascade-delete = "yes"

     *       

     * @jboss.target-relation

     *          related-pk-field = "student_ID"

     *          fk-column = "student_ID_FK"

     *          fk-constraint = "yes"

     */

    public abstract java.util.Collection getResults();

 

    /**

     * @ejb.interface-method

     *         view-type = "both"

     * @param results student's results

     */

    public abstract void setResults(java.util.Collection results);

 

    //------EJB CreateMethod------

 

    /**

     * @ejb.create-method

     */

    public java.lang.Integer ejbCreate(java.lang.Integer studentID,

        java.lang.String name) throws javax.ejb.CreateException {

        setStudent_ID(studentID);

        setName(name);

 

        //EJB 2.0 spec says return null for CMP ejbCreate methods.

        return null;

    }

 

    public void ejbPostCreate(java.lang.Integer studentID, java.lang.String name) {}

 

    //-----------EJB callback method-------------

 

    /* (non-Javadoc)

     * @see javax.ejb.EntityBean#ejbActivate()

     */

    public void ejbActivate() throws EJBException, RemoteException {

    }

 

    /* (non-Javadoc)

     * @see javax.ejb.EntityBean#ejbLoad()

     */

    public void ejbLoad() throws EJBException, RemoteException {

    }

 

    /* (non-Javadoc)

     * @see javax.ejb.EntityBean#ejbPassivate()

     */

    public void ejbPassivate() throws EJBException, RemoteException {

    }

 

    /* (non-Javadoc)

     * @see javax.ejb.EntityBean#ejbRemove()

     */

    public void ejbRemove()

        throws RemoveException, EJBException, RemoteException {

    }

 

    /* (non-Javadoc)

     * @see javax.ejb.EntityBean#ejbStore()

     */

    public void ejbStore() throws EJBException, RemoteException {

    }

 

    /* (non-Javadoc)

     * @see javax.ejb.EntityBean#setEntityContext(javax.ejb.EntityContext)

     */

    public void setEntityContext(EntityContext arg0)

        throws EJBException, RemoteException {

    }

 

    /* (non-Javadoc)

     * @see javax.ejb.EntityBean#unsetEntityContext()

     */

    public void unsetEntityContext() throws EJBException, RemoteException {

    }

}

注意:按照JBoss-IDE说明文档中所描述,在Java编辑器中按下ctrl+space将出现编写XDoclet标签的提示,但在中文版的操作系统中ctrl+space为切换中英文输入法,这里产生了快捷键的冲突。为了解决这个问题,我们必须对Eclipse中的快捷键做出修改。方法为:WindowsàPreferencesàWorkbechàKeysàEditàContent Assist,选中Ctrl+Space[conflict],将Key sequence框中的Ctrl+Space改为Ctrl+Alt+Space,这样你就可以在Java编辑器中通过快捷键Ctrl+Alt+Space快速完成标签的编写了。修改完成后如下图所示:

 

4.  剩余类文件的编写:由于剩余的类文件的编写与StudentBean EntityBean大相径庭,这里便不再列出了,具体的代码可以在随文档的源代码中找到。当所有文件编写完成后,工程的目录结构如下图:

注意,这里在SequenceSessionBean的代码中出现了错误,是由于在SequenceSessionBean中调用了即将由XDoclet自动生成的本地对象(SequenceLocal)和本地主方法(SequenceLocalHome)造成的,当通过XDoclet自动生成了相应Bean文件的各个相关类文件后错误就将消失。

5.  使用XDoclet生成部署描述符以及相关类文件:(1)用鼠标右键单击工程名称,在弹出菜单中选择Properties选项,如图:

在弹出的对话框中选择XDoclet Configurations选项

 

2)在Define the XDoclet Configurations… 下方的空白区域中单击鼠标右键,在弹出的菜单中选择add。

在弹出的对话框中填上EJB(名称可以随意填写)。

3)在选中刚刚添加的“EJB”前提下,用鼠标右键单击左下方的空白区域,在弹出菜单中选择Add Doclet选项

在弹出菜单中选择ejbdoclet,点击OK

ejbdoclet中的属性进行如下修改:

 

4)选中ejbdoclet,点击鼠标右键,在弹出菜单中选择add,接着选择fileset

fileset的属性作如下修改

 

5)以同样的方法添加deploymentdescriptor,将其属性作如下修改

 

6)以同样的方法添加jboss,将其属性作如下修改:

 

6)以同样的方法添加packageSubstitution,将其属性作如下修改:

这里的packages属性为将被替换的包的名称,而substituteWith为替换后的名称。例如,edu.njut.resultmanager.ejb将被替换为edu.njut.resultmanager.interfaces,

也就是说XDcolet根据edu.njut.resultmanager.ejb中的类文件所含有的标签生成的相关类文件将存放在edu.njut.resultmanager.interfaces下。

7)以同样的方法添加homeinterface、remoteinterface、localhomeinterfaces、localinterface,全部添加完成后点击OK按钮推出,全部任务结构如下图所示:

 

8)在工程上单击鼠标右键,在弹出的菜单中选择Run XDoclet即可自动生成部署描述符以及相应文件类文件。

执行后控制台出现如下内容:

此时工程目录结构如下所示:

 

. 测试篇

在测试别写之前我们需要做一些工作,首先将JUnitJUnitEJB从网上下载后,我们用winrar等可以解开zip压缩文件的工具打开junitejb.jar文件,我们发现其中的META-INF文件夹已经包含了EJB部署描述符和JBoss容器部署描述符,这表示我们可以将其直接部署进JBoss

但在部署之前,我们需要将junit.jar中junit包下的所有子包加入进junitejb.jar文件中,具体操作可以用压缩软件直接完成,或者使用jar命名。加入完成后junitejb.jar内部文件结构如下图:

其次将修改完成的junitejb.jar文件拷贝至JBoss目录下的server/default/deploy目录中。

最后我们需要将junit.jar和junitejb.jar文件加入到工程的classpath中,具体操作参考前文,加入完成后工程的Libraries如图所示:

2.       测试文件的编写:点击New按钮àJUnitàTestCase

选择后点击Next按钮,在弹出窗口中作如下填写:

这里需要注意的是TestCMP的父类不是原来默认的junit.framework.TestCase而是net.sourceforge.junitejb.EJBTestCase(此前确保junit.jar和junitejb.jar文件已加入到工程classpath中)。完成后点击Finish按钮文件的建立,关于TestCMP的代码可以在随文档的源代码文件中找到。

 

四.部署篇

1.  设置JBoss服务器调试:点击工具条上的 旁的向下箭头,在弹出菜单中选择Debug…

在弹出的对话框中选择JBoss 3.0.x,然后点击最下方的New按钮

在左边出现的对话框中的JBoss 3.x Home Directory中选择JBoss的安装目录:

完成后点击DEBUG按钮即可对启动JBoss服务器。当服务器运行时我们可以点击控制台中的STOP按钮停止服务器的运行。

注意,在启动数据库服务器前,请确保MySQL服务器已经启动,且含有名为resultmanager的数据库,同时存在与您在前面数据源设置的相同的用户名和密码具有该数据库的操作权限。

2.  Bean文件打包为jar文件:用鼠标右键点击工程中的src文件夹,在弹出菜单中选择Export选项,如图:

在弹出的对话框中选择JAR file,点击Next,在接下来弹出的对话框中的JAR file:中填上欲存放jar文件的路径,完成后点击Finsh

3.  部署:将导出的jar文件拷贝至JBoss目录下的server/default/deploy目录下(确保此时JBoss服务器处于运行状态),此时察看控制台,会有如下信息,说明部署成功。

4.  测试:先选中工程中的TestCMP.java文件,接着选择工具条上的 旁边的向下箭头,在弹出的右侧菜单中选择Run AsàJUnit Test开始运行测试。

测试完成后查看测试结果,如下图所示表示测试成功。

 

. 结束

至此我们利用Eclipse成功的开发了CMP应用,但是其中的步骤繁琐严重影响着开发效率,并且容易产生错误,这样有利有弊。利在与程序员在繁琐的操作中加深对EJB的理解,了解许多快速开发J2EE工具隐藏的东西;弊则是刚刚提到的严重影响开发效率,并且随着工程量的扩大,维护代价也不断上升。文章中源代码下载

 

关于作者:

蔡永航,南京工业大学工商管理三年级学生,Mars Studio( http://online.njut.edu.cn/mars )成员,中华联盟( http://www.robochina.org )成员业余时间酷爱Java编程。联系方式:iamcyhasp@sohu.com

 



 

Eclipse是由IBM及业内领先的软件提供商组成的开放源代码组织eclipse.org提供的软件开发平台,系统以插件的方式构成,所有的功能(包括自身的功能)都以插件出现,并包含全部源代码。它完全可以代替VisualAge for Java,而IBM自己也已经这么干了。

虽然Eclipse号称支持中文,但要等到官方的中文版不知道到什么时候。现在,我们自己来汉化它。

得益于Java对语言的支持,而且Eclipse自身也将所有可翻译的元素保存在属性文件中,因此,我们只要汉化属性文件就可以了。

属性文件大体上分为两类:
1.
知名的属性文件,如每个插件都有plugin.properties,直接放在该插件的目录下。
2.
提示消息,如message.properties,一般都打包和运行库(xxx.jar)中。

根据Java对属性文件的搜索,只要在相应的属性文件路径下放置以_zh结尾的属性文件,在中文平台中此属性文件优先于缺省属性文件加载。例如plugin_zh.properties优先于plugin.properties加载。

下面,我们就要找到一个好的方法来处理这些大量plugin.propertiesmessage.properties了,我们需要一种方式将它们集成到一起,然后集中翻译,再分别复制到各个目录。对付这种多目录多文件的任务,使用ant最拿手了,首先使用ant编写一个提取plugin.properties的任务:
<pre>
 <copy todir="${transdir}" &>
  <fileset dir="${plugdir}" includes="**/plugin.properties"/>
  <mapper type="regexp" from="^org/.eclipse/.(.*)//plugin.properties$$" to="org/.eclipse/./1-plugin.txt"/>
 </copy>
</pre>

因为都是同名文件,故使用转换方法加上目录名前缀。

接着,就是人工的活了,将每个txt文件进行翻译,翻译完成后,因为是中文,还需以unicode方式转码,使用ant内置的任务native2ascii完成此步。
&lt;pre&gt;
 &lt;native2ascii src="${transdir}" dest="${transdir}" includes="*.txt" ext="_zh.properties"/&gt;
&lt;/pre&gt;


最后一步就是发布了,拷贝到相关的目录即可。
&lt;pre&gt;
 &lt;copy todir="${plugdir}" overwrite="yes"&gt;
  &lt;fileset dir="${transdir}" includes="*zh.properties"/&gt;
  &lt;mapper type="regexp" from="^(.*)/-plugin_zh/.properties$$" to="/1//plugin_zh/.properties"/&gt;
 &lt;/copy&gt;
&lt;/pre&gt;


怎么样,你也可以打造自己的中文版eclipse了。

当然,也可以使用eclipse提供的方法,如生成一个片断插件来汉化,或使用nl的标准目录格式来汉化。但我还是觉得这种方法是最java的,对其他java程序也通用。

可以在http://hlstudio.swiki.net/.uploads/demo/trans.rar下载汉化包,解压缩后放到eclipse安装目录下,即让trans目录和plugins目录平级,然后,在dos下进入trans目录,执行ant命令即可。

注意:
1.
本汉化包仅针对eclipse2.0.1
2.
可使用ant uninstall反安装汉化包
3.
免责声明,由于翻译引起歧义而带来的不便,作者不负任何责任。

 

 

        Eclipseopen source的集成开发环境,它得到了IBM的大力支持,而Tomcat我们就更熟悉了,它是apache组织的JSP/Servlet容器,下面将讲述如何集成:

        准备:

1  Tomcat4.0

2  Jdk1.4

3  Eclipse2.0

4  EclipseTomcat插件在http://www.sysdeo.com/eclipse/tomcatPluginV2.zip下载

安装:

1  安装jdk1.4

2  安装Tomcat4.0

3  安装Eclipse2.0,解压缩就可以了

4  tomcatPluginV2.zip解压缩,把其中的com.sysdeo.eclipse.tomcat文件夹拷贝到,Eclipse安装目录下的plugins目录中。

配置:

1  启动Eclipse

2  打开菜单Windows->Preferences

3  在左侧选择Tomcat,可以看到右侧出现一些表单

4  Tomcat Version选择Version 4.0.xTomcat Home选择Tomcat的安装路径,Configuration File中会自动填入Tomcat的配置文件server.xml

5  展开左侧的Tomcat菜单,选择JVM SettingsJRE选择Detected VM

6  按下Apply

7  按下OK

8  看你的工具栏中是不是多了几个小猫的图标,如果没有的话,选择菜单Windows ->Custmize Perspective,展开other选项,在Tomcat上打勾,好了,看到小猫的图标没有。

9  试下Start Tomcat按钮,好了,Tomcatconsole中启动了。

例子:

下面做个Hello World的例子

1  选择File->New->Project

2  在对话框中选择Tomcat Project,然后next

3  输入Project Name,这里可以写HelloWorld,继续next

4  勾上can update server.xml file选项,finish,好了,一个Poject已经创建好了。

5  打开new class 向导,在Name中填入HelloWorld,Superclass中填入javax.servlet.http.HttpServlet,按下finish,好了,一个servlet就创建好了

6  HelloWorld.java中重载doGet方法,代码如下:

import javax.servlet.http.HttpServlet;

import javax.servlet.http.HttpServlet;

import javax.servlet.http.HttpServletRequest;

import javax.servlet.http.HttpServletResponse;

import java.io.IOException;

import java.io.PrintWriter;

import javax.servlet.ServletException;

 

public class HelloWorld extends HttpServlet {

public void doGet(HttpServletRequest request,HttpServletResponse response)

      throws IOException, ServletException {

 

response.setContentType("text/html");

PrintWriter writer = response.getWriter();

 

writer.println("Hello World!");

      }

}

8.Ctrl+S保存,右键HelloWorld project,选择Tomcat Project->update context to server.xml

7.Eclipse中启动Tomcat

9.在用浏览器访问http://localhost:8080/HelloWorld/servlet/HelloWorld

10.怎么样,看到HelloWorld了没有

 

 

 

 

 

作者:

赵超 本人对J2EEDesign Pattern比较感兴趣,平常也关注一些open source的项目,欢迎一起探讨问题email:zchao1024@msn.com

 

 

版权声明:本文为博主原创文章,未经博主允许不得转载。

相关文章推荐

内核启动参数祥解

Linux内核在启动的时候,能接收某些命令行选项或启动时参数。当内核不能识别某些硬件进而不能设置硬件参数或者为了避免内核更改某些参数的值,可以通过这种方式手动将这些参数传递给内核。   如果不使...

log4j配置祥解

log4j配置祥解 (转载:http://www.blogjava.net/kit-soft/archive/2009/08/28/292977.html) 第一步:加入log4j-1.2.8.ja...

Java中log4j配置祥解

Java中log4j配置祥解

log4j配置祥解

第一步:加入log4j-1.2.8.jar到lib下。 第二步:在CLASSPATH下建立log4j.properties。内容如下: 1 log4j.rootCategory=INFO,...

log4j配置祥解

log4j配置祥解 第一步:加入log4j-1.2.8.jar到lib下。 第二步:在CLASSPATH下建立log4j.properties。内容如下: 1 log4j.rootCategor...

log4j配置祥解

log4j配置祥解 第一步:加入log4j-1.2.8.jar到lib下。 第二步:在CLASSPATH下建立log4j.properties。内容如下: 1 log4j.rootC...

log4j配置祥解

第一步:加入log4j-x.x.x.jar到lib下。 第二步:在CLASSPATH下建立log4j.properties。内容如下: 1 log4j.rootCategory=INFO,...
  • GUITK
  • GUITK
  • 2013-03-15 14:48
  • 690

Velocity布局祥解

大多数网站的每个页面布局差别不是太大,除非一些特殊页面例如 门户首页等。如果每个页面独立一个文件,则会导致不同文件出现大量相同的代码,我们也可以把这些相同的代码抽取出来放在一个独立的小文件,需要的时候...

J2ME 拼图游戏 快速开发 全过程 之代码祥解(4 )——图片操作类、图片预览后处理类

图片操作类(转自网上),代码: package cn.edu.xtu.tilepuzzle.model; import javax.microedition.lcdui.Font; im...

Bitblt函数(API)祥解

Bitblt作用将某一内存块的数据传送到另一内存块,前一内存块被称为"源",后一内存块被称为"目标"图象程序开发者使用Blit的函数在内存中将某页面上的一幅位图经过一定的变换转移到另一个页面上 原形...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)