搭建servlet服务

news2024/10/6 0:33:13

目录

servlet的生命周期

配置tomcat环境

创建web后端项目

配置web.xml

http请求

get和post

其他请求

http响应


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

作用:

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

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

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

servlet的生命周期

1.实例化:构造方法:只被调用一次,只有第一次访问Servelt时或服务器启动时 创建Servlet实例

2.初始化:Init方法:只被调用一次,在Servlet实例创建好实例后立即执行, 用于执行一些初始化Servlet的操作。

3.服务:service方法:多次调用,每次请求都调用service方法,根据请求方式 调用doGet()或doPost()方法

4.消亡:destroy:只被调用一次,在服务器关闭时调用,执行一些操作

配置tomcat环境

在idea中配置:

1.

2.3.点击Deployment,点击加号,选中资源,导入

创建web后端项目

在idea中集成tomcat,并将项目部署到tomcat中,创捷servlet程序,继承HttpServlet,HttpServlet是javaEE中的一个类,我们的Servlet处理类必须继承此类,这样就具备了Servlet程序功能,启动服务器时,就会加载这些继承了HttpServlet的类。

配置web.xml

xml文件 html文件 都属于标记语言/标签,xml主要是用来在项目中存储配置信息的,有固定的格式,

web.xml文件是web项目中的配置文件,里面配置servlet,过滤器,....在服务器启动时,由tomcat加载读取里面的配置数据。

    <servlet>
        <servlet-name>loginServlet</servlet-name><!--定义servlet对象的名字-->
        <servlet-class>com.webback.servlet.LoginServlet</servlet-class>
        <!--
            配置servlet类地址, 在第一次或启动服务器时,由服务器通过反射机制创建次servlet对象制
            默次认是第一访问Servlet时创建对象
            还可以配置在启动时创建对象<load-on-startup>值>=0</load-on-startup>
        -->
    </servlet>

    <servlet-mapping>
        <!--
      为指定name的servlet配置一个供前端进行访问映射地址-->
        <servlet-name>loginServlet</servlet-name><!--找对应的Servlet-->
        <url-pattern>/login</url-pattern><!-- 映射地址,必须以 / 开头 -->
    </servlet-mapping>

http请求

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

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

请求体:代表着浏览器在post请求方式中传递给服务器的参数,请求体中参数以 键值形式传递, 多个用&链接,服务器接收到后再解析. username=admin&userpwd=12

请求和响应是Web交互最基本的模式,在Servlet中,用HttpServletRequest 来表示请求

HttpServletRequest :封装了请求的信息,可以从中获取任何请求信息

getParameter(name) //String 通过name获得值
getParameterValues //String[ ] 通过name获得多值

get和post

get:

超链接请求

地址栏直接访问是get

主要用于从服务器端获取数据

向服务器端传输数据量小,并且在地址栏会显示

post

表单提交post方式提交数据

主要用于前端想后端传输大量数据(可以上传文件)

数据存放在请求体中,相对安全  

其他请求

System.out.println(req.getMethod());
System.out.println(req.getRequestURI());
System.out.println(req.getScheme());
System.out.println(req.getServerName());//服务器自己的名字
System.out.println(req.getServerPort());
System.out.println(req.getProtocol());
System.out.println(req.getRemoteAddr());//客户端的ip
System.out.println(req.getRemotePort());//客户端端口

http响应

一个http响应代表服务器向客户端回送的数据,它包括:响应行,响应头,响应体。 响应行里包含了http协议版本,以及用于描述服务器对请求的处理结果 。

200:请求成功

302:请求重定向

400:语义有误,当前请求无法被服务器理解或请求参数有误

404:请求资源不存在,通常是路径写错了或者服务器资源删除了

500:服务内部错误(代码异常)

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

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

相关文章

Springboot开发常用注解

文章目录 1.RestController2.Data3.RequestMapping4.Builder 1.RestController RestController注解其实就是将 return 中的内容以 JSON字符串的形式返回客户端 controller的详解 2.Data Data详解 3.RequestMapping RequestMapping 4.Builder Builder

文件系统目录结构

1. 目录结构 linux的文件系统是采用级层式的树状目录结构&#xff0c;在此结构中的最上层是根目录/ &#xff0c;然后在此目录下再创建其他的目录。 在linux中&#xff0c;一切皆文件(Linux将所有的设备、文件、进程等都当做文件来处理) 2. 目录作用具体介绍 目录名解析/b…

访企聚力促创新:长安大学来访闪马智能

7月31日&#xff0c;长安大学运输工程学院院长葛颖恩教授、学院副书记李婷以及学办主任董彬一行来访闪马智能&#xff0c;闪马智能创始人兼CEO彭垚、城市交通行业总经理兼营销副总裁詹诚以及公共交通行业总经理熊天圣等出席了本次交流会。 长安大学运输工程学院院长葛颖恩教授…

软考考点之Mccabe度量计算及路径覆盖

软考考点之Mccabe度量计算及路径覆盖 [2023年上半年] 34、35、以下流程图中&#xff0c;至少需要(34)个测试用例才能覆盖所有路径。采用McCabe方法计算程序复杂度为(35) A&#xff0e;3B&#xff0e;4C&#xff0e;5D&#xff0e;6(35)A&#xff0e;2B&#xff0e;3C&#xf…

【框架类】—Vue3的生命周期

一、生命周期的相关函数 onBeforeMount 页面渲染之前 和 onMounted渲染之后 示例 <template><div class"test"><div ref"el">组件初始化</div></div> </template> <script> //按需引入所需方法 import { ref,…

sudo root命令不在sudoers文件中。此事将被报告。全网比较详细版本,解决报错问题步骤较多

