javaEE——Servlet

1.web开发概述

所谓web开发,指的是从网页中向后端程序发送请求,与后端程序进行交互

2.java后端开发环境搭建

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

3.服务器是什么?

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

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

4.Tomcat安装步骤

第一步: 安装服务器软件

官网地址: https://tomcat.apache.org/

第二步:安装JDK

需要配置两个环境变量


①path D:\work\Java\bin

 首先此电脑右键选择“属性”进入——点击“高级系统设置”

 点击“环境变量”

 在系统变量中选定Path路径,点击编辑

 

 点击新建,将自己安装的jdk里的bin的目录粘贴上去(以我的的目录为例: D:\work\Java\bin),点击确定,就OK啦!

②JAVA_HOME D:\work\Java

首先此电脑右键选择“属性”进入——点击“高级系统设置”

 点击“环境变量”

 在环境变量中,点击“新建”

 

 将自己安装的jdk中bin目录上一级的目录复制下来粘贴到变量值上(以我的的目录为例: D:\work\Java),变量名为JAVA_HOME,完成点击确定,就OK啦!

第三步:解压安装tomcat
   

在官网下载好tomcat安装包后进行解压,解压完成后在bin目录中找到startup.bat 文件,双击启动命令

 会弹出下面这样一个小黑框,打印出来很多日志,这样就说明服务器已经正常启动了

 访问方式:

①http://localhost:端口号
②http:127.0.0.1:端口号
③局域网ip:端口号

浏览器输入http:127.0.0.1:8080,就可以访问到这个服务器默认的管理程序了,如下图所示

注意!!!服务启动了以后,小黑框默认是不能关的,如果关了 ,就说明服务器关闭了


附:tomcat目录层次结构


5. 创建web后端项目

①创建javaweb项目

第一步:在IDEA中新建javaEE项目,自己设置一个名字,点击下一步

第二步: Version选择Java EE 8,Denpendencies中勾选Web Profile

第三步: 创建成功后,在pom.xml文件中找到junit依赖,选择后删除

第四步: 在文件目录中找到test删除

第五步: 在webapp目录下创建一个html文件,在body中随便写一句话用于测试,这样一个web后端项目就创建好了!

②发布web应用到服务器

需要发布web后端项目到tomcat中,在idea中集成tomcat(修改代码后,会自动将项目重新部署到tomcat中)

第一步:在顶部导航中,找到view—Appearance—Toolbar

第二步: 点击加号,在Add New Configuration 中找到Tomcat Server—Local

 

第三步:将HTTP  port修改为8088,JRE选择自己的JDK

​​​​​​

第四步:在Application server选择刚才解压的tomcat中bin目录上一级的地址 

第五步: 取消勾选After launch 

第六步:选择Deployment 把项目部署进来

点击加号,选择第一个Artifact

 选择dormServer:war,点击OK

 在下方的App;ication context中选定"_war"删除,最后点击OK

  

第七步:点击启动之后,在网站中输入127.0.0.1:8088/dormServer/index.html 进行访问(dormServer是项目名,index.html是刚才在webapp目录下创建一个html测试文件

 

出现我们刚才在html文件中输入的文字,这样就代表项目成功部署到了tomcat里啦!!!

6.Servlet概述

①概述

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

②Servlet的作用

● 接收用户发送的请求数据
● 调用其他的java程序来处理请求
● 根据处理结果,将结果响应给客户端

● 创建javaEE程序

7.Servlet创建和使用

①web.xml文件

● Web.xml文件为web应用的配置文件,它必须 放在web应用目录WEB-INF目录下
● Web.xml文件用于对 web应用下的web资源进行配置 ,服务器在 启动时会读取web.xml文件中的内容

②步骤

● 创建一个类继承javax.servlet.http包下的HttpServlet 这个类就是一个javaEE程序,在web.xml文件配置,向外提供一个访问地址,就可以在浏览器中访问,找到对应javaEE程序)
● 在web.xml文件中配置Servlet( 把我们开发的servlet程序注册到服务器,由服务器启动时加载,在第一次访问时,由服务器创建对象)
● 运行Servlet程序
● 通过浏览器访问http:localhost:8080/ 项目名/配置的url

Servlet配置

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

8.Servlet对象的生命周期

①创建:第一次访问Servlet程序时,由服务器创建

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

③服务:每次请求调用service()

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

9.http协议

什么是HTTP?

● 超文本传输协议 (HyperText Transfer Protocol)服务器传输超文本到本地浏览器的传送协议,是互联网上应用最为流行的一种网络协议,用于定义客户端浏览器和服务器之间交换数据的过程
● HTTP是一个基于TCP/IP通信协议来传递数据
● HTTP是一个属于应用层的协议,由于其简捷、快速的方式,适用于分布式超媒体信息系统

