【金三春招】大厂面试官竟问舍友IDEA中Tomcat配置的细节?

2年前 (2022) 程序员胖胖胖虎阿
155 0 0

📢博客主页:🏀傻根根呀🏀
📢欢迎点赞 👍 收藏 ⭐留言 📝 欢迎讨论!👏
📢本文由 【傻根根呀】 原创,首发于 CSDN🙉🙉🙉
📢由于博主是在学小白一枚,难免会有错误,有任何问题欢迎评论区留言指出,感激不尽!✨个人主页
📖精品专栏(不定时更新)【JavaSE】 【MySQL】【LeetCode】【Web】【操作系统】


目录

😃一、前言😃

👏​二、热部署exploded war👏

💓三、什么是服务器💓

✨3.1什么是Tomcat

✨3.2为什么我们需要用到Tomcat

✨3.3Servlet 是什么?

✨四、玩小猫咪,警惕jakarta 和 javax

⭐​五、万事俱备,开始配置

💓 首先右键项目名,添加框架的支持

💓其次再添加web框架支持加上就行了

💓然后左上角,项目结构,Project Structure

💓 三、小猫咪的编辑配置

💓最后,配置好之后需要了解的一些小细节:

💓1,可爱的IDEA会帮你在浏览器自动访问资源

💓2,上面提到的localhost:8080是个啥?

 💓3,部署之中的上下文又是个啥!

🥎👏😃💓✨六、总结✨💓😃👏🥎


😃一、前言😃

写作需要有束缚,说和讲,自己明白就行,你可以乱说,但是写出来就不一样了。写出来发在网上就需要确保来源可靠,内容正确免得误人子弟。

其实之前的手撕三符:占位符,格式符,字符 文章并不火,还有锟斤拷,编码来源的系列文章。甚至不能说是不温不火。对比我三五千阅读量的文章简直可以说是冷若冰霜。

但是当时我写完这两篇文章的时候,是非常舒爽的。就是透彻,春风拂面,惠风和畅,犹之惠风荏苒在衣。感觉醍醐灌顶,自然是美滋滋的喜不胜收。

犹如掌握了乾坤大挪移一般想出去打两套单鞭再来一个左右野马分鬃白鹤亮翅。

感觉写作的真谛,写作是自己整理思路,说服自己,使自己相信,牢记,最终内化掌握知识的过程。

还记得十月份初识Java javac的命令,java命令,因为电脑上一系列扯淡的JDK 机器混乱,javac用的是JDK1.8 java用的是JDK11

离离原上谱......还有gitee安装一下午。。。安好了还是不会commit和push,压根不知道有git—clone这个命令需要提前克隆远程仓库。

直到展开JavaWeb了需要上传代码了,磨刀不误砍柴工,我一个下午粗略浅显的掌握了gitee工作流程和原理,说出来不丢人,至少会使用啦。

之前学习有点儿刀枪入库马放南山,慢慢的也步入正轨啦!~

预告接下来更新 DS 数据结构系列 算法刷题, 以及 JavaWEB,一起学习,共同进步!


👏​二、热部署exploded war👏

Tomcat部署时war和war exploded区别以及平时踩得坑_徐刘根的博客-CSDN博客__war_exploded

大佬写得太好了,直接引用,友友们想了解的可以去哦~

我在这儿直接省流:实际开发和联系学习过程中推荐使用IDEA+Tomcat小猫咪的热部署!~

 再补一句 war exploded这种热部署模式的通常是需要将其 设置为 classes and resources update 更新类和资源的!【金三春招】大厂面试官竟问舍友IDEA中Tomcat配置的细节?


💓三、什么是服务器💓

✨3.1什么是Tomcat

Tomcat简单的说就是一个运行JAVA的网络服务器,底层是Socket的一个程序,它也是JSP和Serlvet的一个容器。


3.2为什么我们需要用到Tomcat

如果你学过html,css,你会知道你写的页面只能自己访问,别人不能远程访问你写的页面,Tomcat就是提供能够让别人访问自己写的页面的一个程序


【金三春招】大厂面试官竟问舍友IDEA中Tomcat配置的细节?

