目录
Eclipse + Tomcat + Servlet : web项目从0到0.1
1 Servlet、Tomcat
①Servlet:
就是一个服务器端的Java程序,用于对来自客户端的请求进行处理;
Java Servlet 是运行在 Web 服务器或应用服务器上的程序,它作为来自 Web 浏览器或其他 HTTP 客户端的请求和 HTTP 服务器上的数据库或应用程序之间的中间层;
②Tomcat:
在市场上有许多 Web 应用服务器支持 Servlet,Tomcat 就是其中的一个。
2 安装Tomcat
① 可以前往: http://tomcat.apache.org下载各个版本的Tomcat
② Liquid使用的是 7.0 版本,建议先下载 7.0 版本,与教程保持一致
③ 下载后把Tomcat安装在某个位置(哪里都可以),Liquid的安装目录为:E:\Apache Software Foundation\apache-tomcat-7.0.107
3 Eclipse添加Tomcat服务器
① window → Preferences
② Server → Runtime Environment → Add
注意:若找不到Servers这个选项,请查看问题集锦
③ Apache → 选择与下载的 Tomcat一致的版本 → Next
④ 选择刚刚安装 Tomcat 的位置 → Finish
⑤ 显示 Server控制台:Windows → Show view → Servers
4 创建web项目(Liquid将其命名为MyFirstWeb)
① File → New → Project → Web → Dynamic Web Project → Next
② 填写Project name → 选择 Target runtime → Next
③ Next → 勾选Generate web.xml deployment descriptor → Finish
5 创建首页html文件(访问服务器时第一个打开的页面)
① 先简单介绍一下web项目的配置文件
配置文件:MyFirstWeb -> WebContent -> WEB-INF -> web.xml
红色框框里的welcome-file标签即:访问服务器的MyFirstWeb时的第一个打开的页面,优先级由上至下降低
② 简单编写一个html文件,例如test.html,并放入WebContent目录中,如下图所示:
右键 WebContent → New → HTML File → 填写 File Name → Finish
③ 打开test.html ,在body标签内写入页面内容,例如:
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
<H1>This is my FirstWebProject's welcome page!</H1>
</body>
</html>
④ 打开配置文件web.xml,编写以下内容(使test.xml作为首页)
6 运行Web项目
① 方式1:在Eclipse中运行
(1)右键 MyFirstWeb → Run As → Run on Server
(2)选择我们刚刚创建的服务器 → Finish
注意:此处可能出现找不到我们已经创建好的服务器,而且也无法在运行时创建的问题,请移步下文的 问题集锦
(3)不出意外的话,首先会启动 tomcat 服务器,然后弹出我们刚刚编写的 test.html 页面
② 方式2:在浏览器中运行
浏览器中输入 localhost:8080/MyFirstWeb 或 127.0.0.1:8080/MyFirstWeb → 回车
说明:localhost == 127.0.0.1 , 8080是Tomcat默认的端口号
7 将项目部署到Tomcat
① 将项目导出为WAR包:右键项目名 MyFirstWeb → Export → WAR file
② 将导出的 WAR 包放入 tomcat/webapps(Tomcat的webbapps文件夹内)
③ 重启 Tomcat 服务器
apache-tomcat-7.0.107 → bin
在bin文件夹中找到startup 和 shutdown;先双击执行shutdown,再执行startup
说明:startup用于启动tomcat,shutdown用于关闭tomcat;因为刚刚我们在eclipse当中启动了tomcat,所以需要先关闭再重新启动
④ 浏览器中访问项目
在浏览器中输入 localhost:8080/MyFirstWeb 或 127.0.0.1:8080/MyFirstWeb → 回车
说明:localhost == 127.0.0.1 , 8080是Tomcat默认的端口号
8 使用 Servlet
① 新建servlet类 :右键MyFirstWeb → New → Servlet → 填写相关信息 → Finish
② 配置Servlet : MyFirstWeb → WebContent → WEB-INF → 打开web.xml
在web-app标签内写入以下代码
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" id="WebApp_ID" version="3.0">
<display-name>MyFirstWeb</display-name>
<welcome-file-list>
<welcome-file>test.html</welcome-file>
</welcome-file-list>
<servlet>
<servlet-name>MyServlet</servlet-name>
<servlet-class>servlet.MyServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>MyServlet</servlet-name>
<url-pattern>/servlet/MyServlet</url-pattern>
</servlet-mapping>
</web-app>
③ MyFirstWeb → Java Resources → src → servlet → 打开 MyServlet.java
当以服务器接收到一个get请求时,就会自动调用 doGet 方法
我们在doGet方法中写入一些测试代码:
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
// TODO Auto-generated method stub
PrintWriter out = response.getWriter();
out.println("<h1>GET SUCCESSFULLY BY liquid</h1>");// 返回给页面
Enumeration parameterNames=request.getParameterNames();
while(parameterNames.hasMoreElements()) {// 若果get请求含有参数,则连名带值打印出来
String paramName = (String)parameterNames.nextElement();
String parameterValue=request.getParameter(paramName);
System.out.println(paramName + ":" + parameterValue);
}
}
④ 启动Tomcat服务器
⑤ 在浏览器中输入(如果你的命名跟我一样,可以点击打开):http://localhost:8080/MyFirstWeb/servlet/MyServlet?a=1&b=2
提示:如果直接在Eclipse上运行servlet:右键MyServlet.java → Run as → Run on Server → 选择相应的服务器
与servlet相关的内容,请参考 : https://www.runoob.com/servlet/servlet-life-cycle.html
9 问题集锦
(1) 问题2: 找不到Server选项
该问题的原因:Eclipse不是Java EE版本,点击下载Eclipse Java EE
提示:不建议使用网上流传的更新插件的方法(速度慢,出错概率高,往往折腾了半天却发现没有用)
(2) 问题1: 运行Web项目,既无法找到已创建的Tomcat服务器,也无法创建新的服务器
① 找到项目所在位置,setting → 用记事本打开xml文件 :org.eclipse.wst.common.project.facet.core → 修改version (默认值可能不是3.1,根据实际的初始值来逐一减小尝试即可)
② 回到Eclipse,右键MyFirstWeb → Refresh → 再次运行项目
(3) 问题3 :执行servlet,报 classNotFoundException 错误
错误如下图所示
或
参考解决方案:https://blog.csdn.net/happy_bigqiang/article/details/69931279
10 总结
至此,我们已经在Eclipse中初步建立了一个Web项目,并进行了简单测试。如果一切顺利,那么恭喜你,你的web之路踏出了0.1步,前路漫漫,路途遥远,请保护好头发,Liquid与你同行!
后续会更新与Servlet相关的内容,走过路过请君莫错过!
不足之处、理解不到位之处、欢迎指正!