10.http请求

客户端连上服务器后,向服务器请求某个web资源,称之为客户端向服务器发送了一个http请求

①请求包括什么?

请求行,请求头,请求体 
●  请求行包含http请求方式,请求资源名称,http版本
●  请求头包含主机地址,以及客户端的一些环境信息,以键值对的形式传递
Host: 127.0.0.1:8088 请求的主机地址
Accept:text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8
浏览器能够处理的内容类型
Accept-Encoding: gzip, deflate, br 浏览器能够处理的压缩编码
Accept-Language: zh-CN,zh;q=0.9 浏览器当前设置的语言
User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like
Gecko) Chrome/69.0.3497.100 Safari/537.36 使用的浏览器和操作平台信息
Connection: keep-alive 浏览器与服务器之间连接的类型
●  请求体代表着浏览器在post请求方式中传递给服务器的参数,请求体中参数以键值形式传递,多个用&链接,服务器接收到后再解析
    username=admin&userpwd=123

②GET方式

● 超链接访问,默认是GET方式
● f orm提交,不指定method,默认为GET方式

③POST方式

● for m提交,指定method=“POST”

④Get方式与post方式的区别

● Get方式主要是从服务器获取信息;post主要是想服务器提交信息
● Get方式在通过URL提交数据,数据在URL中可以看到;POST方式,数据放置在请求体中提交
● GET方式提交的数据大小受限制一般1kb(不同浏览器也会有不同);而POST则没有此限制

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

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

相关文章

如何根据两个关键字查询报错日志的位置

要根据两个关键字查询报错日志的位置&#xff0c;在Linux中&#xff0c;你可以使用grep命令结合正则表达式&#xff08;regex&#xff09;来实现。grep命令允许你在文件中搜索匹配特定模式的行。 假设你有两个关键字“keyword1”和“keyword2”&#xff0c;并且你想找到同时包…

教学常用内容

容器 #include<bits/stdc.h> #define fi first #define se second #define pb push_back #define PII pair<int,int > #define int long long #define IOS std::ios::sync_with_stdio(false),cin.tie(0),cout.tie(0);using namespace std;const int N 1e610;vec…

深入解析HDFS:定义、架构、原理、应用场景及常用命令

引言 Hadoop分布式文件系统&#xff08;HDFS&#xff0c;Hadoop Distributed File System&#xff09;是Hadoop框架的核心组件之一&#xff0c;它提供了高可靠性、高可用性和高吞吐量的大规模数据存储和管理能力。本文将从HDFS的定义、架构、工作原理、应用场景以及常用…

【UML用户指南】-24-对高级行为建模-进程和线程

目录 1、概念 2、主动类 3、通信 4、同步 5、常用建模技术 5.1、对多控制流建模 5.2、对进程间通信建模 在UML中&#xff0c;可以将每一个独立的控制流建模为一个主动对象&#xff0c;它代表一个能够启动控制活动的进程或线程。 进程是一个能与其他进程并发执行的重量级…

2024新版大屏互动微信上墙源码大屏互动神器年会婚庆微现场3D签到

2024年大屏幕互动源码动态背景图和配乐素材搭建教程 php宝塔搭建部署活动现场大屏幕互动系统php源码&#xff0c;可以用来构建具有互动功能的大屏幕系统&#xff0c;为活动现场提供各种互动体验。 修复版的系统源码在原有功能的基础上&#xff0c;增加了更加完善的用户体验和稳…

【python学习】如何在一个python文件中调用另一个python文件的函数

在Python中&#xff0c;你可以通过import语句来调用另一个Python文件中的函数。假设你有两个Python文件&#xff1a;main.py 和 helper.py&#xff0c;并且你想要在main.py中调用helper.py中的函数。 首先&#xff0c;确保helper.py文件中有一个你可以调用的函数。例如&#x…

002-关于Geogebra软件的介绍及与MatLab的区别

为什么要学Geogebra&#xff1f; 因为和MatLab的科学计算相比&#xff0c;GeoGebra重点突出教学展示&#xff0c;对于教师、学生人群来讲再合适不过了&#xff0c;尤其是可以融入到PPT里边呈现交互式动画&#xff0c;想想听众的表情&#xff01;这不就弥补了看到PPT播放数学公…

GIT 基于master分支创建hotfix分支的操作

基于master分支创建hotfix分支的操作通常遵循以下步骤&#xff1a; 切换到master分支&#xff1a; 首先&#xff0c;确保你的工作区是最新的&#xff0c;并且你在master分支上。如果不在master分支&#xff0c;你需要先切换过去。 Bash git checkout master 拉取最新的master…

科研图片清晰化