在浏览器地址栏输入http://localhost:8080,如果能够出现Tomcat页面,说明配置成功了

Tomcat就是这么简单 - 知乎


3.3Servlet 是什么?

Java Servlet 是运行在 Web 服务器或应用服务器上的程序,它是作为来自 Web 浏览器或其他 HTTP 客户端的请求和 HTTP 服务器上的数据库或应用程序之间的中间层。

Servlet 简介 | 菜鸟教程


公共网关接口(Common Gateway Interface,CGI)是Web 服务器运行时外部程序的规范,按CGI 编写的程序可以扩展服务器功能。CGI 应用程序能与浏览器进行交互,还可通过数据API与数据库服务器等外部数据源进行通信,从数据库服务器中获取数据。格式化为HTML文档后,发送给浏览器,也可以将从浏览器获得的数据放到数据库中。几乎所有服务器都支持CGI,可用任何语言编写CGI,包括流行的C、C ++、Java、VB 和Delphi 等。CGI分为标准CGI和间接CGI两种。标准CGI使用命令行参数或环境变量表示服务器的详细请求,服务器与浏览器通信采用标准输入输出方式。间接CGI又称缓冲CGI,在CGI程序和CGI接口之间插入一个缓冲程序,缓冲程序与CGI接口间用标准输入输出进行通信 [1]  。

JavaEE实际上包括很多种规范,✨✨✨13种规范✨✨✨

其中Servlet就是JavaEE规范之一,学Servlet还是Java语言。


✨四、玩小猫咪,警惕jakarta 和 javax

上文我们说到服务器就是安装了服务器软件的计算机,而小猫咪就是 服务器软件

在小猫咪版本10之前,也就是2019年之前

都是import javax.servlet这样导入包的

在2019年之后 都是 jakarta这个包中我们进行导入的!

这是一个细节。我们需要把jakarta换成javax。lib依赖的包javax也更名成了jakarta!

当然一个电脑也可以安装多个小猫咪适配不同项目需求!

【金三春招】大厂面试官竟问舍友IDEA中Tomcat配置的细节?


⭐​五、万事俱备,开始配置

💓 首先右键项目名,添加框架的支持

add frame support【金三春招】大厂面试官竟问舍友IDEA中Tomcat配置的细节?


💓其次再添加web框架支持加上就行了

【金三春招】大厂面试官竟问舍友IDEA中Tomcat配置的细节?

【金三春招】大厂面试官竟问舍友IDEA中Tomcat配置的细节?


💓然后左上角,项目结构,Project Structure

【金三春招】大厂面试官竟问舍友IDEA中Tomcat配置的细节?

文件(File)----->项目结构(Project Structure)----->依赖(dependcies)

 点击右边的小加号

【金三春招】大厂面试官竟问舍友IDEA中Tomcat配置的细节?

**我是根据这个路径的:请自己找到安装小猫咪的位置:E:\重要软件\apache-tomcat-8.5.73\lib\jsp-api.jar**

(这里再补充一句,这些软件的文件夹最好都使用英文,不然后期会在控制台乱码!~)

注意是在小猫咪的lib中引入jsp 和 servlet 的

【金三春招】大厂面试官竟问舍友IDEA中Tomcat配置的细节?

应用,确定。


💓 三、小猫咪的编辑配置

先点击加号,然后添加即可

【金三春招】大厂面试官竟问舍友IDEA中Tomcat配置的细节?


💓最后,配置好之后需要了解的一些小细节:

💓1,可爱的IDEA会帮你在浏览器自动访问资源

此处注意这个URL表示的是你的项目打开浏览器之后,他会自动帮你访问的URL路径。

http://localhost:8080/xuxu


//我设置的是如上的路径

(你可以自己再随便改成别的!~不影响,咱就是说,IDEA就是个帮懒人干活摸鱼的神奇工具)

你就点一下那个运行的小绿标:【金三春招】大厂面试官竟问舍友IDEA中Tomcat配置的细节?

 人家直接按照你的心意:称心如意小IDEA帮你顺便把网页也打开啦?还不可爱么!?~

