JavaEE(1):web后端开发环境搭建和创建一个Servlet项目

news2024/9/25 21:10:25

web后端(javaEE)程序需要运行在服务器的,这样前端才可以访问得到

 web后端开发:

服务器?

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

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

首先:

        要安装服务器软件

        1、安装Tomcat

        去官网下载:http://tomcat.apache.org

        2、安装JDK

        去官网下载:Java Downloads | Oracle

        

        配置两个环境变量

        第一种:PATH环境变量(bin目录)

        1.打开设置,找到系统里的系统信息,再点开高级系统设置

        

        

        2.再在第二个的系统变量中找到path并单击path后打开编辑

        

        3.然后点击新建将自己的jdk的路径目录(bin目录的上一级根路径)加到环境变量即可(一定要点应用按钮)

        

       第二种:JAVA_HOME环境变量(bin的根目录)

        1.还是按照上面步骤先找到环境变量

        2.在系统变量直接点击新建

        变量名就是:JAVA_HOME

        

        解压安装tomcat

 Tomcat的目录层次结构

        

        1.在bin目录中 双击 startup.bat文件启动Tomcat服务器

        2.在浏览器输入 http://localhost:端口号(初始值:8080)

           或http:127.0.0.1:端口号

           或局域网ip:端口号

        若出现此页面,安装完成!

其次:

       创建web后端项目

        1.创建javaWeb项目

        2.发布web应用到服务器

                发布web后端项目到tomcat中

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

        Servlet是Server Applet的简称,意思为用Java编写的服务器端的程序. 它运行在web服务器中,web服务器负责Servlet和客户的通信以及调用 Servlet方法。

         javaEE程序(Servlet)的作用:

                1.接收用户发送的请求数据

                2.调用其他的java程序来处理请求

                3.根据处理结果,将结果响应给客户端

创建javaEE程序

        创建一个类 继承 HttpServlet,我们这个类就是一个javaEE程序

        在web.xml文件配置,向外提供一个访问地址,就可以在浏览器中访问,找到相应的javaEE程序

四个要重写方法:

        1.无参构造方法,默认是存在,初始化创建的对象

           只被调用一次(始终只创建了一个对象),在第一次访问servlet程序由服务器创建执行

        2.init() 初始化 在构造方法执行完成后,立即被调用执行,完成一些servlet程序的初始化(例如,读取配置文件中的参数) 只执行一次

        3.service() 用来接收前端请求,为前端提供服务的

           每次前端发送的请求,都会调用service(),多次调用

           HttpServletRequest req:表示请求对象,前端提交过来所有的数据,都由服务器封装在此对象中。 HttpServletResponse resp:表示响应对象,用来向前端响应数据

        4.destroy() 在服务器关闭时,如果我们的程序想要执行某些操作,就可以在destroy方法中实现

        web.xml文件配置:

       <servlet>元素用于注册Servlet,它包含有两个主要的子元素:<servlet-name>和<servlet-class>,分别用于设置Servlet的注册名称和 Servlet的完整类名。 一个<servlet-mapping>元素用于映射一个已注册的Servlet的一个对外访问路径,它包含有两个子元素:<servlet-name>和<url-pattern>,分别用于指定 Servlet的注册名称和Servlet的对外访问路径。

        url-pattern配置模式:”/”代表当前web应用的根目录

Web.xml文件为web应用的配置文件,它必须放在web应用目录WEB-INF目录下。

Web.xml文件用于对web应用下的web资源进行配置,服务器在启动时会读取web.xml文件中的内容。

servlet生命周期

        创建(无参构造方法):

                第一次访问servlet程序时,由服务器创建

        初始化:

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

        服务:

                每次请求调用service()

        销毁:

                服务关闭时,会销毁servlet对象

                并且在销毁servlet对象时,会自动调用destroy(),执行一些最终操作

前端向后端发送http请求

        超链接、提交表单 都是发送http请求

http请求包含三部分:

        请求行:包含http请求方式,请求资源名称,http版本

        请求头:包含主机地址,以及客户端的一些环境信息,以键值对的形式传递.

        请求体:表单post方式提交的数据

请求分为:

        get请求:传少量数据,获得大量数据

                        传递的参数,在请求地址?后面 键=值&键=值

        post请求:用表单向后端携带大量数据的,不在地址中显示

Get方式与post方式的区别:

        Get方式主要是从服务器获取信息;POST方式主要是想服务器提交信息

        Get方式,在通过URL提交数据,数据在URL中可以看到;POST方式,数据放置在请求体中提交。

        GET方式提交的数据大小受限制一般1kb(不同浏览器也会有不同);而 POST方式则没有此限制。