科研图片清晰化方法包括图像类型与处理工具的选择、图像色彩模式设置、图像储存与导出格式等。在科研领域&#xff0c;尤其是在撰写和发表学术论文的过程中&#xff0c;清晰的科研图片是展示研究结果的重要部分。它能够帮助审稿人和读者更好地理解研究内容和结论&#xff0c;增…

STM32第十二课:ADC检测烟雾浓度(MQ2)

文章目录 需求一、MQ-2 气体传感器特点应用电路及引脚 二、实现流程1.开时钟&#xff0c;分频&#xff0c;配IO2.配置ADC的工作模式3.配置通道4.复位&#xff0c;AD校准5.数值的获取 需求实现总结 需求 使用ADC将MQ2模块检测到的烟雾浓度模拟量转化为数字量。 最后&#xff0c…

2.00004 优化器执行计划生成的流程是怎么样的?

文章目录 整体架构关键结构体PlannerInfo (pathnodes.h:195)PlannerGlobal (pathnodes.h:95)函数栈关键函数pg_plan_query (postgres.c:885)planner (planner.c:274)standard_planner (planner.c:287)subquery_planner (planner.c:628)整体架构 关键结构体 PlannerInfo (pathn…

Servlet_Web小结

1.web开发概述 什么是服务器&#xff1f; 解释一&#xff1a;服务器就是一款软件,可以向其发送请求,服务器会做出一个响应. 可以在服务器中部署文件,让他人访问 解释二&#xff1a;也可以把运行服务器软件的计算机也可以称为服务器。 web开发&#xff1a; 指的是从网页中向后…

MySQL-SQL优化Explain命令以及参数详解

前言 在MySQL优化的众多手段中&#xff0c;EXPLAIN命令扮演着至关重要的角色。它是数据库管理员和开发者手中的利器&#xff0c;用于分析SQL查询的执行计划。通过执行EXPLAIN&#xff0c;MySQL会提供一份详细的查询执行计划报告&#xff0c;这份报告揭示了查询将如何执行&…

【GIT】GIT服务器迁移了之后如何重新映射

最近我的一个GIT服务器镜像迁移了&#xff0c;伴随着ip地址也发生了变化。 经过实践&#xff0c;发现执行一下三步即可解决&#xff1a; 1、进入客户端版本管理后的源码文件夹&#xff1b; 2、执行&#xff1a; git remote -v 如果目录不对会提示&#xff1a; fatal: not…

2024年6月个人工作生活总结

title: 2024年6月个人工作生活总结 urlname: code-for-2024-06 tags: 代码积累知识总结 categories:我的程序代码 date: 2024-06-30 00:00:00 photos:gallery/tech/c2.jpg 本文为 2024年6月工作生活总结。 研发编码 编码和注释 因某些需要&#xff0c;重拾了2019年的工程代码…

Scala 循环

Scala 循环 Scala,作为一种多范式的编程语言,提供了丰富的方式来处理循环和迭代。在Scala中,除了传统的for和while循环外,还有更高级的函数式编程特性,如集合操作和高阶函数,这些都可以用来实现循环和迭代的任务。本文将详细介绍Scala中的循环机制,包括基本语法、高级用…

JUC工具类: Semaphore详解

Semaphore底层是基于AbstractQueuedSynchronizer来实现的。Semaphore称为计数信号量&#xff0c;它允许n个任务同时访问某个资源&#xff0c;可以将信号量看做是在向外分发使用资源的许可证&#xff0c;只有成功获取许可证&#xff0c;才能使用资源。立刀旁 目录 # 带着BAT大厂…

EDA 虚拟机 Synopsys Sentaurus TCAD 2016.03 下载

下载地址&#xff08;制作不易&#xff0c;下载使用需付费&#xff0c;不能接受的请勿下载&#xff09;&#xff1a; 链接&#xff1a;https://pan.baidu.com/s/1baw0IhmnFOKVkJMI3zkD_A?pwdcheo 提取码&#xff1a;cheo

【SQL】如何描述索引的分类

数据库中的索引种类多样&#xff0c;每种索引都有其特定的用途和特点。以下是常见的索引分类&#xff1a; 1. 单列索引 (Single-Column Index) 对单个列创建的索引。最基本的索引类型。 CREATE INDEX idx_column_name ON table_name (column_name);2. 多列索引 (Composite I…

联邦的基础配置

一、联邦的定义 联邦&#xff1a;在AS内部部署全互联的IBGP对等体可以很好解决IBGP路由传递的问题&#xff0c;但是扩展性低&#xff0c;大型网络中会带来沉重负担&#xff0c;针对此问题可以用路由反射器解决&#xff0c;也可以利用联邦解决&#xff0c;联邦也被称为联盟。大…