JavaWeb-在idea中配置Servlet项目

文章目录

    • 在idea中进行Servlet项目的配置(较新的idea版本)
    • 创建一个空的JavaSE项目(Project)
    • 创建一个普通的JavaSE板块(module)
    • 添加Web项目的配置
    • 定义一个对象模拟实现接口
    • 在web.xml中配置路径映射
    • 配置项目到Tomcat服务器
    • 启动Tomcat服务器进行测试

在idea中进行Servlet项目的配置(较新的idea版本)

之前我们说过在不使用集成开发环境的情况下进行web项目的配置, 现在我们采用idea集成开发环境进行web项目的配置

创建一个空的JavaSE项目(Project)

在这里插入图片描述
我们这里不创建一个JavaEE项目, 而是创建一个JavaSE的空项目, 然后进行环境的配置, 来体会开发的过程(其实主要还是idea内置的JavaEE项目是基于maven的项目, 现在我们先默认不会maven)

创建一个普通的JavaSE板块(module)

在这里插入图片描述

在这里插入图片描述

添加Web项目的配置

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

按照上述步骤操作, 就可以在该模块下, 成功配置Web开发的环境
继续点击配置之后, 我们查看以下当前的项目路径的结构

在这里插入图片描述
我们可以看到, idea为我们生成一个符合Servlet规范的web项目的列表, 这里可能有人对web这个目录可能觉得很奇怪

这个目录的含义,
其实就是我们先前配置的Tomcat中的webapps中的webapp的根目录

那我们不把这个目录配置到Tomcat中的webapps下真的可以吗?
答案是肯定的, 虽然我们的项目没有配置到那个路径下面,
但是我们在后面启动Tomcat服务器的时候, 服务器会关联上这个路径
同时也会让你手动的配置一个项目名称(后面会说)

至于我们的java代码,
我们在这个和web项目同级别的src目录中编写, 也不用手动的去创建其他的目录信息了…

我们路径URL的映射还是配置到web.xml

定义一个对象模拟实现接口

在这里插入图片描述
我们实现接口的时候, 会发现产生编译错误, 这是因为我们没有Servlet的接口的导入, idea中导入这个接口的方法, 具体途径还是上面导入web页面的位置进行相关配置

在这里插入图片描述

我们找到Tomcat中的lib文件中的jar包进行导入

在这里插入图片描述

导入完毕之后, 我们发现我们的项目的多出来了两个jar包

在这里插入图片描述

重写Servlet接口的相关方法

package com.qnn.servlet;

import jakarta.servlet.*;

import java.io.IOException;

public class HelloServlet implements Servlet {

    @Override
    public void init(ServletConfig servletConfig) throws ServletException {
        
    }

    @Override
    public ServletConfig getServletConfig() {
        return null;
    }

    @Override
    public void service(ServletRequest servletRequest, ServletResponse servletResponse) throws ServletException, IOException {
		System.out.println("Hello Servlet");
    }

    @Override
    public String getServletInfo() {
        return "";
    }

    @Override
    public void destroy() {

    }
}

在web.xml中配置路径映射

在这里插入图片描述

配置项目到Tomcat服务器

在配置Tomcat服务器之前, 要把所需的类变成一个组织的属性(配置如下)

在这里插入图片描述
在这里插入图片描述

点进去点OK即可完成项目的添加


下面才是Tomcat服务器的配置

在这里插入图片描述

在这里插入图片描述

第一页基本上不用改动…
在这里插入图片描述
在这里插入图片描述

添加之后要配置项目的路径, 之前我们说了, 那个web带一个小圈圈的目录不是真正的项目目录, 我们配置项目的时候项目的名称要进行重新的指定才可以

在这里插入图片描述
这里配置的才是我们真正的webapp的名称, 比如这里我们配置的wepapp的名称是/myproject

点击之后就成功的把项目配置到了Tomcat服务器当中…

启动Tomcat服务器进行测试

在这里插入图片描述

