首页 > 代码库 > IntelliJ IDEA 13 结合 Tomcat 7

IntelliJ IDEA 13 结合 Tomcat 7

初 接触 IntelliJ IDEA 13,感觉视觉和操作上都不错,但上手没有 netbeans 容易,特别是 Tomcat 的使用上有很大不同。工程的结构也有区别。从网上找到的,IntelliJ IDEA 的 Project 相当于 netbeans 的工作空间 NetBeansProjects 或者 workspace 之类,而 module 相当于 netbeans 中的一个项目。而且生成 jar 包也不同,IntelliJ IDEA 需要特别设置,否则产生的是 class 文件树。


现在一步一步开始组合:

首先我们要从 IntelliJ IDEA 启动 Tomcat ,并能访问网页,这是首要条件:

1、新建一个java工程(Project)testweb,也有的话可以略过此步。要注意选择 Project SDK。

2、 在该工程下新建一个 module ( JspWEB ),在弹出的窗口的左侧中选择 [ Java Enterprise ] 下的 [ JavaEE Web Module ] ,要注意了,如 [  Application server  ] 栏无选项,则选中右边的 [ New... ] -- [ Tomcat Server ],配置 Tomcat 。配置好后,请选择它。

3、 下面配置web项目的发布,按 (F4)或者在项目名称上点右键调出 [ Open Module Settings ],(注意上面的 + 号)下面的选择如图(Artifacts - Web Application: Exploded - From Modules...)。在弹出的对话框中应该有web项目 JspWEB,选中它并确定。最后如图:

4、完成上面的操作别忘了确定关闭设置窗口,下面配置 Tomcat,点界面的右上角的 Tomcat 你设置的名称,选择 Edit Configurations。

在出现的界面中选择第二个选项卡 (Deployment)

点右边的 + 号,选择第一个(Artifact...)

在弹出的窗口中应该有你刚才在 module 设置里面添加的web发布项目,注意右边的(Application context)需要设置一个访问的相对目录(相当于虚拟目录)。

5、 现在你点击IDE的下面的面板(Application Servers),点击左侧的三角按钮启动 Tomcat,如果正常的话,会出现如图样式,并且将弹出JspWEB的访问页面(请在生成的index.jsp中自己添加几个字,以便看到测试结果,默 认是没有任何内容的)

========================================================

以上就是最基本的一个Tomcat发布过程。

========================================================

下面是对web项目的简单测试:

1、修改 JspWEB 中 WEB-INF 中的 web.xml ,增加一个监听器的参数:com.testjsp.TestListener

2、 在 JspWEB 中 src 中新建类 com.testjsp.TestListener,并实现接口 ServletContextListener,发现代码提示有错误,因为没 有导入依赖包。其实这儿还有个项目依赖包的设置问题,但是在建立web项目时,servlet-api 自动导入了,所以现在不需要做额外的设置,只需要将光标放在出错的地方ServletContextListener,按【 Alt + Enter 】组合,代码将自动导入包,如果是弹出个选项,选择 improt class ...

导入包后,代码会提示你还有错误,没有实现相关接口方法,按【 Alt + Enter 】组合,选择(Implement Methods),选择列出的两个方法,确定后,代码自动插入,我们要修改下代码,添加输出语句,以便看到提示。

好了现在通过IDE的下面的面板(Application Servers)重新启动 Tomcat,正确的话会看到结果

================================================================

下面是对web项目依赖其他包的导入设置,包括依赖其他项目生成的包和已存在的包:


1、 在 testweb 工程中新建一个 java module,就选择 Java 下的 java 这类module,命名为 cm-listener。建好 module 后,快捷键 F4 调出 module 设置界面,选择 (Artifacts - Jar - From modules with dependencies...)

2、选择要生成的 jar 包 cm-listener,其他默认,按确定保存。

3、 为测试此项目,在module项 cm-listener 中的src新建一个监听器类:net.test.HelloListener 实现接口 ServletContextListener。而这个时候代码 回自动提示错误信息,【 Alt + Enter 】后不会自动导入相关包,而是出现下图提示(其实选择第一项也能解决问题,不过为了给明白它是怎么添加依赖包的所以这儿不选择),这是因为cm- listener是一个java module,而不是web module,servlet-api .jar没有自动加入到依赖路径中:

4、 选中 Project 中的 cm-listener module,按F4调出module设置界面,选中Project Settings中的modules,在其右边出现的列表中选择cm-listener,选择该module的dependencies,可以看到没有 tomcat库(servlet-api .jar包含在此库),现在手动添加。点右边的 + 号,在弹出菜单中选择第二项 Library...

然后选择 Application Server Libraries 下的 Tomcat,点 Add Selected。

一直确认完毕。回到源代码编辑窗口中,【 Alt + Enter 】后,可以正常导入相关包类了。修改net.test.HelloListener源代码

你可以试试手动生成 cm-listener.jar。菜单上 build - build artifacts,在弹出的窗口中选择cm-listener build

5、为测试,修改web.xml为

这个时候,你去启动Tomcat的话,会提示启动监听器错误,因为监听器类 net.test.HelloListener ,在另一个jar中,而该web项目还没有此包。

