当前位置: 首页 > news >正文

Web后端开发概述环境搭建项目创建servlet生命周期

Web开发概述

web开发指的就是网页向后再让发送请求,与后端程序进行交互

web后端(javaEE)程序需要运行在服务器中

这样前端才可以对其进行进行访问

什么是服务器?

解释1:

服务器就是一款软件,可以向其发送请求,服务器会做出一个响应.可以在服务器中部署文件,让他人访问

解释2:

也可以把运行服务器软件的计算机也可以称为服务器

web交互流程图如下:

在这里插入图片描述

web服务器指的是驻留在因特网上某种类型计算机的程序

可以向浏览器等web客户端提供文档,也可以放置网站文件,让全世界哦浏览;它是一个容器,是一个链接用户与程序之间的中间件

web服务器有很多,流行的web服务器有Tomcat,WebSphere,WebLogic,Jboss

在小型的应用系统或者有特殊需求的系统重视,可以使用一个免费的Web服务器:Apache的Tomcat,该服务器支持全部JSP以及Servlet规范

APacha软件基金会(Apache Software Foundation)是专门为运作一个开源软件项目的Apache的团体提供支持的非盈利性组织

Web开发环境搭建

服务器软件安装

Tomcat

Tomcat是一个基于Java的HTTP服务器,它是Sun通过Java Community Process开发并用servlet和JavaServer Page(JSP)技术的正式参考实现。Tomcat的安装和配置都需要一定的步骤,但是在Eclipse集成环境下,可以更加方便地进行开发和调试

首先到官网下载tomcat安装包

Tomcat官方站点:http://tomcat.apache.org

安装JDK

配置环境变量

首先打开环境变量页面

在这里插入图片描述

新建一个JAVA_HOME系统变量

在这里插入图片描述

将JAVA_HOME的路径设置为bin的上一级路径

若是没配置过Path中的java\bin路径

则需要打开Path

在这里插入图片描述

将java的bin路径配置在其中

在这里插入图片描述

解压Tomcat压缩文件
Tomcat文件结构

在这里插入图片描述

在这里插入图片描述

在Tomcat文件中的bin目录中 双击startup.bat命令启动

在这里插入图片描述

出现这个页面就代表启动成功

在这里插入图片描述

访问

自己的ip地址 :8080

在这里插入图片描述

更改启动端口地址

打开conf文件夹

在这里插入图片描述

打开server.xml文件

在这里插入图片描述

找到该区域,将port改为想要的端口号

在这里插入图片描述

创建并发布web项目

在idea中集成Tomcat(修改代码后,会自动将项目重新部署到Tomcat中)

首先创建一个javaEE项目

在这里插入图片描述

勾选web profile选项 命名创建

在这里插入图片描述

创建完成后需要配置Tomcat

打开configurations页面,选择Tomcat中的local,在右边文件夹中选择Tomcat文件里bin的上一级,并对该配置进行改名,取消勾选After launch

在这里插入图片描述

在这里插入图片描述

创建完成后只需要点击绿色三角形就能启动

在这里插入图片描述

重写java中的方法

在java文件夹中创建包,在包中创建一个类继承HttpServlet

在这里插入图片描述

/*
创建一个类 继承HttpServlet ,这个类就是一个javaEE程序
在web.xml文件配置,想歪提供一个访问地址,就可以在浏览器中访问,找到对应的程序
*/
public class DemoServlet extends HttpServlet {/*
无参构造方法,默认是存在,初始化创建的对象
只被调用一次(始终只创建一个对象),在第一次访问servlet程序由服务器创建执行
*/public  DemoServlet(){System.out.println("无参构造方法");}/*init()初始化,在构造方法执行完成后,立即被调用执行完成一些servlet程序的初始化(例如,读取配置文件中参数)也是只执行一次init方法在没有需要初始化操作时,可以不用重写,服务器会调用父类中的init方法*/@Overridepublic void init(ServletConfig config) throws ServletException {System.out.println("init");}/*service()用来接受前端请求,为前端提供服务每次前端发送的请求都会调用service(),多次调用HttpServletRequest  rea: 表示请求对象,前端提交过来所有的数据都由服务器封装在此对象中HttpServletResponse resp : 表示相应对象,用来向前端相应数据*/@Overrideprotected void service(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {System.out.println("service");}/*destroy(),当服务器关闭的时候.如果程序想要最终执行某些操作,就可以在destroy方法中实现在没有最终执行的一一些操作时,也可以不用重写,但是服务器会调用父类中空的destroy方法*/@Overridepublic void destroy() {System.out.println("destory");}}

servlet对象的生命周期

servlet对象在第一次访问servlet程序时由服务器创建

初始化阶段:在构造方法执行完成后,调用init方法执行一些初始化操作

服务阶段:每一次请求调用service方法

销毁阶段:服务器关闭时,销毁servlet对象,并且在销毁对象时会自动调用destroy方法,执行一些最终操作


之后还需要在webapp中的WEB-INF文件夹里打开web.xml

配置servlet程序和访问地址

在这里插入图片描述