点击debug图标启动服务器进行测试(我们一般都是以调试模式启动)

在这里插入图片描述

可以看到此时Tomcat服务器启动完成, 我们打开浏览器输入URL进行多次测试

http://127.0.0.1:8080/myproject/world

可以看到服务器端已经有所反应了

在这里插入图片描述

至此我们的Servlet项目在idea中就正式配置成功了…

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/978002.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

【深度学习神经网络学习笔记(二)】神经网络基础

神经网络基础 神经网络基础前言1、Logistic 回归2、逻辑回归损失函数3、梯度下降算法4、导数5、导数计算图6、链式法则7、逻辑回归的梯度下降 神经网络基础 前言 Logistic 回归是一种广泛应用于统计学和机器学习领域的广义线性回归模型,主要用于解决二分类问题。尽…

力扣hot100 —— 电话号码字母组合; 子集 (非回溯做法)简单易懂

由于博主对回溯也不是很熟悉,这里提出一种简单易懂的解法(有点暴力) 解题思路: 每个数字对应有自己的字母串; 首先遍历将每个字母存入也就是 res{{a},{b},{c}} 然后遍历后续数子对应的字母,让每个字母与…

React 源码揭秘 | 更新队列

前面几篇遇到updateQueue的时候,我们把它先简单的当成了一个队列处理,这篇我们来详细讨论一下这个更新队列。 有关updateQueue中的部分,可以见源码 UpdateQueue实现 Update对象 我们先来看一下UpdateQueue中的内容,Update对象&…

解锁养生密码,拥抱健康生活

在快节奏的现代生活中,养生不再是一种选择,而是我们保持活力、提升生活质量的关键。它不是什么高深莫测的学问,而是一系列融入日常的简单习惯,每一个习惯都在为我们的健康加分。 早晨,当第一缕阳光洒进窗户&#xff0c…

muduo网络库2

Muduo网络库:底层实质上为Linux的epoll pthread线程池,且依赖boost库。 muduo的网络设计核心为一个线程一个事件循环,有一个main Reactor负载accept连接,然后把连接分发到某个sub Reactor(采用轮询的方式来选择sub Reactor)&…

【大语言模型】【整合版】DeepSeek 模型提示词学习笔记(散装的可以看我之前的学习笔记,这里只是归纳与总结了一下思路,内容和之前发的差不多)

以下是个人笔记的正文内容: 原文在FlowUs知识库上,如下截图。里面内容和这里一样,知识排版好看一点 一、什么是 DeepSeek 1. DeepSeek 简介 DeepSeek 是一家专注于通用人工智能(AGI)的中国科技公司,主攻大模型研发与…

AWQ和GPTQ量化的区别

一、前言 本地化部署deepseek时发现,如果是量化版的deepseek,会节约很多的内容,然后一般有两种量化技术,那么这两种量化技术有什么区别呢? 二、量化技术对比 在模型量化领域,AWQ 和 GPTQ 是两种不同的量…

ARM Cortex-M3 技术解析:核寄存器R1-R15介绍及使用

ARM Cortex-M3 技术解析:核寄存器R1-R15介绍及使用 作为嵌入式开发领域的经典处理器内核,ARM Cortex-M3(CM3)凭借其高效能、低功耗和丰富特性,在工业控制、物联网、消费电子等领域广泛应用。而内核寄存器是我们调试代…

ROS ur10机械臂添加140夹爪全流程记录

ROS ur10机械臂添加140夹爪 系统版本:Ubuntu20.04 Ros版本:noetic Moveit版本:moveit-noetic 参考博客: ur3robotiq ft sensorrobotiq 2f 140配置rviz仿真环境_有末端力传感器的仿真环境-CSDN博客 UR5机械臂仿真实例&#xf…

Web自动化之Selenium添加网站Cookies实现免登录