我在使用个人用户zhang&#xff08;非root用户&#xff09;时&#xff0c;在执行其他命令时&#xff0c;使用sudo命令来执行的时候&#xff0c;需要验证当前用户的密码&#xff0c; 输入了之后&#xff0c;提示“zhang‘ 不在sudoers文件中&#xff0c;此事将被报告” 分析原…

JAVA设计模式----原型设计模式

文章目录 一、简介二、实现方式三、原型模式的注意事项浅拷贝与深拷贝浅拷贝深拷贝一、简介 定义:用原型实例指定创建对象的种类,并通过拷贝这些原型创建新的对象。 类型:创建类模式 类图: 原型模式主要用于对象的复制,它的核心是就是类图中的原型类Prototype。Protot…

eNSP:ibgp的破水平切割练习

实验要求&#xff1a; 拓扑展示&#xff1a; 命令操作&#xff1a; R1&#xff1a; <Huawei>sys [Huawei]sys r1 [r1]int g 0/0/1 [r1-GigabitEthernet0/0/1]ip add 12.1.1.1 24 [r1-GigabitEthernet0/0/1]int lo0 [r1-LoopBack0]ip add 1.1.1.1 24 [r1-LoopBack0]osp…

dingding机器人

“自定义机器人”只支持消息发送&#xff0c;自动回复需要“企业内部机器人” 消息发送 import requests import jsonres requests.post(https://oapi.dingtalk.com/robot/send?access_token036a339axxx,data json.dumps({"text": {"content":"h…

React UI组件库

1 流行的开源React UI组件库 1 material-ui(国外) 官网: Material UI: React components based on Material Design github: GitHub - mui/material-ui: MUI Core: Ready-to-use foundational React components, free forever. It includes Material UI, which implements Go…

【Hilog】鸿蒙系统日志源码分析

【Hilog】鸿蒙系统日志源码分析 Hilog采用C/S结构&#xff0c;Hilogd作为服务端提供日志功能。Client端通过API调用&#xff08;最终通过socket通讯&#xff09;与HiLogd打交道。简易Block图如下。 这里主要分析一下。Hilog的读、写、压缩落盘&#xff0c;以及higlog与android…

PIL报错:TypeError: Cannot handle this data type: (1, 1, 3), <f4

问题&#xff1a; mi_fgsm.py:101: DeprecationWarning: Starting with ImageIO v3 the behavior of this function will switch to that of iio.v3.imread. To keep the current behavior (and make this warning disappear) use import imageio.v2 as imageio or call image…

django boostrap html实现可拖拽的左右布局,鼠标拖动调整左右布局的大小或占比

一、实现的效果 最近需要在Django项目中,实现一个左右布局的html页面,页面框架使用的是boostrap。但这个布局不是简单的左右分栏布局,而是需要实现可以通过鼠标拖拽的方式动态调整左右两侧布局的大小和占比。效果大致如下: 一开始,页面分为左右两块布局: 鼠标放到中间的…

Stable Diffusion AI绘图教学

课程介绍下载 这门课程将教授学生使用Stable Diffusion AI绘图工具进行数据可视化和图形设计。学生将学习基本的绘图原理、数据分析技巧&#xff0c;以及如何使用Stable Diffusion AI创建高质量的图表和可视化作品。通过实践项目和案例研究&#xff0c;学生将提升绘图技能&…

基础篇-环境搭建

JDK安装 https://www.oracle.com/java/technologies/downloads/ 安装完成后&#xff0c;一直点下一步就行 打开控制面板输入cmd运行&#xff0c;控制台输入java -version。如果看到版本号就说明我们安装成功了 JDK的组成 1. JVM JAVA虚拟机&#xff0c;JAVA真正运行的地方 …

机器学习笔记 - 基于C++的​​深度学习 二、实现卷积运算

一、卷积 卷积是信号处理领域的老朋友。最初的定义如下 在机器学习术语中: I(…)通常称为输入 K(…)作为内核,并且 F(…)作为给定K的I(x)的特征图。 虑多维离散域,我们可以将积分转换为以下求和 对于二维数字图像,我们可以将其重写为: <

图像像素梯度

梯度 在高数中&#xff0c;梯度是一个向量&#xff0c;是有方向有大小。假设一二元函数f(x,y)&#xff0c;在某点的梯度有&#xff1a; 结果为&#xff1a; 即方向导数。梯度的方向是函数变化最快的方向&#xff0c;沿着梯度的方向容易找到最大值。 图像梯度 在一幅模糊图…

Python-OpenCV中的图像处理-直方图

Python-OpenCV中的图像处理-直方图 直方图统计直方图绘制直方图Matplotlib绘制灰度直方图Matplotlib绘制RGB直方图 使用掩膜统计直方图直方图均衡化Numpy图像直方图均衡化OpenCV中的直方图均衡化CLAHE 有限对比适应性直方图均衡化 2D直方图OpenCV中的2D直方图Numpy中2D直方图 直…

【Rust】Rust学习 第九章错误处理

Rust 将错误组合成两个主要类别&#xff1a;可恢复错误&#xff08;recoverable&#xff09;和 不可恢复错误&#xff08;unrecoverable&#xff09;。可恢复错误通常代表向用户报告错误和重试操作是合理的情况&#xff0c;比如未找到文件。不可恢复错误通常是 bug 的同义词&am…

Redis之缓存雪崩、缓存击穿、缓存穿透问题

文章目录 前言一、缓存雪崩1.1、原因分析2.2、常用解决方案 二、缓存击穿2.1、原因分析2.2、常用解决方案2.2.1、使用互斥锁2.2.2、逻辑过期方案2.3、方案对比 三、缓存穿透3.1、原因分析3.2、解决方案3.2.1、缓存空对象3.2.3、布隆过滤3.3、方案对比 总结 前言 本文谈谈Redis…