如意如意,如我心意!你要是突然心血来潮想看俺滴个人主页!来吧,展示:

【金三春招】大厂面试官竟问舍友IDEA中Tomcat配置的细节?

【金三春招】大厂面试官竟问舍友IDEA中Tomcat配置的细节?

 IDEA也能帮你看到哦!!!


但是咱就是说:通常点了运行开启服务器之后,IDEA和小汤姆猫属于是两个进程啦。两个进程之间建立联系很浪费资源滴,你这设置自动打开的URL这么皮!~然后自己再从URL栏里删除掉地址,再苦哈哈的打上你的项目所在的地方!那可真是脱裤子放屁多此一举了嗷!你的调皮程度也是让我小刀啦屁股,开了眼儿喽!


💓2,上面提到的localhost:8080是个啥?

【金三春招】大厂面试官竟问舍友IDEA中Tomcat配置的细节?

  http://localhost:8080/xuxu/​​​​​​

 对其进行分析:localhost 是本地计算机的默认WEB发布路径,8080是端口号。

如果你访问这个URL,就可以看到你本机上WEB服务器发布的内容。

因为我们没有租赁云服务器,只是练习使用,所以我们计算机安装了小猫咪之后,自己作为服务器,访问自己的8080端口。

【金三春招】大厂面试官竟问舍友IDEA中Tomcat配置的细节?

那么我们的有时常见的 127.0.0.1 是什么呢?他也是本地的!

【金三春招】大厂面试官竟问舍友IDEA中Tomcat配置的细节?

!二者等效!


 💓3,部署之中的上下文又是个啥!

可以说是首尾呼应了嗷兄弟们!

上文我们提到了war_exploded是热部署的!是在开发和学习过程中推荐使用的!

我们不管是在互联网服务器中,抑或是我们本地的服务器端口中,目的很简单啊!!!

打开网页,在网页上显示我们的HelloWorld!

才开始学习JavaWeb!激动的心颤抖的手!HelloWorld有没有?

【金三春招】大厂面试官竟问舍友IDEA中Tomcat配置的细节?

 这个应用程序上下文,Application Context 其实就是你这个项目部署到小猫咪上取的名字,你根据这个名字去访问执行项目中的其他资源!

你在打开浏览器URL输入路径的时候,其实就是通过   服务器/端口号/项目名/项目下的文件名去访问服务器并获取其上的资源的

【金三春招】大厂面试官竟问舍友IDEA中Tomcat配置的细节?

package com.bjpowernode.java;

import javax.servlet.ServletException;
import javax.servlet.annotation.WebInitParam;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.io.PrintWriter;

/**
 * @program: testoa
 * @description:
 * @author: SmallRedSun
 * @create: 2022-03-13 21:50
 **/

@WebServlet (name = "hello",urlPatterns = {"/hello1","/hello2","/hello3"},loadOnStartup = 1,initParams = {@WebInitParam(name="username",value="root")})
@WebInitParam(name="password",value = "123")
public class HelloServlet extends HttpServlet {
    @Override
    protected void doGet(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {

        response.setContentType("text/html;charSet=UTF-8");
        PrintWriter out = response.getWriter();

        //获取Servlet 的Name
        String servletName = getServletName();
        out.print("servlet name= "+ servletName +"<br>");
        out.print("看到这条消息的好兄弟们身体健康,学业顺利,心想事成,家人平安快乐,家庭幸福美满");

    }
}

🥎👏😃💓✨六、总结✨💓😃👏🥎

到此为止 Idea 和 Tomcat小猫咪 就部署好了。我们就可以开始学习web相关的知识啦!

我第一次学的时候懵懵懂懂,一盆浆糊。这是不好的。磨刀不误砍柴工,基础不牢地动山摇。

分享出来,供后续复习学习!也希望能帮到朋友们!代码学习之旅一定要走踏实每一步呀!

西安疫情反反复复,各地不断零星病例,后疫情时代,兄弟们注意防护!


【金三春招】大厂面试官竟问舍友IDEA中Tomcat配置的细节?

相关文章

暂无评论

暂无评论...