在使用Selenium进行Web自动化时,添加网站Cookies是实现免登录的一种高效方法。通过模拟浏览器行为,我们可以将已登录状态的Cookies存储起来,并在下次自动化测试或爬虫任务中直接加载这些Cookies,从而跳过登录步骤。 Cookies简介 …

【落羽的落羽 数据结构篇】树、二叉树

文章目录 一、树1. 树的概念和结构2. 树的相关术语 二、二叉树1. 概念与结构2. 满二叉树3. 完全二叉树4. 二叉树的性质5. 二叉树的存储结构 一、树 1. 树的概念和结构 之前我们学习了线性表,今天我们再来接触一种全新的数据结构——树。 树是一种非线性的数据结构…

数据结构(陈越,何钦铭) 第四讲 树(中)

4.1 二叉搜索树 4.1.1 二叉搜索树及查找 Position Find(ElementTyoe X,BinTree BST){if(!BST){return NULL;}if(X>BST->Data){return Find(X,BST->Right)}else if(X<BST->Data){return Find(X,BST->Left)}else{return BST;} } Position IterFind(ElementTyp…

【原创工具】同文件夹PDF文件合并 By怜渠客

【原创工具】同文件夹PDF文件合并 By怜渠客 原贴&#xff1a;可批量合并多个文件夹内的pdf工具 - 吾爱破解 - 52pojie.cn 他这个存在一些问题&#xff0c;并非是软件内自主实现的PDF合并&#xff0c;而是调用的pdftk这一工具&#xff0c;但楼主并没有提供pdftk&#xff0c;而…

Kafka系列之:记录一次源头数据库刷数据,造成数据丢失的原因

Kafka系列之:记录一次源头数据库刷数据,造成数据丢失的原因 一、背景二、查看topic日志信息三、结论四、解决方法一、背景 源头数据库在很短的时间内刷了大量的数据,部分数据在hdfs丢失了 理论上debezium数据采集不会丢失,就需要排查数据链路某个节点是否有数据丢失。 数据…

llama.cpp 一键运行本地大模型 - Windows

文章目录 llama.cpp 一键运行本地大模型 - Windows嘿&#xff0c;咱来唠唠 llama.cpp 这玩意儿&#xff01;gguf 格式是啥&#xff1f;咱得好好说道说道基座模型咋选&#xff1f;所需物料&#xff0c;咱得准备齐全咯核心命令&#xff0c;得记牢啦运行方式咋选&#xff1f;测试应…

BGP状态和机制

BGP邻居优化 为了增加稳定性,通常建议实验回环口来建立邻居。更新源:建立邻居和邻居所学习到的路由的下一跳。多跳:EBGP邻居建立默认选哟直连,因为TTL=1,如果非直连,必须修改TTL。命令备注peer 2.2.2.2 connect-interface lo1配置更新源peer 2.2.2.2 ebgp-max-hop 2配置T…

Holoens2开发报错记录02_通过主机获取彩色和深度数据流常见错误

01.E1696 E1696 无法打开源文件 “stdio.h” 解决方法&#xff1a; 更新一下SDK 1&#xff09;打开Visual Studio Installer&#xff0c;点击修改 2&#xff09;安装详细信息中自己系统对应的SDK&#xff0c;点击修改即可 02.WinError 10060 方法来源 解决方法&#xff1a…

labview关于计时器的使用

通过使用计时器函数&#xff0c;可以对采集和保存实现很好的控制&#xff0c;因为之前通过等待函数有出现程序卡死的情况&#xff0c;这里用到定时器函数来实现时间控制。 根据用户输入的采集频率&#xff0c;和采集的单位来确定是否上次采集的时间间隔减去这次计时器的时间是…

go语言环境下载与配置(Windows)

下载 Go下载 - Go语言中文网 - Golang中文社区 建议在D盘中创建文件夹安装到 D 盘 &#xff0c;方便进行管理&#xff0c;然后进行傻瓜式安装。 安装 验证安装 go version 安装成功 配置环境变量 winE --> 右击此电脑 --> 选择属性 --> 高级系统设置 --> 点击…