JavaWeb开发 使用IDEA创建Servlet程序
前言
最近做项目需要,从之前熟悉的PHP和Python转到了JavaWeb,所以就有了这个笔记。资源图片都是来自网上的资源,根据自己的实际操作应用,做了总结归纳。
所需工具
- JDK
- Tomcat
- IDEA
创建工程
设置工程名字:
创建完成后工程结构如下:
上面的图片是在网络上复制的,好像我用的IDEA 2017.3.2
没有这个Create web.xml
的选项,我也不知道为啥,难道是IDEA
越更新功能越退步了?
如下图:
所以这里就要自己配置IDEA
添加web.xml
。
步骤:打开Project Structure,在facets中选中次级的web或者在Modules中选中web,在deployment Descriptors面板里,点击 +号选择web.xml以及版本号。然后在弹出的对话框中修改xml默认的目录,加上web就可以了。
然后确定,就有web.xml
文件了。
如图:
Web工程设置
创建classes
、lib
目录
在WEB-INF 目录下点击右键,New → Directory,创建 classes 和 lib 两个目录
classes目录用于存放编译后的class文件,lib用于存放依赖的jar包
classes
目录配置
File → Project Structure...,进入 Project Structure窗口,点击 Modules → 选中项目“JavaWeb” → 切换到 Paths 选项卡 → 勾选 “Use module compile output path”,将 “Output path” 和 “Test output path” 都改为之前创建的classes目录
即将后面编译的class文件默认生成到classes目录下
lib
目录配置
还是在这个Project Structure
这个窗口。点击 Modules → 选中项目“JavaWeb” → 切换到 Dependencies 选项卡 → 点击右边的“+”,选择 “JARs or directories...”,选择创建的lib目录。
选择Jar Directory
配置打包方式Artifacts
点击 Artifacts选项卡,IDEA会为该项目自动创建一个名为“JavaWeb:war exploded”的打包方式,表示 打包成war包,并且是文件展开性的,输出路径为当前项目下的 out 文件夹,保持默认即可。另外勾选下“Build on make”,表示编译的时候就打包部署,勾选“Show content of elements”,表示显示详细的内容列表。
Tomcat配置
创建Tomcat
容器
Run -> Edit Configurations,进入“Run Configurations”窗口,点击"+"-> Tomcat Server -> Local,创建一个新的Tomcat容器。
配置服务器名称路径
在"Name"处输入新的服务名,点击“Application server”后面的“Configure...”,弹出Tomcat Server窗口,选择本地安装的Tomcat目录 -> OK
运行配置
在“Run Configurations”窗口的“Server”选项板中,去掉勾选“After launch”,设置“HTTP port”和“JMX port”,点击 Apply -> OK,至此Tomcat配置完成。
JavaWeb测试
运行配置
Run -> Edit Configurations,进入“Run Configurations”窗口,选择之前配置好的Tomcat,点击“Deployment”选项卡,点击“+” -> “Artifact”-> 选择创建的web项目的Artifact...
修改“Application context”-> Apply -> OK
说明:此处的Application context是指定本工程的根目录。就是你访问服务器的路径,比如这里设置了JavaWeb
,那么访问服务器的地址就是http://localhost:8080/JavaWeb
。
编辑Jsp文件
在index.jsp文件中的body之间添加要显示的内容,然后点击“运行”的绿色三角
打开浏览器,输入:localhost:8080/JavaWeb
至此,intellij idea创建并设置javaweb工程全部完成,下面是在其中编写并运行Servlet。
Servlet实现
接下来记录一下怎么编写一个Servlet
程序,到Servlet
程序运行起来的全过程。
引入Servlet
相关包
我感觉IDEA还是有点不太智能,明明配置了Tomcat
了,都不给我自动引入Servlet
包,导致在IDEA中建立Servlet使用javax.servlet.http.HttpServlet等类时,出现了如下错误:
原因:IntelliJ IDEA 没有导入 servlet-api.jar
这个.jar包,需要手动导入。
导入步骤如下:选中项目,右击选择“Open Modules Settings”,选择“Libraries”,点击“+”,选“Java”;在弹出的窗口中选择tomcat所在的目录,在lib目录下找到servlet-api.jar
这个jar包导入完成即可。
编写Servlet
源文件
在src目录下新建HelloWorld.java,并编写一下代码并进行编译: 代码如下:
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.io.PrintWriter;
public class HelloWorld extends HttpServlet {
private String message;
@Override
public void init() throws ServletException {
message = "Hello world, this message is from servlet!";
}
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
//设置响应内容类型
resp.setContentType("text/html");
//设置逻辑实现
PrintWriter out = resp.getWriter();
out.println("<h1>" + message + "</h1>");
}
@Override
public void destroy() {
super.destroy();
}
}
编译后会发现在classes目录下生成了HelloWorld.class文件
部署servlet
方法1
在WEB-INF目录下web.xml文件的<servlet>
<servlet-name>HelloWorld</servlet-name>
<servlet-class>HelloWorld</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>HelloWorld</servlet-name>
<url-pattern>/HelloWorld</url-pattern>
</servlet-mapping>
方法2
(反正我自己测试是没有成功的) 在HelloWorld文件的类前面加上:@WebServlet("/HelloWorld")
运行Servlet
点击运行按钮
控制台出现successfully则tomcat服务启动成功!打开浏览器输入:localhost:8080/JavaWeb/HelloWorld即可查看servlet运行状态了.
后记
作为一个写习惯了PHP
和Python
的人来说,刚刚转到Java
还是有各种不适应的,还好Java和我最喜欢写的C#语法很相近,所以上手也不是很难,就是各种环境配置好麻烦= =...
About
了解更多有趣的操作请关注我的微信公众号:DealiAxy 每一篇文章都在我的博客有收录:blog.deali.cn