前言
接触Java 有些年头了,从最初用Eclipse写普通Java 项目、Servlet/Jsp web项目,到习惯Maven/Gradle构建工具、IDEA和SpringBoot,已经忘记了怎么创建一个不使用构建工具和任何Java Web框架的原始Java Web项目。最近接触一个老项目,就是使用很原始的方式搭建的,虽然使用了Spring的技术,但是没有使用构建工具,手工管理庞大的依赖Java 类库,而且还是Eclipse项目,习惯了IDEA,不想再用回Eclipse,而且对比把一个不使用构建工具创建的项目改成使用构建工具的项目工作量和带来的效益 ,决定还是先不要使用构建工具,只是改成IDEA项目。
预备条件
- JDK
根据项目需要配置好相应版本的JDK环境。这里使用Oracle 的JDK1.8.0_181
,JDK6、7应该也行,不过如今Java SE 12.0.2
都已经发行了,还在用5\6就太过时了 - Tomcat
Java Web 开发最熟悉的Servlet/JSP 容器。这里使用apache-tomcat-7.0.94
- IDEA
Java开发非常好用的IDE
实施
- 新建项目
依次点击IDEA菜单栏File->New->Project…打开一个对话框,选择Java,勾选Web Application。
在Servlet
3.0中,部署描述符,即web.xml,是可选的,通过Servlet注解,对于不太复杂的应用程序,可以部署没有描述符的Servlet/JSP应用程序。尽管如此,在需要更加精细的配置的情况下,部署描述符仍然需要。
确定项目名称、存放路径:
如果目录不存在,idea 可以帮你创建:
点击’Ok’后,一个新的项目初步完成:
- 配置项目使用本地Tomcat启动
点击
+
选择Tomcat Server
->Local
:
给这个Tomcat Server配置随意起一个名称,并且在Server tab下Application server: 行尾点击Configure选择Tomcat安装目录
点击
Deployment
点击
+
,选择Artifact...
可以查看部署详情
在
Deployment
tab下点击OK
完成配置:
- 添加Servlet 类库
选择
Java
,选择Tomcat 安装目录下lib目录的servlet-api.jar
和jsp-api.jar
- 编写项目代码
在src
目录下编写Java 代码
servlet 类
package com.example.demo;
import javax.servlet.*;
import javax.servlet.annotation.WebServlet;
import java.io.IOException;
import java.io.PrintWriter;
@WebServlet(name = "DemoServlet", urlPatterns = {"/demo"})
public class DemoServlet implements Servlet {
private transient ServletConfig servletConfig;
@Override
public void init(ServletConfig servletConfig) throws ServletException {
this.servletConfig = servletConfig;
}
@Override
public ServletConfig getServletConfig() {
return this.servletConfig;
}
@Override
public void service(ServletRequest servletRequest, ServletResponse servletResponse) throws ServletException, IOException {
String servletName = servletConfig.getServletName();
servletResponse.setContentType("text/html");
PrintWriter writer = servletResponse.getWriter();
writer.print("<html><head></head>"
+ "<body>Hello from " + servletName
+ "</body></html>");
}
@Override
public String getServletInfo() {
return "demo servlet";
}
@Override
public void destroy() {
}
}
在web
目录下编辑index.jsp
:
<%@ page import="java.text.DateFormat" %>
<%@ page import="java.util.Date" %>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<title>welcome</title>
</head>
<body>
<%
DateFormat dateFormat = DateFormat.getDateInstance(DateFormat.LONG);
String dateStr = dateFormat.format(new Date());
out.println("Today is " + dateStr);
%>
</body>
</html>
- 启动项目Tomcat
1、访问http://localhost:8080/
2、访问http://localhost:8080/demo
回头看项目配置
总结
使用IDEA 创建一个普通的Java Web项目,其中重要的点:
1、创建项目时候勾选Web Application
2、配置Tomcat Deployment
时候,Artifacts type 选择 Web Application:Exploded
生成的输出目录结构
其中
servlet_jsp_demo_war_exploded
是应用程序目录
。WEB-INF
在应用程序目录下,它有两个子目录:class
和lib
class
。Servlet类和其他Java类必须放在这里。lib
。Servlet应用程序所需的JAR文件要在这里部署。但Servlet API和JSP API的JAR文件不需要在这里部署,因为Servlet容器已经有它们的备份。在这里,lib目录是空的,空的lib目录可以删除。
Servlet/JSP应用程序一般都有JSP页面、HTML文件、图片文件以及其他资料。这些应该放在应用程序目录
下,并且经常放在子目录下。
放在应用程序目录
下的任何资源,用户只要输入资源URL,都可以直接访问到。如果想让某一个资源可以被Servlet访问,但不可以被用户访问,那么就要把它放到WEB-INF
目录下。