今天根据菜鸟教程(runboo)配置tomcat jsp开发环境的时候,并不十分顺利,踩了一些坑,这里重新整理一下配置开发环境的过程,作为一个最新(2020.3.24)的补充吧。
软件准备
Windows 10
在浏览器中可以按"Ctrl + F"搜索。
Oracle JDK 8
下载前的提示
点击链接进入 Oracle 官网下载jdk,如果链接失效可以搜索“Java SE Development Kit 8 Downloads”,你需要注册一个oracle账号才能下载,另外需要注意Oracle JDK License 在2019.4.19已经更新,如果你商业使用Oracle JDK,你可能需要购买授权。另外一个解决方案是使用OpenJDK,不过官网似乎没有提供Windows版本,可以考虑Redhat编译的非官方版本(链接)。
这里推荐使用Oracle JDK 8,安装的步骤网络上也有很多资料,这里只简要说明一下步骤。
下载&安装
登录官网、选择Windows x64(如果是32位系统选择Windows x86)、阅读并同意协议。
选择安装目录后安装即可,下面会用%JAVA_HOME%代替JDK安装目录。另外,环境变量配置并不是必须的,至少在这里不是,Windows下使用exe安装包会自动将java加入环境变量,如果有需求可以使用搜索找到相关资料。
Tomcat 9
下载&安装
点击链接登录 Apache 官网,选择 Binary Distributions 下 Core 的 32-bit/64-bit Windows Service Installer 。这里选择的是exe版本,当然zip版本也可以,但是这里使用exe版本会减少很多麻烦。下载完成后直接完整即可,默认选项不需要更改。
配置
安装完成建议关闭Apacha Tomact Service自启用,方法:
Win + R 打开运行 -> 输入services.msc -> 找到Apache Tomcat 9.0 Tomcat9(或Tomcat9)-> 属性 -> 启动类型 -> 手动
因为接下来我们会使用eclipse启用Tomcat,不需要手动启用Tomcat。
使用
这里简单介绍一下Tomcat的安装目录。
目录名 | 描述 |
---|---|
bin | 存放封装好tomcat命令 |
conf | 存放配置文件 |
lib | 存放tomcat依赖的jar包 |
logs | 存放日志 |
webapps | 存放网页应用,类似nginx的wwwroot。 |
work | 存放编译好的class |
temp | 存放临时文件 |
在接下来的开发过程中,我们会把Tomcat交给Eclipse管理,所以我们暂时不需要关心Tomcat的控制。
如果我们需要控制Tomcat,我们只需要打开./bin/Tomcat9w.exe。 这是一个图形界面控制程序,可以帮助我们完成基本操作。
Eclipse
下载
点击链接登录 Eclipse 官网,找到
Get Eclipse IDE 2020‑03
跳转到下载页面,先点击
>> Select Another Mirror
建议选择 China 开头的节点,然后下载。
安装
我们下载得到的是一个安装器(Eclipse Installer),我们选择第二项
Eclipse IDE for Enterprise Java Developers
配置
- 上方菜单栏 -> Help -> Preference -> Server -> Runtime Environment -> Add
设置Tomcat和JDK安装目录
- 上方菜单懒 -> Windows -> Show View -> Others -> Server -> Servers
我们可以看到下方Overview多了一栏Servers,
双击Tomcat v9.0
单击 Ports - Tomcat admin port - Port Number,将 -1 修改为 8081
至此,开发环境配置完成。
Hello World
- 菜单栏 -> File -> New -> Dynamic Web Project -> 输入项目名 > Finish。
- 下面的我们统一使用编码utf-8,为了避免麻烦,右键项目 -> Properties -> Resource -> 将编码改为utf-8
- (可选)我们希望使用自己的浏览器打开测试页面 Windows -> Web Browser -> 选择合适的浏览器
JSP
在 WebContent下 新建 Test.jsp,输入以下代码:
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>你好,世界!</title>
</head>
<body>
<%
out.println("Hello World!");
%>
</body>
</html>
保存后按下Ctrl + F11(或上方工具栏 -> Run -> Run)
效果:
Servlet
在Java Resource -> src 下新建 Servet,输入以下代码:
import java.io.IOException;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
/**
* Servlet implementation class HelloServlet
*/
@WebServlet("/HelloServlet")
public class HelloServlet extends HttpServlet {
private static final long serialVersionUID = 1L;
/**
* @see HttpServlet#HttpServlet()
*/
public HelloServlet() {
super();
// TODO Auto-generated constructor stub
}
/**
* @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
*/
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
response.setCharacterEncoding("utf-8");
response.setContentType("text/html;charset=utf-8");
response.getWriter().write("你好,世界!");
}
/**
* @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
*/
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
// TODO Auto-generated method stub
doGet(request, response);
}
}
保存运行,应该可以看到类似 Test.jsp 的效果。