6、 web 项目添加依赖包。这儿要注意下,如果你的 web 项目编译时不需要此包,则可以略过此步。步骤和上面第4步差不多,只不过现在是设置 JspWEB module,而且在点 + 后,是选择第3个 Module Dependency... ,选择已经建立的jar项目cm-listener

IDE会有个提示,暂且不管

7、现在将 cm-listener 添加到发布目录,如下图选择,注意在Output Layout中设置 WEB-INF 下新建个目录 lib

然后选择 lib ,右键点出 add copy of 下的 Artifact,

此时,会出现一个选择窗口,列出了该Project中所有建立的jar项目,选择cm-listener

此时结构如下:

重启 Tomcat,你将看到你想要的!

===============================================================

上面是工程内的项目间的引用。

下面简单测试用cm-listener项目引用其他已经存在的包:


1、修改上面 cm-listener 项目中源文件,增加org.apache.commons.logging的日志操作,这个类位于commons-logging-1.1.3.jar中,请从Apache网站上下载:

修改好后,编辑器会提示错误,找不到该包。

2、一个包可能会被多个module使用,所以我们将commons-logging-1.1.3.jar添加到testweb工程的lib库中,打开 module 设置:

定位到commons-logging-1.1.3.jar所在的位置,确定后,会弹出一个窗口,让你选择需要所使用该包的项目,这儿可以选 cancle不指定:

这儿需要注意:添加完成后,请在module设置界面点 OK 保存设置后,再一次F4进入module设置,这样设置的lib库才能在其他地方看到。

3、 重新进入module设置后,选中cm-listener项目设置,选择该module的dependencies,点右边的 + 号,在弹出菜单中选择第二项 Library...(此步类似上面建立cm-listener的第4步),这时可以看到多出了Project Libraries项目,选择commons-logging-1.1.3.jar,添加。

4、 一直 OK 保存设置,回到源文件编辑器,【 Alt + Enter 】后,可以正常导入相关包类了,现在你重新编译构建下。到这儿为止,只是能正常构建cm-listener.jar,但是你启动Tomcat 的话,会发现依然保错。因为cm-listener.jar依赖commons-logging-1.1.3.jar,而JspWEB项目在前面的设置 中,发布时只是部署了cm-listener.jar,而没有部署commons-logging-1.1.3.jar。

5、 进入module设置,选择Artifact中的JspWEB(具体看上面建立cm-listener时的设置),选中在 WEB-INF下lib文件夹(前面建立的),选择add copy of 下的 library files,选择commons-logging-1.1.3.jar。保存设置。


现在重启Tomcat,可以看到正常运行了!

============================================================

上面看着可能有点乱,还是简单的总结下

============================================================

建立 WEB 项目的简单步骤:

1、新建一个工程 Project,注意选择SDK,就是你的JDK。

2、建立一个项目 Module,web项目选择[ Java Enterprise ] 下的 [ JavaEE Web Module ]。

建立Web项目时,注意选择Tomcat服务器,没有就NEW一个(这个简单)。

3、 选择 Project 窗口下建立的 web 项目,按 (F4)或者右键调出 [ Open Module Settings ],依次选择Artifacts - Web Application: Exploded - From Modules...,在此窗口只会出现web项目,这一步是web的发布设置,其实你自己可以更改发布路径的,为了简单化,这儿保存默认。

4、 配置Tomcat,在 Deployment 中点 + 号选择第一个(Artifact...),如果你没有做第3步,Artifact...是不会出现的。添加后别忘了设置 Application context,比如我设置为 ( /hello ),那么这个web项目的访问地址就是 localhost:8080/hello。

5、最后修改web项目中 index.jsp ,随便填几个测试字。

6、通过 IntelliJ IDEA 的 Application Servers(在界面左下方)启动Tomcat,查看效果。

=============================================================

添加对包的引用:

1、在该工程内新建一个项目(module),Java 下的 Java module(注意和web项目的区别)

2、因为希望打包发布,所有调出 Module Settings,选择 Artifacts - Jar - From modules with dependencies...,选择需要打包发布的项目(注意和web项目发布设置的区别)。

3、通过菜单栏的 build - build artifacts 构建 Jar 包。

4、打开 Module Settings 。这儿要注意有两处需要设置。

在 Modules 下列出所有项目,选择需要设置的项目,然后在右边的 dependencies 中通过 + 号添加编译时需要的包。

在 Artifacts 下列出了设置了要发布的项目,比如部署到web项目的lib中jar包就是在此设置,但是你需要自己设置 lib 文件夹。

5、 如果项目编译时需要另一个项目,就在该项目设置 dependencies 时,添加时,选择 Module Dependency,选择相应的项目就可以了;如果是需要另一个存在的包而不是项目,那么选择第一个 (Jars or directory)表示定位到磁盘中的某个Jar,选择第二个(Library)表示从ib库中找。如果选择第二个 Library ,那么需要在 项目设置中的 libraries 里添加 Jar,要注意添加好后需要保存项目设置,再重新进入项目设置,才能看到Project Libraries下的包。

6、 web项目发布时,将需要的jar包发布到lib中,就需要在项目设置的Artifacts下设置,选择发布的web项目,在Output Layout中的 WEB-INF 下新建个目录 lib,选中lib文件夹右键,选择 add copy of - Artifact(本工程内的其他项目包),选择 add copy of - library files(可以加入在第5步设置的Project Libraries中的包)


如有错误,请指正!