使用 IntelliJ IDEA Java Web 输出 Hello World
1.下载Tomcat
首先,下载Apache Tomcat并解压到本地计算机,可存放于任何位置。
另外,需要在系统中环境JRE_HOME环境变量,以保证Tomcat可以正常启动,具体配置方式请参考其它教程。
2.创建Java Web项目
在IntelliJ IDEA的欢迎主界面中,点击Create New Project:
在New Project对话框的左侧选择Java Enterprice,在右侧确保Project SDK是1.8版本,Java EE version为Java EE 8(也可以是略低的其它版本):
由于是第1次使用,尚未配置Tomcat,需要点击Application Server右侧的New按钮,并在弹出的菜单中选择Tomcat Server:
在弹出的Tomcat Server对话框中,在Tomcat Home栏浏览到第1步下载的Tomcat目录,并点击OK:
回到New Project对话框,在Additional Libraries and Frameworks的列表中,勾选Web Application (4.0),然后点击Next到下一步:
填写项目名称,并确保保存项目的文件夹路径无误后,即可点击Finish按钮,以完成创建项目:
3.启动项目
相比普通的Java项目,在Java EE项目结构中多了一个web文件夹,相当于使用Eclipse时在项目中看到的webapp文件夹,在web文件夹下有WEB-INF子文件夹和index.jsp文件,并且,在WEB-INF文件夹下还有web.xml文件:
打开index.jsp文件,该文件目前只有最基础的文件结构:
可以自行修改标题文字及页面中显示的内容,具体修改方式可完全参考HTML语法:
点击窗口右上角的“运行”按钮,即可将当前项目部署到Tomcat并运行:
运行成功后,会自动打开浏览器,并显示index.jsp页面所设置的内容:
由于index.jsp是默认页面,所以,在浏览器的URL中并不需要显式的添加该文件的名称,如果添加了,显示的效果也是完全相同的:
4.修改项目的Context Path
刚才启动项目时,会自动打开浏览器并访问项目的页面,是项目的启动设置中的配置决定的,点击IntelliJ IDEA的Run菜单的Edit Configurations即可打开启动设置:
在设置面板中,有Open Browser(打开浏览器)设置项,在下方默认勾选了After launch(启动之后)、所使用的浏览器,及打开浏览器后访问的URL:
如果需要修改项目的Context Path,展开项目结构中的.idea,打开workspace.xml文件,在该文件的第26行(因版本差异可能行号不同)就是Context Path值的配置:
可自行修改该属性的值:
修改后,当项目再次运行时,如果还按照原有的URL进行访问肯定是错误的,所以,应该回到启动设置中,将打开浏览器后自动访问的URL修改为与新的Context Path值匹配的URL:
当启动设置也修改完成后,重新启动Tomcat,当启动成功后,仍会自动打开浏览器,可以看到此次访问的就是修改后的URL,并且可以正常访问到index.jsp:
5.通过Servlet组件转发JSP
在Java EE项目中,使用Servlet组件转发JSP是非常常见的做法,首先,对项目的src点击鼠标右键,依赖选择New > Create New Servlet即可开始创建Servlet组件:
在弹出的New Servlet对话框中,自行填写Servlet Name与Package,完成后点击OK即可:
创建成功后,会自动打开所创建的Servlet类,首先,在@WebServlet注解参数中,增加配置urlPatterns属性,以指定访问该Servlet组件的资源名(注意:该属性值需要使用 / 作为第1个字符):
默认情况下,当前Servlet中已经生成了重写的doPost与doGet方法,由于本次只是简单的访问即可,客户端提交请求的方式应该是GET类型,则不需要doPost方法,删掉即可,如果允许使用POST方式访问,且与GET方式相同的处理模式,则在doPost方法中直接调用doGet方法即可:
在实现转发时,需要一个JSP页面文件,通常,会将JSP文件保存到WEB-INF的某个子级文件夹中,避免JSP文件被直接访问!对WEB-INF文件夹点击鼠标右键,依次选择New > Directory以创建用于存放JSP文件的文件夹:
在弹出的New Directory对话框中输入文件夹的名称并回车:
对新创建的文件夹点击鼠标右键,依赖选择New > JSP/JSPX以创建JSP文件:
在弹出的Create JSP/JSPX page对话框中输入文件名(不需要输入扩展名)并回车:
然后,自行设计JSP文件的内容,例如:
回到Servlet类的doGet方法中,添加转发JSP的代码,例如:
1 | request.getRequestDispatcher("/WEB-INF/jsp/hello.jsp").forward(request, response); |
如下图所示:
完成后,再次重新启动项目,在URL的Context Path值的右侧添加hello(Servlet组件配置的urlPatterns值)即可看到Servlet转发的JSP文件显示的内容: