创建Java Web项目
说实在的,IntelliJ的项目创建方式不如其它IDE的直观,反正我一开始是没搞懂(其实搞懂也很简单),另外IntelliJ的不同版本之间是有差异的,网上找的一些资料并不准确,最好还是直接看官方文档,根据它的Tutorial走走,这次我看的官方文档是针对IntelliJ v12的,而现在我用的是v13,所幸的是差别并不大。
New Project,然后这样选:
那个Versions只能选3.1,貌似之前还能选3.0,这个版本其实是Servlet的版本,最新的版本是3.1,需要用Tomcat8来承载,如果你选择用Tomcat7来承载的话,会有一个warning说不认识这个版本,使用默认版本云云,忽略这个warning就是。
在下一步中指定项目名,SDK果断选择最新的1.8(Java8):
这样一来你的服务器的运行环境得部署为Java8,不过这个也没啥压力,Java8多了不少很有用的新特性,如果没有什么历史负担的话干嘛不用?
Finish,我们现在来看看整个project的结构:
.idea这是IntelliJ的相关东西,我们不用管,src目录用于放java源文件,web目录用于放web资源,WEB-INF是java web应用固定的存放配置及类库的目录,index.jsp是我们首页,HelloWorld.iml是IntelliJ的项目文件,打开工程就是打开它了,External Library是一些外部引用的库,展开看看好多。
现在我们来创建一个Servlet,Servlet是Java的服务器端小程序(其实也可以不小),右击src目录:
然后命名为SayHello:
展开,打开SayHello.java的时候却发现IntelliJ提示找不到符号:
这一定是因为某些包没引用。如何引用?一般都是设置CLASSPATH,告诉java如何去找它的包,而这里我们可以直接指定包的位置。
打开Project Struture设置对话框(快捷键为+<;>),如图:
点加号,选“Jars or directories…”,再找到Tomcat下的servlet-api.jar。
这样就可以了,我们把doPost删掉,用不到,再在doGet方法中写点东西输出,SayHello.java就变成这样:
java的代码写好了,配置文件也要加点东西,打开web.xml,加上一个“”节点,改完后的web.xml变成这样:
编译(+),通过无压力。但,怎么运行?
Java Web项目无法单独运行,它需要一个程序来承载(Host)它,这和微软体系的东西是很类似的,ASP.net程序需要IIS来承载对不?而现在我们很明显需要用Tomcat来承载这个Web程序。
首先我们要配置好Tomcat,+<,>打开IntelliJ的配置。
如上图那样配置好Tomcat。
然后打开Project的运行配置:
继续看图:
再看图,如此般设置:
这里它提示你有个问题,说缺乏artifacts配置,你可以顺着它的指引,fix一下即可。点OK。
这次可以跑了,+。注意看IntelliJ的输出窗口里有什么提示信息,如果有,想想看是什么原因,我常常会碰到一些端口无法打开的问题,一般都是端口被占用了。
IntelliJ运行Java Web程序的时候会开启新的Tomcat实例,很可能会和之前运行的Tomcat实例发生冲突,解决冲突的最快的办法通常是直接把之前运行的Tomcat shutdown掉。
现在看看运行的成果吧:http://localhost:8080/sayhello
是不是看到“Hello World!”?这是用Java代码输出的“页面”,而不是静态页面。