   <!--.xml文件:ml结尾,是一种标记语言,设计的目的是用来在项目中存储配置信息的,制定好可以使用那些标签即可web.xml文件:存储web后端项目配置信息,在服务器启动时由服务器加载读取的--><!-- 配置servlet程序,把我们开发的servlet程序注册对服务器,有服务器启动时加载,在第一次访问时,由服务器创建对象--><servlet><servlet-name>demo</servlet-name>--> <!-- 定义对象名  --><servlet-class> com.ffyc.dormServer.web.DemoServlet</servlet-class>  <!-- 注册servlet程序 --><init-param>   <!-- 向servlet中配置一些参数 --><param-name>count</param-name><param-value>10</param-value></init-param></servlet><!--为servlet配置访问地址--><servlet-mapping><servlet-name>demo</servlet-name>  <!-- 为指定name的servlet程序配置访问地址 --><url-pattern>/demo</url-pattern> <!-- 配置的供额外 --></servlet-mapping>

注意,在配置servlet访问地址时,url-pattern内部的地址前需要加/

配置完成后访问直接用

ip地址:端口/项目名/demo(访问地址)

此时打开控制台就会发现调用了之前重写的方法

在这里插入图片描述

相关文章:

Web后端开发概述环境搭建项目创建servlet生命周期

Web开发概述 web开发指的就是网页向后再让发送请求,与后端程序进行交互 web后端(javaEE)程序需要运行在服务器中 这样前端才可以对其进行进行访问 什么是服务器? 解释1: 服务器就是一款软件,可以向其发送请求,服务器会做出一个响应.可以在服务器中部署文件&#xff0c;让…...

Java 位运算详解

位运算是一种直接在二进制位上进行操作的方式。位运算符包括按位与 (&)、按位或 (|)、按位异或 (^)、按位非 (~)、左移 (<<)、右移 (>>) 和无符号右移 (>>>)。这些操作符用于操作整型数据类型&#xff0c;如 int 和 long。 一、按位与 (&) 按位…...

智能体实战:开发一个集成国内AI平台的GPTs,自媒体高效智能助手

文章目录 一&#xff0c;什么是GPTs二&#xff0c;开发GPTs1&#xff0c;目标2&#xff0c;开发2.1 打开 GPTS&#xff1a;https://chat.openai.com/gpts2.2 点击 Create 创建一个自己的智能体 2.3 配置GPTs2.4 配置外挂工具2.4.1 配置Authentication-授权2.4.1.1 生成语聚AI的…...

完美世界|单机版合集(共22个版本)

前言 我是研究单机的老罗&#xff0c;今天给大家带来的是完美世界的单机版合集&#xff0c;一共22个版本。本人亲自测试了一个版本&#xff0c;运行视频如下&#xff1a; 完美世界|单机版合集 先看所有的版本的文件&#xff0c;文件比较大&#xff0c;准备好空间&#xff0c;差…...

Jenkins的一些记录

设置环境变量 在 Jenkins 流水线中&#xff0c;取决于使用的是声明式还是脚本式流水线&#xff0c;设置环境变量的方法不同。 声明式流水线支持 environment 指令&#xff0c;而脚本式流水线的使用者必须使用 withEnv 步骤。 pipeline {agent anyenvironment { CC clang}stag…...

讲讲js中的prototype和__proto__

在Javascript中&#xff0c;prototype和__proto__是两个重要的概念&#xff0c;在对象的原型链中扮演重要的角色。 prototype prototype是js函数的内置属性&#xff0c;每个函数都有一个prototype属性&#xff0c;它是一个指针&#xff0c;指向一个对象&#xff08;原型对象&a…...

JavaScript的学习之DOM的查询(一)

一、获得元素 通过document对象调用&#xff1a; getElementById()&#xff1a;通过id属性获取一个元素节点对象getElementsByTagName()&#xff1a;通过标签名获取一组元素节点对象getElementsByName()&#xff1a;通过name属性来获取一组元素节点对象 核心学习代码 <scrip…...

充电宝哪个品牌比较好一点?多维度实测西圣、绿联、倍思充电宝!

在这个快节奏的时代&#xff0c;智能手机已成为我们日常生活不可或缺的一部分&#xff0c;而充电宝作为其能量补给站&#xff0c;重要性不言而喻。面对市场上琳琅满目的充电宝品牌与型号&#xff0c;如何挑选一款既实用又高效的充电伴侣&#xff0c;成为了许多消费者的难题。今…...

ubuntu安装QT

以QT5.15.14为例 下载地址&#xff1a;Index of /archive/qt 安装步骤&#xff1a; 解压qt-everywhere-src-5.15.14运行&#xff1a; cd qt-everywhere-src-5.15.14 mkdir build cd build ../configure -prefix /opt/qt5.15.14 -opensource -confirm-license make -j16 sudo…...

DataGrip 2024 po for Mac 数据库管理工具解

Mac分享吧 文章目录 效果一、下载软件二、开始安装1、双击运行软件&#xff08;适合自己的M芯片版或Intel芯片版&#xff09;&#xff0c;将其从左侧拖入右侧文件夹中&#xff0c;等待安装完毕2、应用程序显示软件图标&#xff0c;表示安装成功3、打开访达&#xff0c;点击【文…...

《C++ Primer》导学系列:第 13 章 - 拷贝控制

13.1 拷贝、赋值与析构函数 拷贝控制是C++中类设计的重要组成部分,用于管理对象的复制、赋值和销毁过程。理解并正确实现拷贝控制函数(拷贝构造函数、拷贝赋值运算符和析构函数)对于编写健壮和高效的C++程序至关重要。 13.1.1 拷贝构造函数 拷贝构造函数用于创建对象的副…...

c++ 图论2 深度优先算法和广度优先算法

修改一下深度优先算法和广度优先算法&#xff0c;标出每一个节点相对于遍历起始位置的层级&#xff0c;遍历起始起点为第一层&#xff0c;和第一层相连的节点为第二层&#xff0c;以此类推 定义一个新的结构 struct NodeWithLevel {TreeNode* node;int level;NodeWithLevel(T…...

【Qt】初识QtQt Creator

一.简述Qt 1.什么是Qt Qt 是⼀个 跨平台的 C 图形⽤⼾界⾯应⽤程序框架 。它为应⽤程序开发者提供了建⽴艺术级图形界⾯所需的所有功能。它是完全⾯向对象的&#xff0c;很容易扩展。Qt 为开发者提供了⼀种基于组件的开发模式&#xff0c;开发者可以通过简单的拖拽和组合来实现…...

Android 11.0 修改系统显示大小导航栏消失

Android 11.0 修改系统显示大小导航栏消失 1.显示大小设置为大时&#xff0c;导航栏图标不显示。 设置为大&#xff0c;较大&#xff0c;最大时&#xff0c;导航栏图标不显示。 2.开始怀疑是导航栏被隐藏了&#xff0c;各种折腾无效。 3.发现&#xff1a; frameworks/base/pa…...

RocketMQ源码学习笔记:Producer启动流程

这是本人学习的总结&#xff0c;主要学习资料如下 马士兵教育rocketMq官方文档 目录 1、Overview1.1、创建MQClientInstance1.1.1、检查1.1.1、MQClientInstance的ID 1.2、MQClientInstance.start() 1、Overview 这是发送信息的代码样例&#xff0c; DefaultMQProducer produ…...

Node.js 和浏览器环境中都使用 WebSocket

使用WebSocket为什么不适配双端 浏览器环境本身就支持 WebSocket&#xff0c;直接使用 JavaScript 内置的 WebSocket 对象来建立连接。 Node中本身并没有内置 WebSocket 协议的支持&#xff0c;所以需要使用第三方库 ws来实现 WebSocket 功能。 一. 使用跨平台 WebSocket 库 …...

css美化滚动条样式

效果展示 实现 滚动条宽&#xff0c;高度 /* 整体滚动条 */ ::-webkit-scrollbar {width: 10px; }/* 滚动条轨道 */ ::-webkit-scrollbar-track {background-color: #ffffff;border-radius: 6px; }/* 滚动条滑块 */ ::-webkit-scrollbar-thumb {background-color: #888;borde…...

由浅入深,走进深度学习(补充篇:转置卷积和FCN)

本期内容是针对神经网络层结构的一个补充&#xff0c;主要内容是&#xff1a;转置卷积和全连接卷积网络 相关内容&#xff1a; 由浅入深&#xff0c;走进深度学习&#xff08;2&#xff09;_卷积层-CSDN博客 由浅入深&#xff0c;走进深度学习&#xff08;补充篇&#xff1a…...

Linux基础篇——目录结构

基本介绍 Linux的文件系统是采用级层式的树状目录结构&#xff0c;在此结构中的最上层是根目录"/"&#xff0c;然后在根目录下再创建其他的目录 在Linux中&#xff0c;有一句经典的话&#xff1a;在Linux世界里&#xff0c;一切皆文件 Linux中根目录下的目录 具体的…...

星际编码:Swifter.Json,.NET宇宙中的数据处理新星

概述 在数字化的星辰大海中&#xff0c;数据是宇宙的通用语言。在.NET这一广袤的星系中&#xff0c;JSON作为信息交换的媒介&#xff0c;扮演着至关重要的角色。今天&#xff0c;我们要探索的是一颗新星——Swifter.Json&#xff0c;一个功能全面且性能卓越的JSON序列化和反序列…...

ssc377d修改flash分区大小

1、flash的分区默认分配16M、 / # df -h Filesystem Size Used Available Use% Mounted on /dev/root 1.9M 1.9M 0 100% / /dev/mtdblock4 3.0M...

渲染学进阶内容——模型

最近在写模组的时候发现渲染器里面离不开模型的定义,在渲染的第二篇文章中简单的讲解了一下关于模型部分的内容,其实不管是方块还是方块实体,都离不开模型的内容 🧱 一、CubeListBuilder 功能解析 CubeListBuilder 是 Minecraft Java 版模型系统的核心构建器,用于动态创…...

SpringBoot+uniapp 的 Champion 俱乐部微信小程序设计与实现,论文初版实现

摘要 本论文旨在设计并实现基于 SpringBoot 和 uniapp 的 Champion 俱乐部微信小程序&#xff0c;以满足俱乐部线上活动推广、会员管理、社交互动等需求。通过 SpringBoot 搭建后端服务&#xff0c;提供稳定高效的数据处理与业务逻辑支持&#xff1b;利用 uniapp 实现跨平台前…...

ETLCloud可能遇到的问题有哪些?常见坑位解析

数据集成平台ETLCloud&#xff0c;主要用于支持数据的抽取&#xff08;Extract&#xff09;、转换&#xff08;Transform&#xff09;和加载&#xff08;Load&#xff09;过程。提供了一个简洁直观的界面&#xff0c;以便用户可以在不同的数据源之间轻松地进行数据迁移和转换。…...

在Ubuntu24上采用Wine打开SourceInsight

1. 安装wine sudo apt install wine 2. 安装32位库支持,SourceInsight是32位程序 sudo dpkg --add-architecture i386 sudo apt update sudo apt install wine32:i386 3. 验证安装 wine --version 4. 安装必要的字体和库(解决显示问题) sudo apt install fonts-wqy…...

「全栈技术解析」推客小程序系统开发:从架构设计到裂变增长的完整解决方案

在移动互联网营销竞争白热化的当下&#xff0c;推客小程序系统凭借其裂变传播、精准营销等特性&#xff0c;成为企业抢占市场的利器。本文将深度解析推客小程序系统开发的核心技术与实现路径&#xff0c;助力开发者打造具有市场竞争力的营销工具。​ 一、系统核心功能架构&…...

零知开源——STM32F103RBT6驱动 ICM20948 九轴传感器及 vofa + 上位机可视化教程

STM32F1 本教程使用零知标准板&#xff08;STM32F103RBT6&#xff09;通过I2C驱动ICM20948九轴传感器&#xff0c;实现姿态解算&#xff0c;并通过串口将数据实时发送至VOFA上位机进行3D可视化。代码基于开源库修改优化&#xff0c;适合嵌入式及物联网开发者。在基础驱动上新增…...

FFmpeg avformat_open_input函数分析

函数内部的总体流程如下&#xff1a; avformat_open_input 精简后的代码如下&#xff1a; int avformat_open_input(AVFormatContext **ps, const char *filename,ff_const59 AVInputFormat *fmt, AVDictionary **options) {AVFormatContext *s *ps;int i, ret 0;AVDictio…...

webpack面试题

面试题&#xff1a;webpack介绍和简单使用 一、webpack&#xff08;模块化打包工具&#xff09;1. webpack是把项目当作一个整体&#xff0c;通过给定的一个主文件&#xff0c;webpack将从这个主文件开始找到你项目当中的所有依赖文件&#xff0c;使用loaders来处理它们&#x…...

Element-Plus:popconfirm与tooltip一起使用不生效?

你们好&#xff0c;我是金金金。 场景 我正在使用Element-plus组件库当中的el-popconfirm和el-tooltip&#xff0c;产品要求是两个需要结合一起使用&#xff0c;也就是鼠标悬浮上去有提示文字&#xff0c;并且点击之后需要出现气泡确认框 代码 <el-popconfirm title"是…...