Servlet入门

news2024/9/22 12:25:58

URL和URI:
URL统一资源定位符,表示对外暴露的整个网址
URI统一资源标示符,表示资源的访问路径,与servlet绑定的地址

HTTP请求结构:

HTTP请求包含三部分:请求行、请求头、请求体
在这里插入图片描述

在这里插入图片描述
请求行包含:请求方法、请求URI、HTTP协议和版本
在这里插入图片描述

HTTP响应结构:

HTTP响应包括三部分:响应行、响应头、响应体
在这里插入图片描述
在这里插入图片描述
响应行包含:HTTP协议及版本、状态码和状态码描述
在这里插入图片描述
HTTP常见状态码:
在这里插入图片描述
ContentType决定浏览器对响应体的处理方式:
在这里插入图片描述

请求转发与响应重定向

request.getRequestDispatcher().forward()请求转发,只会产生一次请求,服务器跳转,地址栏中的地址不变,请求处理的方式要一致,只能在应用内转发;
response.sendRedirect()响应重定向,会产生两次请求,地址栏中的地址会变,响应重定向后的请求默认是Get方法,需要用doGet()方法去处理;

设置请求自定义属性:(只适用于请求转发的场景)
request.setAttribute(属性名,属性值);设置请求属性
Object attr=request.getAttribute(属性名,属性值);获取请求属性

Cookie和Session

Cookie是浏览器保存在本地的文本内容,默认只有当前域名下的程序才能读取数据,Cookie具有实效性,会伴随请求头发送给服务器。

Cookie的实效性有两种:

  • 默认Cookie有效期和当前浏览器进行绑定,浏览器关闭时失效
  • 设置过期时间,Cookie过期后才会失效
    在这里插入图片描述在这里插入图片描述
    Session用于保存浏览器窗口对应的数据,存储在服务器中,具有实效性,Session通过浏览器Cookie的SessionId值提取用户数据,Session默认时长是30分钟
    request.getSession()获取Session对象
    get|set|removeAttribute()获取|设置|删除Session属性
    setMaxInactiveInterval()设置Session超时时间
    在这里插入图片描述
    在这里插入图片描述

在这里插入图片描述

默认浏览器窗口关闭后cookie消失,session还存在,默认30分钟后session销毁;

在请求转发中,可以使用请求自定义属性完成跨请求的数据交换;在响应重定向中,可以使用session完成跨请求的数据交换功能;

Chrome浏览器中打开的不同页面携带相同的session信息

ServletContext

Servlet上下文对象,是Web应用全局对象,一个Web应用只会创建一个ServletContext对象,随着Web应用启动自动创建

ServletContext可以自定义属性,可以将一些静态数据存放在ServletContext自定义属性中,方便取用
在这里插入图片描述
在这里插入图片描述

Java Web三大作用域对象

  • HttpServletRequest,请求对象
  • HttpSession,用户会话对象
  • ServletContext,Web应用全局对象

解决中文乱码问题:
由于发送方和接收方对数据使用不同的字符集解析会导致中文乱码问题,统一使用UTF-8编码即可解决中文乱码问题。

请求中的GET方法默认使用UTF-8编码,POST方法需要额外设置UTF-8编码。
在这里插入图片描述

在这里插入图片描述

在这里插入图片描述
响应中通过setContentType设置字符集即可
在这里插入图片描述
web.xml常用配置
1.设置默认首页,输入localhost:8080可以默认进入的页面
在这里插入图片描述
2.通配符的使用
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
启动时加载Servlet

  • web.xml使用<load-on-startup>设置启动加载
  • <load-on-startup>0~9999</load-on-startup>数字越小越靠前
  • 启动时加载在工作中用于系统的预处理

在这里插入图片描述

在这里插入图片描述
自定义错误页面
在这里插入图片描述
Java Web打包与发布

Java Web采用war包发布
在这里插入图片描述
Maven的Scope属性
在这里插入图片描述
在这里插入图片描述
使用maven打包后,将war包复制到tomcat的webapps目录下,即发布完成
在这里插入图片描述

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

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

