Servlet学习--从概述到Cookie

news2024/10/22 23:10:12

用户通过浏览器访问服务器并发送请求,服务器中有动态资源
动态资源:
逻辑性
依赖于服务器才能运行,tomcat执行它(需要遵守一定的规则,在java中就是接口,也就是servlet)
servlet是一个小的Java程序,运行在服务器上。
要做的事就是自定义一个类,实现servlet接口,复写其中的方法,被tomcat识别后运行。

在idea中创建新项目,复写方法,在web.xml配置servlet,如下:

helloServlet
com.example.mydemo.HelloServlet

//这一段就是web的名称

helloServlet
/hello

//这是web的访问路径。
servlet执行原理:
1.当服务器接收到客户端浏览器的请求后,会解析请求URL(统一资源定位器)路径,获取访问的servlet路径。
2.查找web.xml文件,是否有对应的标签内容。
3.如果有,就找到相应的的全类名
4.tomcat会将字节码文件加载进内存,并且创造其对象。
5.调用方法。
servlet的生命周期,在调用servlet接口时,会重写五个方法,每一个方法有不同的作用。
代码:
public class ServletDemo2 implements Servlet {
@Override
public void init(ServletConfig servletConfig) throws ServletException {
//初始化方法,在servlet被 创建时执行,只会执行一次。
}

@Override
public ServletConfig getServletConfig() {
    return null;

//获取ServletConfig对象
}

@Override
public void service(ServletRequest servletRequest, ServletResponse servletResponse) throws ServletException, IOException {

//每次servlet被访问时执行,执行多次。
}

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

//获取servlet的一些信息。
}

@Override
public void destroy() {

//销毁方法,在服务器被销毁时被执行,只执行一次。
}
}
生命周期:
1.被创建。init方法
默认情况下,第一次被访问时,servlet被创建
可以配置执行servlet的创建时机,第一次被访问时创建,的值为负数
在服务器启动时被创建的值为0或是正数。
如果init方法只被执行一次,说明servlet在内存中只有一个对象
多个用户同时访问时,可能存在线程安全问题。
尽量不要在servlet中定义成员变量。即使定义了,也不要修改值。

2.提供服务
3.被销毁
只有当服务器被正常销毁时,才会执行destroy方法。destroy在服务器被销毁之前执行完毕。

1.web软件架构
C/S:客户端/服务器端
B/S:浏览器端/服务器端
2.资源分类
1.静态资源(可以直接被浏览器解析)
2.动态资源(被访问时,首先转换为静态资源)

网络通信三要素:
1.IP:电子设备在互联网中的唯一标识
2.端口:应用程序在计算机中的唯一标识(0-65536)
3.传输协议:规定数据传输的规则

urlpartten配置webservlet里是路径,可以访问到的路径

是换行键

HTTP协议:
超文本传输协议
定义了客户端和服务器端通信时,发送数据的格式。
特点:基于1.TCP/IP协议的高级协议
2.默认端口号:80
3.基于请求/响应模型的 一次请求对应一次响应
4.无状态的协议,每次请求之间相互独立,不能交互数据
HTTP规定的数据格式
请求消息数据格式:
1.请求行
请求方式 请求URL 请求协议/版本
GET /login.html HTTP/1.1

请求方式:HTTP中有7种请求方式,常用的有两种
1.GET:请求参数在请求行中,在URL后,请求的URL长度有限制
2.POST:请求参数在请求体中,请求的URL长度没有限制,安全系数较GET较高

2.请求头
通常形式就是(请求头:)这样的形式
常见的请求头:
1.HOST访问主机
2.USER-Agent:浏览器告诉服务器,浏览器的版本
3.Referer:告诉服务器。当前的请求从哪 里来
作用有两个:1.防盗链 2.统计工作

3.请求空行
4.请求体

ServletRequst请求消息对象,request和response对象的原理、
1.TOMCAT会根据请求URL中的资源路径,创建类对应的对象
2.tomcat服务器会会创建request和response对象,request对象会封装请求消息数据。
3.tomcat将request和response两个对象传递给service方法,并且调用service方法。
4.我们可以根据request对象获取请求消息数据,通过response对象设置响应消息数据。
5.服务器在给浏览器做出响应之前,会从response对象中拿程序员设置的响应消息数据。

