近期正在学习使用idea编译器编写java web,现把我在第一次尝试使用idea编译器编写一个简单地servlet的demo过程中遇到的问题及解决方法记录下来,供道友们参考:
红色部分为idea2017.03版做的过程中遇到的额外问题及解决办法,其余与老版本的做法相似,下面介绍的做法采用的是较老的版本。
一、创建并设置javaweb工程
1.创建javaweb工程
File --> New --> Project...
点击Project后出现如下界面,选择Java Enterprise,选中下图圈中部分
在这一步中记得看看jdk的路径对不对,我就是因为没看这个,结果默认是idea自带的idk,结果后面编辑的时候出了好多错误!!!!!!!!!!!!!!
点击Next后弹出下图弹出框,设置工程名字:
创建完成后工程结构如下:
2. Web工程设置
2.1 在WEB-INF 目录下点击右键,New --> Directory,创建 classes 和 lib 两个目录
classes目录用于存放编译后的class文件(不需要手动处理),lib用于存放依赖的jar包(需要手动存放jar包)
使用Idea2017.03版本的idea,创建的web项目,默认是没有web.xml文件的,我们需要自己手动添加:
1、ctrl+alt+shift+s 进入项目资源配置中心,也可点击file-->project Structure进入
2、选择facets,点击中间的绿色+,选择 Web,点击path右侧的+号,选择web.xml,在弹出的页面点击确定即可
2.2 File --> Project Structure...,进入 Project Structure窗口,点击 Modules --> 选中项目“WebClient” --> 切换到 Paths 选项卡 --> 勾选 “Use module compile output path”,将 “Output path” 和 “Test output path” 都改为之前创建的classes目录
即将后面编译的class文件默认生成到classes目录下
2.3 点击 Modules --> 选中项目“WebClient” --> 切换到 Dependencies 选项卡 --> 点击右边的“+”,选择 “JARs or directories...”,选择创建的lib目录
选择Jar Directory
3. Tomcat配置
3.1 Run -> Edit Configurations,进入“Run Configurations”窗口,点击"+"-> Tomcat Server -> Local,创建一个新的Tomcat容器
3.2 在"Name"处输入新的服务名,点击“Application server”后面的“Configure...”,弹出Tomcat Server窗口,选择本地安装的Tomcat目录 -> OK
3.3 在“Run Configurations”窗口的“Server”选项板中,去掉勾选“After launch”,设置“HTTP port”和“JMX port”,点击 Apply -> OK,至此Tomcat配置完成。
4.WebClient测试
4.1 Run -> Edit Configurations,进入“Run Configurations”窗口,选择之前配置好的Tomcat,点击“Deployment”选项卡,点击“+” -> “Artifact”-> 选择创建的web项目的Artifact...
修改“Application context”-> Apply -> OK
说明:此处的Application context是指定本工程的根目录
4.2 在index.jsp文件中的body之间添加要显示的内容,然后点击“运行”的绿色三角
打开浏览器,输入:localhost:8080/WebClient
至此,intellij idea创建并设置javaweb工程全部完成,下面是在其中编写并运行Servlet。
二、Servlet简单实现
1. 编写servlet源文件
在src目录下新建HelloWorld.java,并编写一下代码并进行编译:
点击Build中的Build Project,编译后会发现在classes目录下生成了HelloWorld.class文件
2. 部署servlet
方法一:
在WEB-INF目录下web.xml文件的
两个模块的
方法二:
在HelloWorld文件的类前面加上:@WebServlet("/HelloWorld")(idea2017版亲测失效)
3. 运行servlet
打开浏览器输入:http://localhost:8080/WebClient/WebClient/HelloWorld即可查看servlet运行状态了.(注意有两个WebClient哦)
写这篇博客的目的是为了记录学习,请勿用于其他不当用途。