Intellij IDEAJavaweb

从Myeclipse转战IDEA中遇到的配置问题(javaweb

2017-12-19  本文已影响62人  图灵F

写在前面

之前一直用Myeclipse写javaweb程序,但毕竟为了适应时代潮流(误),并且IDEA从很多方面都很人性化,就把之前eclipse的项目放到IDEA里面跑了跑,发现了以前很多在Myeclipse傻瓜式的操作在IDEA中都要配置一下,虽然有点麻烦但确实让我更好了解了javaweb项目的构造,下面主要罗列一些我遇到并解决的一些IDEA中的问题并给出一些我的理解。欢迎dalao补充或指出错误。

IDEA与Myeclipse写javaweb的差别?

在放问题之前,我先简单谈一下idea与myeclipse区别,之前Myeclipse写的时候很无脑,就知道个写完后配个tomcat跑起来就行了,然后就主要关注于程序逻辑和设计了,一到IDEA傻眼了,不仅要配置artifacts还要手动配一下src什么的。所以对于初到IDEA的,建议着重注意一下这个project structure,他是配置过程中重点的东西:


image.png

好了废话不多说,开始谈问题。


红色的j .....?

最简单的例子,直接把myeclipse项目扔到idea,一看全没错,很开心(显然不可能),运行一下index也跑出来了,可是一看javaweb文件其实全都打不开:

image.png

这是因为IDEA中你需要手动配置一下编译路径,把你的src源码设置成Sources文件,然后编译器才会开始编译你的javaweb代码,具体操作如下:

project structure -> Moduels ->点击项目 ->选择src文件夹 -> 点击上方Mark as中的Sources

image.png

值得一提的是,这个路径将会是你web.xml的根路径,比如下方:

image.png

Ok后你会发现报了一大堆的导包错,接下来就该你忙活了,在project structure 的libraries里导入之前Myeclipse在WEB_INF/lib下的外部包即可。(提示:可以直接导入文件夹,里面的jar包就都导入了)


Cannot resolve servlet.....?

在artifacts里要从Module中导出一个explode,然后把它扔到tomcat运行,具体详见网上IDEA配置tomcat教程。但有的时候我们会在web.xml发现如下报错:

Cannot resolve Servlet
Servlet should have a mapping-name

image.png

这种情况多时web.xml配置出错,你需要在project设置里配置一下:

image.png

把它改成你的WEB_INF里的xml即可。

特别注意:.idea文件下面也有个web.xml,如果你觉得你配置好了却还是这种错,请注意你是不是把这个xml当成你Fact的xml了,请换成WEB_INF的xml。


Output directory is not specified ... ?

开始编译javaweb文件了,卧槽,输出路径没确定?IDEA不像Myeclipse会把输出(编译后的.class文件)扔到WEB_INF的classes文件夹,把可运行的web文件扔到tomcat下的WEBAPP文件夹中;IDEA需要在Project structure的project栏位设置一下输出路径:(图略)

一般把输出扔到项目目录下的out文件夹中,可以看出artifacts就是当初myeclipse扔到tomcat/WEBAPP的网页运行文件,而production里面是myeclipse扔到自己WEB_INF的classes里的文件。

image.png

可是有时候我设置完输出路径了啊,怎么还是未确定?这很有可能是你在project structure的artifacts有问题,建议你删除当前的artifact,然后按正确重新导入,正常artifact的图是这样的:

image.png

总结

整个配置问题都是围绕project structure展开的,总之有问题先从这里入手就OK了:p.(莫名其妙花了一个小时),谢谢。

上一篇下一篇

猜你喜欢

热点阅读