相关文章

被替换掉的文件如何找回来?

当我们在编辑文件时&#xff0c;通常会直接保存而不是另存为新文件&#xff0c;这样会替换原始文件的信息。如果需要对原始文件进行二次编辑&#xff0c;情况就会比较复杂。那么被替换掉的文件还能找回来吗&#xff1f; 被替换的文件是否可以恢复&#xff1f; 这取决于替换原始…

【论文笔记】A theory of learning from different domains

防盗 https://www.cnblogs.com/setdong/p/17756127.html domain adaptation 领域理论方向的重要论文. 这篇笔记主要是推导文章中的定理, 还有分析定理的直观解释. 笔记中的章节号与论文中的保持一致. 1. Introduction domain adaptation 的设定介绍: 有两个域, source domain…

智慧空开让用电更安全、管理更智能——电脑APP远程控制开合闸

安科瑞 崔丽洁 01 什么是低压断路器&#xff1f;低压断路器的定义是&#xff1a;能够接通、承载及分断正常电路条件下的电流&#xff0c;也能在规定的非正常电路条件&#xff08;过载、短路、特别是短路&#xff09;下接通、承载一定时间和分断电流的开关电器。 断路器的分类&…

go语言教程4:switch和map

文章目录 switchswitch匹配字典 go语言教程&#xff1a;安装入门➡️for循环➡️数组、切片和指针 switch和map&#xff0c;一个是控制流&#xff0c;一个是数据结构&#xff0c;之所以把两个不同类型的知识点放在一起讲解&#xff0c;是因为二者有着极其相似的运行逻辑&#…

WSL+vscode配置miniob环境

1.配置WSL Windows Subsystem for Linux入门&#xff1a;安装配置图形界面中文环境vscode wu-kan 2.获取源码 找个位置Git Bash然后拉取代码 git clone https://github.com/oceanbase/miniob.git 3.安装相关依赖 https://gitee.com/liangcha-xyy/source/blob/master/how…

Spring Boot Bean 注入的常用方式教程

Spring Boot Bean 注入是一种将依赖对象引入到应用程序组件中的机制&#xff0c;它有助于实现松耦合和可测试的代码。这种注入方式允许我们将依赖关系委托给 Spring 容器来管理&#xff0c;从而提高了代码的可维护性和可读性。Spring Boot 提供了多种 Bean 注入方式&#xff0c…

qt判断当前日期的当月的最后一天是几号

1、拖个dateTimeEdit在界面上&#xff0c;同时来判断输入的时间的最后一天的日期是什么&#xff1f; int year,month;int monthArr[12]{31,28,31,30,31,30,31,31,30,31,30,31};QDateTime time ui->dateTimeEdit->dateTime();year time.toString("yyyy").toIn…

C++入门介绍

1.C入门知识 以下是一些 C 入门知识&#xff1a; C 是一种面向对象的编程语言&#xff0c;它具有高效、灵活、可移植性好等特点 C 中的基本数据类型包括整型、浮点型、字符型等 C 中的控制语句包括条件语句&#xff08;if、else&#xff09;、循环语句&#xff08;for、while、…

飞凌嵌入式成为“龙芯生态伙伴计划”认证级企业!

近日&#xff0c;飞凌嵌入式正式成为“龙芯生态伙伴计划”认证企业&#xff0c;标志着飞凌嵌入式与龙芯中科的紧密型战略合作伙伴关系正式建立&#xff01; “龙芯生态伙伴计划”由龙芯中科主导发起&#xff0c;旨在推动龙芯生态企业基于龙芯平台开发产品&#xff0c;丰富龙芯…

MyBatisPlus属性自动填充和乐观锁插件+查询删除操作+整合SpringBoot出现问题解决

属性字段自动填充 一、实体类和数据表添加两个字段&#xff08;属性&#xff09; 表&#xff1a;create_tiem/update_time 实体类&#xff1a;createTime/updateTime 二、实体类中属性进行注解添加 TableField(fillFieldFill.INSERT) private Date createTime;TableField(f…