request作用功能:
1.获取请求行数据
请求方式 请求URL 请求协议/版本
获取请求方式有一个方法:
String GetMethod()
()获取虚拟目录:
getContextPath()
获取Servlet路径:
String getServletpath()
获取get方法的请求参数:
String getQueryString()
(
)获取URI
String getRequestURI()
String getRequestURL()
获取协议版本
String getProtocol()HTTP1.1
获取客户机的IP地址
String getRemoteAddr()

URL统一资源定位器
URI统一资源标识符
2.获取请求头数据
getHeader(String name)通过请求头的名称来获取请求头的值
3.获取请求体数据

其他作用:
获取请求参数通用的方式:
String getParameter(String name)可以根据name来识别这个参数的值。
String[] getParameterValues(String name)
请求转发:
共享数据
获取ServletContext

组件关联关系:
请求转发:forward:将客户端的请求转发给同一个应用程序中的其他web组件
请求重定向:redirect:将客户端的请求重定向到其他任意的URL上,表明该次请求响应流程已完成,返回返回一个相应给客户端,客户端根据响应重新发起一次新的请求,不使用之前的Request对象。
页面包含:include:
会话跟踪:就是一系列维持web应用中客户端和服务端会话状态的编程技术。
不去修改协议的前提下,解决一系列办法
URL重写:安全性低,操作麻烦
隐藏域
客户端保存信息:Cookies
服务端保存信息

使用cookies实现会话跟踪:
Cookie是一个对象,内容主要包括以Key-value形式保存的token信息,作为HTTP1请求头的一部分,传输由HTTP协议控制,最终保存在浏览器中

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

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

相关文章

Standard IO

为了提高可移植性,将通用IO接口经过再封装就形成了标准IO,标准IO不仅适用于Unix环境,也兼容非Unix环境,这也是为什么说我们应该尽可能的使用标准IO,通用IO通过文件描述符fd来与文件交互,为了以示区分&#…

element plus e-table表格中使用多选,当翻页时已选中的数据丢失

摘要: 点击第一页选中两个,再选择第二页,选中,回到第一页,之前选中的要保留! element ui table 解决办法: :row-key“getRowKeys” (写在el-table中) methods中声明 ge…

多一DY4100数字式接地电阻测试仪使用测量方法

接地电阻二线法测量步骤 1、找出一套简易测试线,一根红色两插头线和一根短绿线; 2、找出一根辅助地钉,距离被测接地桩/扁铁约五米远整根打下去; 3、绿线插头接仪器E孔(绿色孔),夹子夹需测的接…

ArcGIS002:软件自定义设置

摘要:本文详细介绍安装arcgis10.2后软件自定义设置内容,包括工具条的启用、扩展模块的启用、如何加载项管理器、快捷键设置、样式管理器的使用以及软件常规设置。 一、工具条的启用 依次点击菜单栏【自定义】->【工具条】,根据工作需求勾…

医院信息化与智能化系统(5)

医院信息化与智能化系统(5) 这里只描述对应过程,和可能遇到的问题及解决办法以及对应的参考链接,并不会直接每一步详细配置 如果你想通过文字描述或代码画流程图,可以试试PlantUML,告诉GPT你的文件结构,让他给你对应的…

【漏洞修复/安全补丁】5.4之前版本通过api/products接口进行sql注入的问题

5.4之前版本,会使用api/products接口的selectId参数进行sql注入 修复办法 1、修改crmeb/app/api/controller/v1/store/StoreProductController.php文件中的lst方法里面的接收参数,修改成下图 如果你的版本没有coupon_category_id参数的话,…

No.19 笔记 | WEB安全 - 任意文件操作详解 part 1

1. 任意文件上传漏洞基础 什么是文件上传功能? 在网站和应用中,我们经常会看到允许用户上传文件的功能,比如: 更换头像:让用户上传自己的照片作为头像发布图片:在社交媒体或论坛上传图片提交文档:在办公系统中上传Word、Excel等文档 这些都是常见的文件上传功能。 任意文…

Kettle9.4支持Clickhouse数据源插件开发以及性能测试

前言 最近业务这边有个指标需要用到大数据这边的列式数据库进行处理,由于kettle不支持clickhouse数据源驱动,这里查了一下网上的相关资料,发现了一些别人开发好的驱动包,下载下来后使用效果不尽人意。总结下来有以下几个问题&…

重生之“我打数据结构,真的假的?”--1.顺序表(无习题)