过滤器:

        过滤器是javaEE规范中定义的一种技术,可以让请求到达目标servlet之前,先进入到过滤器中,在过滤器中统一进行一些拦截处理,当处理完成后,可以继续向后进行,到达目标servlet,如果配置了多个过滤器,也可以进入到下一个过滤器。

        作用:对服务器web资源进行拦截(权限控制,通过拦截资源进行权限控制,是否可以访问)

过滤器的使用场景:

        1.统一进行编码过滤

        2.权限验证

        3.跨域过滤

过滤器用来实现通用的功能,减少代码冗余,提高可维护性

一个过滤器可以配置给多个资源使用

一个资源也可以配置多个过滤器,按照配置顺序调用

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

MySQL必会知识精华2(了解基础篇)

我们的目标是&#xff1a;按照这一套资料学习下来&#xff0c;大家可以完成数据库增删改查的实际操作。轻松应对面试或者笔试题中MySQL相关题目 上篇文章我们先做一下MySQL学习的准备工作&#xff0c;如安装MySQL 服务&#xff0c;配置MySQL&#xff0c;连接MySQL。本篇文章注重…

大模型学习笔记 - LLM 之RAG

RAG RAG RAG SuveryRAG 简介RAG 范式的演变 1. 初级 RAG2. 高级 RAG3. 模块化的 RAG 介绍 RAG框架简述 检索技术文本生成增强技术简介 RAG 与 微调的区别RAG 模型评估解析RAG 研究的挑战与前景构建 RAG 系统的工具 在学习RAG中, 发现这个网站的内容特别好&#xff0c;也比较…

决策树算法:ID3与C4.5的对比分析

决策树是一种非常直观且易于理解的机器学习方法&#xff0c;被广泛应用于分类和回归任务中。在这篇文章中&#xff0c;我们将探讨两种经典的决策树算法&#xff1a;ID3与C4.5&#xff0c;并分析它们之间的区别。 一 算法概述 我们每天都做着各种形形色色的决策——周末怎么嗨…

普元EOS-微前端的base基座介绍

1 前言 微前端开发的时候要使用base基座。 这个base基座到底是什么&#xff1f; base基座能提供哪些功能&#xff1f; 本文将进行简单的介绍。 2 高开前端引用base基座 在高开页面引入base基座的语法如下&#xff1a; <script>import { BaseVue, AjaxUtil } from …

五、Centos7-安装Jenkins

目录 一、基础环境准备 1.安装JDK 2.安装Tomcat 二、安装Jenkins 1.配置Jenkins插件镜像源 2.问题&#xff1a;进入manager jenkins页面报错 3.配置Git 4.配置jdk 三、重新安装Jenkins 四、另一种Centos安装jenkins的方式--最终可用版 克隆了一个base的虚拟机&#x…

深度学习入门:循环神经网络------RNN概述,词嵌入层,循环网络层及案例实践!(万字详解!)

目录 &#x1f354; RNN 概述 1.1 循环神经网络 1.2 自然语言处理 &#x1f354; 词嵌入层 2.1 词嵌入层的使用 2.2 关于词嵌入层的思考 2.3 小节 &#x1f354; 循环网络层 3.1 RNN 网络原理 3.1.1 RNN计算过程 3.1.2 如何计算神经元内部 3.2 PyTorch RNN 层的使用…

机器学习(前六关大总结)生动讲解+代码实例

老粉都知道&#xff08;还不点关注&#xff09;我这机器学习已经有几天没更了&#xff0c;主要是最近忙碌比赛&#xff0c;所以时间紧张 那么我为大家总结一下&#xff0c;之前的机器学习知识点&#xff0c;让大家更好了解机器学习领域。 在此阅读前&#xff0c;感谢大家的关…

HTMl标签;知识回忆;笔记分享;

HTML标签是用于定义和组织网页内容的基础构建块。每个标签都有特定的作用。 一&#xff0c;标准结构标签&#xff1a; HTML文档标准结构&#xff1a; <html><head></head><body>this is my second html... </body> </html> 【1】htm…

代码随想录 | day 15 | 二叉树part03

完全二叉树的节点个数 方法一&#xff1a;可以用递归法遍历一遍左子树和右子树的个数之和再加1等于全部节点个数 class Solution { public:int getcount(TreeNode* cur){if(curNULL) return 0;int leftcount getcount(cur->left);int rightcount getcount(cur->right…

Python3.11二进制AI项目程序打包为苹果Mac App(DMG)-应用程序pyinstaller制作流程(AppleSilicon)

