TomCat学习笔记(1)--裸Tomcat框架实现和IDEA实现的比较

TomCat是什么不多说了,这里是用来记录我学习TomCat的操作与心路历程

本文对比演示用纯Tomcat和用IDEA集成开发同样的页面效果的两种方法

在不用IDEA集成开发环境时稍微学习了一些tomcat,能写出一个界面并且用get、post函数试着传递数据。(在下文介绍一下流程并给予简单分析)
指路:https://www.runoob.com/servlet/servlet-first-example.html
(Tomcat本来就是servlet的一种,所以指到了Servlet。)

1. 回顾用裸Tomcat:

大概的梳理一下不用IDEA来使用一个Tomcat创建一个服务器管理应用:
先记事本写一段java代码,用来在Servlet基类的基础上自定义咱们自己的服务端;

// 导入必需的 java 库
import java.io.*;
import javax.servlet.*;
import javax.servlet.http.*;

// 扩展 HttpServlet 类
public class HelloWorld extends HttpServlet {
 
  private String message;

  public void init() throws ServletException
  {
      // 执行必需的初始化
      message = "Hello World";
  }

  public void doGet(HttpServletRequest request,
                    HttpServletResponse response)
            throws ServletException, IOException
  {
      // 设置响应内容类型
      response.setContentType("text/html");

      // 实际的逻辑是在这里
      PrintWriter out = response.getWriter();
      out.println("<h1>" + message + "</h1>");
  }
  
  public void destroy()
  {
      // 什么也不做
  }
}

这里就是在定义我们的服务端,当然这里代码很简单,翻译成人话就是:

无论用户从浏览器发送了什么Get请求,那么都返回一个html页面其中写着“Hello World”
保存为HelloWorld.java后关闭文件

接下来把这一段简单的服务器定义编译成一个类class
这里把HelloWorld.java放在C:\TMP下面来编译

假设已经安装好java了(JDK),但是可能没有那些java库编译的时候会报错
在这里插入图片描述
所以先把依赖库告知给JDK。

网上有很多种解法,我用最无脑的
直接在环境变量里添加CLASSPATH,让它指向把Tomcat目录下的依赖库里面的servlet-api.jar,这样java在编译的时候就会用上这个jar包(没有CLASSPATH就自己建)
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
可能报这个错误,是源代码编码问题,用记事本另存为ANSI就行
在这里插入图片描述
编译完成后,现在我们就有了一个HelloWorld.class
里面是我们继承的servlet类定义
现在我们把它部署到Tomcat中,复制到这个文件夹内:

在这里插入图片描述
修改上一级WEB-INF 的web.xml

<web-app>
  	    <servlet>
    	        <servlet-name>HelloWorld</servlet-name>   //servlet标识
    	        <servlet-class>HelloWorld</servlet-class>  //servlet类名
        </servlet>
  
  	    <servlet-mapping>
            <servlet-name>HelloWorld</servlet-name>  // servlet标识
   	        <url-pattern>/HelloWorld</url-pattern>  //映射用的URL
	    </servlet-mapping>
 
</web-app>

这个文件用来告诉Tomcat当访问到指定的一个URL时
映射到一个我们定义的Servlet类,在这里就是HelloWorld.class

保存后,运行Tomcat的bin/startup.bat 访问localhost:8080/HelloWorld
在这里插入图片描述

2. IDEA中的实现:

以上应该比较清楚的介绍了怎么架起一个小服务器,那么用IDEA实现相同的功能是什么流程呢
在这里插入图片描述
用这个初始配置来自动生成项目
在这里插入图片描述
会发现是这样的目录结构,web.xml和WEB-INF很眼熟,但是index.jsp是什么,classes文件夹怎么也没了?

在这里,xxx.class这类的源代码文件 应当存放在src文件夹内,所以在src中新建一个一个Java Class文件。取名

classes.HelloWorld

在这里插入图片描述
Enter 后就有了一个Java Class文件
在这里插入图片描述
这里src是无法直接创建文件夹的,要在起名的时候带入路径
这个HelloWorld和之前写HelloWorld.java是一样的 直接黏贴代码

在这里插入图片描述
接下来一样 去写web.xml
在这里插入图片描述
和刚刚黏贴的代码唯一不同就是servlet类名要包括路径。

运行

在这里插入图片描述
在这里插入图片描述
自动跳出来的就是index.jsp写的html,在地址栏后面添加/HelloWorld
在这里插入图片描述
就能访问我们的Servlet返回的html
(项目地址可以在Configuration的Deployment中修改)
在这里插入图片描述

3. 总结:

上面实现的Tomcat两个页面效果一样,但是实现过程,显然在IDEA中更加紧凑,而且依赖包不用手动配置(以后还能用在IDEA里面用Maven自动导入依赖包)

但是IDEA为了统一整合,自带了一个项目外壳,用index.jsp呈现,访问路径在Configuration-Delpoyment中设置,这其实是一种方便,只不过可能对像我这样还没写几个Tomcat代码的小朋友比较confusing。写下来记录着。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值