C语言中的顺序表详细总结 1. 概述 顺序表(Sequential List)是一种线性数据结构,用于存储具有相同数据类型的一组元素。顺序表采用一段连续的存储空间,使用数组来实现,能够高效地支持随机访问操作。在 C 语言中&#…

基于ssm的校园车辆管理系统的设计与实现

文未可获取一份本项目的java源码和数据库参考。 一、选题背景与意义 (一)选题背景 自改革开放以来,国家开始加大力度对高等校园进行投入,深化了教育体制的改革,全国许多高等校园应运而生,越来越多的孩子走…

C++ —— 《模板进阶详解》,typedef和class的区别以及用法,非类型模板参数,模板的特化,模板的分离编译

目录 1.非类型模板参数 2.模板特化 2.1 概念 2.2 函数模板特化 2.3 类模板特化 2.3.1 全特化 2.3.2 偏特化 3 模板分离编译 3.1 什么是分离编译 3.2 模板的分离编译 4.模板总结 在讲解模板进阶之前,我想先简单单独聊聊class和typename的用法 我们在平时…

Mac使用Git仓库上传文件夹方法

环境:mac 仓库:GitLink Q: 首先我们先了解到,远程下载(用ssh)仓库会默认下载到电脑的哪里呢? A: 如下图,路径为/Users/bb,(bb是我的用户名) 那么我们在将a文…

筑牢理性防线,“卡游启智,理性护航”青少年健康消费倡议发布

新华网北京10月22日电(记者周靖杰)10月21日,国内针对青少年卡牌盲盒消费的倡议在京发布。 “卡游启智,理性护航”青少年健康消费倡议在京正式发布 近年来,卡牌盲盒在青少年中悄然流行,买卡、拆包、集卡成为…

临时配置linux Bridge网桥

Linux Bridge(网桥)是用纯软件实现的虚拟交换机,有着和物理交换机相同的功能,例如二层交换,MAC地址学习等。因此我们可以把tun/tap,veth pair等设备绑定到网桥上,就像是把设备连接到物理交换机上…

数据可视化示例

用eclipse软件 java 代码&#xff1a; <!DOCTYPE html> <html> <head> <meta charset"UTF-8"> <!-- 引入ECharts脚本&#xfe63;-> <script src"js/echarts.js"></script> <title&#xff1e;网格…

红日靶场(三)1、环境介绍及环境搭建

1、靶场介绍 红日靶场03是一个用于安全测试和渗透测试的虚拟化环境&#xff0c;可以帮助用户通过模拟攻击和防御场景来提升网络安全技能。该靶场包含了多个虚拟机和网络配置&#xff0c;用户可以在其中进行各种安全测试活动&#xff0c;如信息收集、漏洞利用、权限提升等。 2…

Java项目-基于Springboot的高校党务系统项目(源码+说明).zip

作者&#xff1a;计算机学长阿伟 开发技术&#xff1a;SpringBoot、SSM、Vue、MySQL、ElementUI等&#xff0c;“文末源码”。 开发运行环境 开发语言&#xff1a;Java数据库&#xff1a;MySQL技术&#xff1a;SpringBoot、Vue、Mybaits Plus、ELementUI工具&#xff1a;IDEA/…

ACL访问控制

要求&#xff1a; PC1与PC2不能通信。PC1可以和PC3通信。PC2可以和PC3通信。 1. VLAN配置 根据拓扑图的连接&#xff0c;PC1、PC2、PC3属于不同的VLAN。我们需要确保交换机上的端口已经正确划分到不同的VLAN。假设交换机接口的VLAN配置已经完成&#xff08;其他博文有)&…

在VMware中安装LInux

1.打开VMware选择新建虚拟机 2.这里建议初学者选择“典型&#xff08;推荐&#xff09;”。 3.已提前准备好 Linux 系统的映像文件&#xff08;.iso 文件&#xff09;&#xff0c;此处可选择“安装程序光盘映像文件”&#xff0c;并通过“浏览”按钮找到要安装 Linux 系统的 i…

“金秋敬老月 浓浓孝老情”2024中益孝行大爱进万家敬老月公益活动走进涿州

为贯彻实施积极应对人口老龄化国家战略&#xff0c;弘扬中华民族孝亲敬老传统美德&#xff0c;10月22日&#xff0c;中益老龄事业发展中心和涿州市东城坊镇人民政府在安享城养老院联合开展“金秋敬老月&#xff0c;浓浓孝老情”2024中益孝行大爱进万家敬老月公益活动。中益老龄…