众所周知&#xff0c;苹果MacOs系统虽然贵为Unix内核系统&#xff0c;但由于系统不支持N卡&#xff0c;所以如果想在本地跑AI项目&#xff0c;还需要对相关的AI模块进行定制化操作&#xff0c;本次我们演示一下如何将基于Python3.11的AI项目程序打包为MacOS可以直接运行的DMG安…

90. UE5 RPG 实现技能的装配

在上一篇里&#xff0c;我们实现了在技能面板&#xff0c;点击技能能够显示出技能的相关描述以及下一级的技能的对应描述。 在这一篇里&#xff0c;我们实现一下技能的装配。 在之前&#xff0c;我们实现了点击按钮时&#xff0c;在技能面板控制器里存储了当前选中的技能的相关…

企业高性能web服务器(nginx)

目录 Web服务器基础介绍 正常情况下的单次web服务器访问流程 Apache 经典的 Web服务端 Apache prefork 模型 Apache work模型 Apache event模型 服务端的I/O流程 服务器的I/O 磁盘I/O 网络I/O 网络I/O处理过程 I/O模型 I/O模型相关概念 同步/异步 阻塞/非阻塞 网…

Ant-Design-Vue快速入门+排坑全攻略:打造炫酷Vue应用的s实用指南!

Ant-Design-Vue 是一个基于 Vue.js 的高质量 UI 组件库&#xff0c;适用于企业级后台产品的快速开发。下面将提供一份快速上手指南&#xff0c;并分享一些常见的“坑”和解决方案。 一、Ant-Design-Vue 快速上手指南 1. 安装与引入 确保安装了 Node.js&#xff08;推荐使用最新…

数据结构基础详解(C语言): 栈与队列的详解附完整代码

数据结构 栈 栈的核心重点&#xff1a; 栈是只能从表尾插入和删除的数据结构。 栈的顺序存储结构由两部分组成&#xff0c;top指针和数组。 链栈其实本质就是单链表头插法 文章目录 数据结构 栈1.栈的基本概念1.1 栈的常用操作 2.栈的存储结构2.1 栈的顺序存储结构2.1.1 栈的定…

环境配置1-MobaXterm服务器中Anaconda、Pytorch的安装

①登录 Login as 输入密码时密码不显示&#xff0c;正常输入即可 ②进入指定的下载目录 出现类似界面后&#xff0c;键盘操作Ctrlc即可进行输入 cd / …….(要下载到的目录名称)/ Anaconda的安装 ①输入wget https://repo.anaconda.com/archive/Anaconda3-2022.10-Linux…

如何M3U8视频切片保存到本地,见过视频被别人拿走了吗?

一、数据来源分析 1.明确需求 网址:https://v.qq.com/x/cover/mzc002006n62s11/e0045s2g2eg.html 数据&#xff1a;视频 2.抓包分析 F12 刷新网站 搜索关键字找到对应的数据位置 M3U8 https://vd6.l.qq.com/proxyhttp 二、代码实现步骤 发送请求 …

Linux磁盘操作之df命令

Linux使用df命令&#xff0c;可以查看系统中每个文件系统的总容量、已使用空间、可用空间和使用率。这对于了解磁盘空间的使用情况以及判断是否需要清理或扩展磁盘空间非常有用。 参数说明 df是一个用于显示磁盘空间使用情况的命令&#xff0c;df是disk free的缩写&#xff0…

Kafka事件(消息、数据、日志)的存储

1、查看有关kafka日志配置文件的信息 2、查看kafka全部主题的日志文件 3、查看每个主题的日志文件 4、__consumer_offsets-xx文件夹的作用 package com.power;public class Test {public static void main(String[] args) {int partition Math.abs("myTopic".hashCo…

穿越时光的经典:从LeNet到ResNet,机器学习中的CNN架构进化史

在机器学习的浩瀚星空中&#xff0c;卷积神经网络&#xff08;Convolutional Neural Networks, CNNs&#xff09;无疑是最为耀眼的星辰之一&#xff0c;它们以其卓越的图像处理能力&#xff0c;在计算机视觉领域书写了无数辉煌篇章。从最初的简单架构到如今复杂而高效的模型&am…

嵌入式UI开发-lvgl+wsl2+vscode系列:9、控件(Widgets)(二)

一、前言 接下来我们总结第二部分的控件。 二、示例 1、image&#xff08;图像&#xff09; 1.1、示例1 #include "../../lv_examples.h" #if LV_USE_IMAGE && LV_BUILD_EXAMPLESvoid lv_example_image_1(void) {LV_IMAGE_DECLARE(img_cogwheel_argb);lv…