web应用开发技术的一些概念
一、Servlet
1.Servlet的工作过程:
Servelt的工作流程示意图
(1)客户端发起一个Http请求到服务器,请求特定的资源或者是要执行特定的操作
(2)服务器在接收到请求后,根据请求相应的URL将请求分发给相应的Servlet容器
(3)Tomcat加载并初始化Servlet,然后调用service()方法处理请求,根据请求的类型执行相应的操作处理,最后将生成内容返回给服务器,服务器再把它发送到客户端,
ps:也就是说Servlet的工作过程是接收客户端请求、处理请求然后生成响应返回给客户端,从而实现动态的web页面与用户交互
2.常用的Servlet配置方法:
(1)@WebServlet注解方式
web.xml文件中使用<servlet>和<servlet-mapping>标签来配置Servlet。
- 在<servlet>标签中指定Servlet类的名称和路径。
- 在<servlet-mapping>标签中指定Servlet的URL映射。
<servlet><servlet-name>MyServlet</servlet-name><servlet-class>com.example.MyServlet</servlet-class> </servlet><servlet-mapping><servlet-name>MyServlet</servlet-name><url-pattern>/myservlet</url-pattern> </servlet-mapping>
(2)web.xml文件
在Servlet类上使用@WebServlet注解来指定Servlet的URL映射和其他配置信息。比如:
@WebServlet(name = "MyServlet", urlPatterns = {"/myservlet"}) public class MyServlet extends HttpServlet {// Servlet code }
(3)自定义容器
如果使用Spring框架,可以通过配置文件或注解来配置Servlet。在Spring配置文件中使用<bean>标签来配置Servlet,或者在Servlet类上使用@Controller或@RequestMapping注解来指定URL映射。
<bean id="myServlet" class="com.example.MyServlet" />
@Controller @RequestMapping("/myservlet") public class MyServlet {// Servlet code }
3.Servlet生命周期方法:
(1)初始化调用init()方法
当Servlet被实例化时调用,用于初始化Servlet。在这个方法中通常进行一些初始化操作,比如加载配置文件、建立数据库连接等。
(2)请求Servlet服务调用service()方法
每次有请求到达Servlet时都会调用这个方法。在这个方法中处理请求并生成响应。
(3)销毁实例前调用destory()方法
当Servlet被销毁时调用,用于释放资源。在这个方法中通常进行一些清理操作,比如关闭数据库连接、释放内存等。
二、会话管理
1.对比session与cookie的异同。
相同点 session和cookie都是同于保存会话数据的对象,并且都能用于客户端与服务器之间数据传递,通常会话会将用户的id号以cookie的方式存放在浏览器中进行用户的身份识别,而且两者都与一个用户对应只是在不同的作用域工作。 不同点 cookie session 存储在浏览器的缓冲区 存储在服务器端 相对不安全,因为内容可以被用户修改 用户没有权限修改,因此安全性高 可以设置过期时间,可以长期保存在客户端 会随着用户的下线或关闭浏览器、超时而失效 存放在客户端可以减轻服务器负担 存放在服务器端对服务器的性能要求更高
2.与过滤器有关的3个接口:
javax.servlet.Filter 过滤器接口 定义了过滤器的生命周期方法和过滤方法,包括init()、doFilter()和destroy()。 javax.servlet.FilterChain 过滤器链接口 用于在过滤器中调用下一个过滤器。它的doFilter()方法允许过滤器将请求传递给下一个过滤器,或者如果没有下一个过滤器,则将请求传递给Servlet。 javax.servlet.FilterConfig 过滤器配置接口 用于获取过滤器的初始化参数和ServletContext。它的方法可以让过滤器获取在部署描述符中配置的初始化参数,以及访问ServletContext对象。
常用方法有三个:
getFilterName()、getInitParameter(String name )和 getServletContex()
3.Servlet监听器是个可以监听web应用程序内部事件的Java类.
Serlet有几种监听器?各实现哪些监听功能?
Servlet上下文事件
ServletContexListener接口 对servletcontext创建和删除 ServletContextAtrributeListener接口 Servletcontext属性增删改 会话事件
HttpSessionAtrributeListener接口 用于监听Http会话中属性设置 HttpServletListener接口 用于监听会话的创建和销毁 HttpSessionBingdingListener接口 用于监听对象本身绑定或删除到一个会话 请求事件
ServiceRequestListener接口 用于监听每次请求到来 ServletRequestAttributeListener接口 用于跟踪请求属性的增删改
三、JSP
1.JSP的隐式对象:
JSP的隐式对象有九个,它们分别是:
out对象 向客户端发送文本内容 request对象 存储客户端的请求 response对象 存储响应客户端时要发送的信息 session对象 存储用户会话信息 application对象 作用在JSP页面所属的应用程序 pageContext对象 使用户在访问页面作用域中可以定义所有的隐式对象 page对象 正在运行的JSP页面所产生的类对象 config对象 存储Servlet信息(编译JSP页面过程中所创建的) exception对象 处理异常信息
2.JSTL标签有哪些优点?
第一,可以简化JSP和WEB程序的开发,让本来需要大量代码才能实现的功能可以通过少量JSTL代码便可以实现;
第二,可读性高,在团队开发中方便他人查看代码,并且易于理解;
第三,在JSTL代码下编写的web程序易于后期维护;
四、JavaBean
1.JavaBean的编码规范
首先:
- 必须要具有一个公共的(public)
- 无参的构造方法(可以是编译器自动产生的缺省构造方法)
然后:
提供公共的(public)setter方法和getter方法——这里是为了能够使得外部的程序获取或者设置JavaBean的属性
2.Spring容器支持多种形式的Bean的三种装配方式
(1)基于XML的显式装配:
设值注入与构造注入
(2)基于注解(Annotation)的装配:
使用注解来标识Bean,包括@Component、@Service、@Repository、@Controller等,同时使用@Autowired、@Resource等注解来自动装配Bean。
(3)自动装配
将一个Bean自动的注入到到其他Bean的Property中。 Spring的<bean>中包含一个autowire属性,通过设置autowire的属性值来自动装配Bean。
3.Spring实例化Bean有三种方式
构造器实例化 Spring容器通过建立的Bean类中的默认构造器来实例化Bean 静态工厂方式实例化 Spring容器通过建立的Bean类中的默认构造器来实例化Bean 实例化工厂方式实例化 直接创建Bean实例,在配置文件里面利用factory-bean属性配置实例工厂,通过factory-method属性来确定使用哪个方法,也是自行通过创建Bean类和工厂类,但这里和上面的不同的是,是通过非静态方法去获取Bean类的实例 以上三个方法在创建并实例好后,都需要创建Spring配置文件,(配置Bean类/工厂类),最后进行测试
相关文章:
web应用开发技术的一些概念
一、Servlet 1.Servlet的工作过程: Servelt的工作流程示意图 (1)客户端发起一个Http请求到服务器,请求特定的资源或者是要执行特定的操作 (2)服务器在接收到请求后,根据请求相应的URL将请求分发…...
智能优化算法应用:基于乌燕鸥算法3D无线传感器网络(WSN)覆盖优化 - 附代码
智能优化算法应用:基于乌燕鸥算法3D无线传感器网络(WSN)覆盖优化 - 附代码 文章目录 智能优化算法应用:基于乌燕鸥算法3D无线传感器网络(WSN)覆盖优化 - 附代码1.无线传感网络节点模型2.覆盖数学模型及分析3.乌燕鸥算法4.实验参数设定5.算法结果6.参考文…...
超聚变服务器(原华为服务器)网站模拟器
一、超聚变服务器(原华为服务器)网站模拟器: 原来了解服务器可以从他的网站上进行了解,模拟器做的很好了。 https://support.xfusion.com/server-simulators/ 有很多的模拟器,今天主要看下BMC的设置 有很多的在线工具…...
Linux常见压缩指令小结
为什么需要压缩技术 我们都知道文件是以byte作为单位的,如果我们的文件仅仅在低位占一个1 0000 0001这种情况我们完全可以压缩一下,将高位的0全部抹掉即可。 如上所说是一种压缩技术,还有一种就是将1111(此处省略96个)一共100个1࿰…...
OpenSSL的源码在哪里下载?
官方网站去下载,网址: https://www.openssl.org/source/ 比较老的版本的下载页面地址: https://www.openssl.org/source/old/ 由于某面板的OpenSSL模块的安装配置语句如下: --with-openssl/root/rpmbuild/BUILD/openssl-1.0.2u所…...
使用create-react-app脚手架创建react项目
文章目录 1、安装create-react-app脚手架2、创建 React 项目,项目名为 react-demo3、项目创建成功4、使用vscode打开项目并运行5、项目运行成功node_modules:存放项目所依赖的一些第三方包文件public:静态资源文件夹src:源码文件夹其它文件 1…...
【网络安全】网络防护之旅 - 点燃网络安全战场的数字签名烟火
🌈个人主页:Sarapines Programmer🔥 系列专栏:《网络安全之道 | 数字征程》⏰墨香寄清辞:千里传信如电光,密码奥妙似仙方。 挑战黑暗剑拔弩张,网络战场誓守长。 目录 😈1. 初识…...
JVM基础扫盲
什么是JVM JVM是Java设计者用于屏蔽多平台差异,基于操作系统之上的一个"小型虚拟机",正是因为JVM的存在,使得Java应用程序运行时不需要关注底层操作系统的差异。使得Java程序编译只需编译一次,在任何操作系统都可以以相…...
SpringBoot基于gRPC进行RPC调用
SpringBoot基于gRPC进行RPC调用 一、gRPC1.1 什么是gRPC?1.2 如何编写proto1.3 数据类型及对应关系1.4 枚举1.5 数组1.6 map类型1.7 嵌套对象 二、SpringBoot gRPC2.1 工程目录2.2 jrpc-api2.2.1 引入gRPC依赖2.2.2 编写 .proto 文件2.2.3 使用插件机制生产proto相关…...
浏览器的事件循环机制(Event loop)
事件循环 浏览器的进程模型 何为进程? 程序运行需要有它自己专属的内存空间,可以把这块内存空间简单的理解为进程 每个应用至少有一个进程,进程之间相互独立,即使要通信,也需要双方同意。 何为线程? …...
THEMIS---Beta Sprint Summary Essay Blog
Which course does this assignment belong to2301-MUSE社区-CSDN社区云What are the requirements for this assignmentbeta SprintThe goal of this assignmentTo summarize the beta task progress and the teams sprintsTeam NameThemisTop-of-the-line collection of essa…...
Vue中实现分布式动态路由的基本实现步骤介绍
设想一下,我们在做一个体量非常大的项目,这个项目有很多的模块和相当多的页面。当我们想修改一个路由的时候,我们打开了router文件夹下的index.js文件时,一串长到鼠标滚轮需要滚大半天才滚到底的路由简直让人头皮发麻。 在开始之前…...
【Leetcode】计算器
思路 用栈来完成; 考虑到运算关系,先乘除后加减;此外,一般计算式首个数字式正数;判断字符是否为数字,str.isdigit()字符转数字:ord(str) - ord(‘0’)遇到加减符,压栈数字…...
巧妙的使用WPF中的资源
其实,在wpf中,最核心的就是xaml,因为只有xaml,才能体现出用的是wpf,而不是普通的cs文件,cs文件在winform中等等程序都可以使用的,唯独xaml才是wpf中最重要的,最精华的东西࿰…...
多维时序 | MATLAB实现RIME-CNN-BiLSTM-Multihead-Attention多头注意力机制多变量时间序列预测
多维时序 | MATLAB实现RIME-CNN-BiLSTM-Multihead-Attention多头注意力机制多变量时间序列预测 目录 多维时序 | MATLAB实现RIME-CNN-BiLSTM-Multihead-Attention多头注意力机制多变量时间序列预测预测效果基本介绍模型描述程序设计参考资料 预测效果 基本介绍 MATLAB实现RIME-…...
【AIGC重塑教育】AI大模型驱动的教育变革与实践
文章目录 🍔现状🛸解决方法✨为什么要使用ai🎆彩蛋 🍔现状 AI正迅猛地改变着我们的生活。根据高盛发布的一份报告,AI有可能取代3亿个全职工作岗位,影响全球18%的工作岗位。在欧美,或许四分之一…...
【力扣100】2.两数相加
添加链接描述 # Definition for singly-linked list. # class ListNode: # def __init__(self, val0, nextNone): # self.val val # self.next next class Solution:def addTwoNumbers(self, l1: Optional[ListNode], l2: Optional[ListNode]) -> Op…...
算法leetcode|93. 复原 IP 地址(多语言实现)
文章目录 93. 复原 IP 地址:样例 1:样例 2:样例 3:提示: 分析:题解:rust:go:c:python:java: 93. 复原 IP 地址: 有效 IP …...
TOGAF—架构(Architecture)项目管理
一、简介 1.1概述 架构(Architecture)项目在本质上通常是复杂的。他们需要适当的项目管理来保持正轨并兑现承诺。本指南适用于负责规划和管理架构(Architecture)项目的人员。我们解释了如何用事实上的方法和标准(如PRINCE2或PMBOK)来补充TOGAF架构开发方法(ADM),以加…...
MVVM前端设计模式的发展与应用
在MVC模式中,随着代码量越来越大,主要用来处理各种逻辑和数据转化的Controller首当其冲,变得非常庞大,MVC的简写变成了Massive-View-Controller(意为沉重的Controller) 我曾经接手老项目,sprin…...
redis:二、缓存击穿的定义、解决方案(互斥锁、逻辑过期)的优缺点和适用场景、面试回答模板和缓存雪崩
缓存击穿的定义 缓存击穿是一种现象,具体就是某一个数据过期时,恰好有大量的并发请求过来,这些并发的请求可能会瞬间把DB压垮。典型场景就是双十一等抢购活动中,首页广告页面的数据过期,此时刚好大量用户进行请求&…...
php的Url 安全的base64编码解码类
/*** Url安全的Base64编码方法* author JerryLi* version 20231217*/ final class UrlSafeB64Fun{/*** 编码* param string $sData 原始字符串* return string*/static public function encode(string $sData): string{$aTmp base64_encode($sData);return strtr($aTmp, [>…...
安全CDN有什么作用,安全CDN工作原理是什么?
一、CDN的应用场景 CDN技术可以应用于各种类型的网站和应用程序,特别是对于以下几种场景,CDN的作用尤为明显: 1. 高流量网站:对于流量较大的网站,CDN可以将网站的内容分发到全球各地的节点上,从而分担服务…...
Mysql高可用|索引|事务 | 调优
前言 「作者主页」:雪碧有白泡泡 「个人网站」:雪碧的个人网站 文章目录 前言sql语句的执行顺序关键词连接名字解释sql语句 面试坑点存储引擎MYSQL存储引擎 SQL优化索引索引失效索引的数据结构面试坑点 锁事务四大特性事务的隔离级别MVCC 读写分离面试坑…...
电机驱动开发
最近在搞电机驱动程序,感觉很简单,实际操作却发现里面还有很多猫腻(细节)。 电机在嵌入式设备中非常常见,例如云台的转动,都是靠电机来驱动的。 电机常见分步进电机、直流电机,相对来说步进电机…...
基于PaddleNLP的深度学习对文本自动添加标点符号(一)
前言 目前以深度学习对文本自动添加标点符号研究很少,已知的开源项目并不多,详细的介绍就更少了,但对文本自动添加标点符号又在古文识别语音识别上有重大应用。 基于此,本文开始讲解基于PaddleNLP的深度学习对文本自动添加标点符号…...
“Java已死、前端已凉”?尊嘟假嘟?
一、为什么会出现“Java已死、前端已凉”的言论 “Java已死、前端已凉”的言论出现,主要是由于以下几个原因: 技术更新迅速:随着互联网技术的发展,新的编程语言和技术不断涌现。Java和前端技术作为广泛应用的技术,面临…...
双向无线功率传输系统MATLAB仿真
微❤关注“电气仔推送”获得资料(专享优惠) 模型简介: 初级侧转换器通过双向 AC/DC 转换器从电网获取电力,并由直流线电压 Vin 供电,而拾波侧被视为连接到 EV,并由连接到任一存储的单独直流源 Vout 表示或…...
火山引擎DataLeap:助你实现从数据研发1.0到数据研发3.0的跨越
更多技术交流、求职机会,欢迎关注字节跳动数据平台微信公众号,回复【1】进入官方交流群 近日,火山引擎开发者社区 Meetup 第 12 期暨超话数据专场在深圳举办,本次活动主题为“数智化转型背景下的火山引擎大数据技术揭秘 ”&#x…...
DevOps 和人工智能 – 天作之合
如今,人工智能和机器学习无处不在,所以它们开始在 DevOps 领域崭露头角也毫不令人意外。人工智能和机器学习正在通过自动化任务改变 DevOps,并使各企业的软件开发生命周期更高效、更深刻和更安全。我们在 DevOps 趋势中简要讨论过这一问题&am…...
新光途网站建设/企业网站营销优缺点
这里之所以是查看下IP ,是我们后面要建一个Centos远程工具Xshell 连接Centos的时候,需要IP地址,所以我们这里先 学会查看虚拟机里的Centos7的IP地址 首先我们登录操作系统 用户名root 密码 123456 然后我们输入ip查询命名 ip addr 发现ens33 …...
做兼职的网站有哪些工作/东莞网站制作的公司
OK,话不多说。网上找了一些资料,感觉都说的不够清晰。自己琢磨了下,有了一个简单粗暴的方法。 步骤1:插上Arduino mega2560板子。没有反应。 步骤2:我的电脑—管理—设备管理器—端口,找到未识别的LPT。 步…...
哪个网站可以免费做招牌/seo是什么意思呢
矩阵的乘法:233?354ruby标准库中有Matrix,定义矩阵是Matrix[]形式:2.4.0 :001 > require matrix> true2.4.0 :002 > Matrix[[2, 3], [3, 5]] * Matrix[[3],[4]]> Matrix[[18], [29]]Julia:可以直接以数组形式来写矩阵…...
淮北网站建设公司/独立站seo是什么意思
3月16日下午,庐江县2021年高考备考工作推进会在庐江中学行政楼三楼会议室如期顺利举行。县教体局党委书记、局长徐晓兵,县教体局党委委员、副局长孙溥,县教体局教研室主任傅求宝等出席会议,各高中学校校长、分管教学副校长及各校毕…...
完整的网站开发/昭通网站seo
source insight 里编辑的时候,每次粘贴后,光标停留在粘贴内容的前面。 我想把它设定为 粘贴后,光标移动倒粘贴内容的后面。 怎么做? 这是个设置问题,按照下面的步骤设定就可以了。 Options->Preferences...->Ty…...
建设独立网站需要什么手续/药品网络营销公司
1 未找到usleep thread-pool-light.h中添加: #define usleep(x) Sleep(x/1000)2 std中未定义iota batched-threaded-nnet3-cuda-online-pipeline.cc中添加: //window添加 #include <numeric> using namespace std;...