DC2DC电源设计注意事项--1,Feedback

电源采集图如下图 Feedback 采集电压点应该在靠近负载侧。这样可以减少大电流导线导致的电压差&#xff0c;真实反应输出电压值 FB_1P21采集电路靠近芯片侧&#xff0c; 2.1&#xff0c;采集分压电路上侧为Vout Vnoise, 那么一分压就噪声就小了。假如采集电路远离芯片侧&…

简洁多媒体影音库 Emby 中文最新 for mac

Emby是一款用于媒体服务器和媒体中心的软件平台。它允许用户将个人的音乐、电影、电视节目、照片和其他媒体文件组织和管理起来&#xff0c;并通过各种设备进行访问和流媒体播放。 以下是Emby可能提供的一些主要功能和特点&#xff1a; 媒体管理和组织&#xff1a;Emby允许用户…

蒙特卡洛方法的简单应用

蒙特卡洛方法的简单应用 圆周率估算 eastimate pi python version 3.11 RNG:np.random.random import os figure_save_path "file_fig" import warnings warnings.filterwarnings("error") import numpy as np np.random.seed(0) import matplotlib.pyp…

温度在线检测技术在电力电缆线路的应用

在电力电缆的日常运行检测中&#xff0c;针对电缆温度的状况&#xff0c;所采用的电力温度在线检测技术也得到了大范围的普及。电网系统中&#xff0c;其单位时间内可输送的电力能源受到其温度的变化影响。因此&#xff0c;采用更有效的方式实时检测电缆系统运行温度&#xff0…

虾皮商品链接获取虾皮商品详情数据(用 Python实现虾皮商品信息抓取)

在网页抓取方面&#xff0c;可以使用 Python、Java 等编程语言编写程序&#xff0c;通过模拟 HTTP 请求&#xff0c;获取虾皮网站上的商品页面。在数据提取方面&#xff0c;可以使用正则表达式、XPath 等方式从 HTML 代码中提取出有用的信息。值得注意的是&#xff0c;虾皮网站…

miRNA测序数据生信分析——第三讲,已知物种的生信分析实例

miRNA测序数据生信分析——第三讲&#xff0c;已知物种的生信分析实例 miRNA测序数据生信分析——第三讲&#xff0c;已知物种的生信分析实例1. 下载测序数据2. 原始数据质控——软件fastqc3. 注释tRNA和rRNA&#xff0c;使用Rfam数据库——软件blast&#xff0c;Rfam_statisti…

MySQL数据库技术笔记(3)

概述 学习MySQL数据库技术其实只需要安装mysql服务器就可以使用了。只不过对于初学者来说直接操作dos窗口方式比较麻烦&#xff0c;命令不熟悉&#xff0c;导致经常写错。在真实的开发当中直接操作dos窗口效率比较慢&#xff0c;企业中也会经常使用一些mysql数据库支持的可视化…

【VR开发】【Unity】0-课程简介和概述

【说明】 这是我录制的一套VR基础开发课程的文字版本&#xff0c;更加便于快速参考。 应大家在后台所提的需求&#xff0c;从今天开始&#xff0c;我计划带给大家一套完整达40课时的VR开发基础课程。 在开始学习前需要注意如下几点&#xff1a; 本教程基于Unity2022.2.1f1版…

【Python 零基础入门】基础语法

【Python 零基础入门】第四课 基础语法 【Python 零基础入门】第四课 基础语法怎么写 Python 代码缩进注释Python 标识符规则Python关键字代码行和块导包 字符串操作字符串连接字符串的其他常用方法 循环for 循环while 循环 判断语句比较运算符逻辑运算符if 判断三元表达式brea…

【已解决】ORA-01722: invalid number

文章目录 ORA-01722: invalid number问题思路解决 ORA-01722: invalid number 问题 invalid number 字符与数值不匹配 oracle 截取 ‘1-2’ 只需要’-前面的 思路 一、问题提示 执行Oracle的sql语句提示【ORA-01722: invalid number】无效数字错误。 二、问题分析 2.1、类…