servlet注解开发

news2025/1/14 17:55:05

文章目录

  • servlet注解开发
    • 内容回顾
      • 响应对象 HttpServletResponse
      • 重定向与请求转发
    • ServletConfig
      • 简介
      • 案例
    • ServletContext
      • 简介
      • 案例
    • Servlet 注解开发
      • 简介
      • 注解使用
      • 案例
      • @WebServlet 注解详细参数
    • 综合的增删改查案例
      • 登录注册功能


servlet注解开发

内容回顾

响应对象 HttpServletResponse

针对页面发送的请求做出数据的响应,向页面输出信息,包括文本、图片、视频等格式的文
件;
响应的内容分为三部分:响应行、响应头、响应体
① 响应行主要是关于协议和状态码的描述
② 响应头主要是用来进行响应头信息的设置
③ 响应体主要是响应给页面数据	

重定向与请求转发

实现页面跳转的两种方式;重定向是客户端行为,请求转发时服务端行为;
重定向客户端的请求地址会发生变化,请求转发客户端请求地址不会发生变化;
重定向客户端至少会有2次请求发送,请求转发客户端只有一次请求发送;
重定向在页面跳转时不能携带数据,因为两个请求 request 是不一样的;
请求转发可以在一次转发内进行数据的传递,多次转发则不允许携带数据;
请求转发是在服务器端使用 request 对象来实现;
转发的方法:getRequestDispatcher("请求/页面").forward(req,resp)
重定向也在在服务端使用 response 对象来实现;
重定向的方法:sendRedirect("请求/页面")	

ServletConfig

简介

跟请求对象/响应对象一样,也是在容器初始化时被创建好的对象;
该对象可用于容器初始化时 servlet 辅助信息的设置;
例如:编码格式的设置、servlet 在执行时需要的一些数据。
在 web.xml 中 servlet 标签下可以进行 ServletConfig 辅助信息的设置
格式:
<servlet>
<servlet-name>**</servlet-name>
<servlet-class>**</servlet-class>
<init-param>
<param-name>key</param-name>
<param-value>value</param-value>
</init-param>
<init-param>
<param-name>key1</param-name>
<param-value>value1</param-value>
</init-param>
</servlet>
ServletConfig 对象和 Servlet 类是一对一的关系;只有 web.xml 配置文件中配置了
<init-param></init-param> 标签的 Servlet 类才能后进行ServletConfig 对象
中参数的获取;不能被其他 Servlet 类共享;
ServletConfig 对象获取,可以在 init(ServletConfig config) 方法中获取,也
可以 Servlet 类其他方法中通过 getServletConfig() 进行获取;
再使用方法 getInitParameter("key") 进行对象中数据的获取;如果是多个参数的获取
getInitParameterNames()

案例

jsp 页面
在这里插入图片描述

web.xml
在这里插入图片描述
servlet 类
在这里插入图片描述

ServletContext

简介

类似于 ServletConfig;只是作用范围比 ServletConfig 更大;ServletConfig 是
针对某一个 Servlet 类进行初始参数的设置;
ServletContext 是针对所有的 Servlet 类进行初始参数的设置;

在这里插入图片描述

ServletContext 参数的设置依然在 web.xml 中进行;
使用 <context-param></context-param> 标签进行设置;
格式:
<context-param>
<param-name>key</param-name>
<param-value>value</param-value>
</context-param>
注意:ServletContext 是全局的,所以 <context-param> 标签需要和所有 servlet
标签同级;
ServletContext 对象中参数的获取依然使用 getInitParamter(key) 方法 ;如果是
多个参数的获取用 getInitParameterNames()

案例

jsp 页面

在这里插入图片描述
web.xml
在这里插入图片描述
servlet 类
在这里插入图片描述

Servlet 注解开发

简介

Servlet 注解开发实际上就是使用 Java 注解替换 web.xml 配置文件;Servlet 注解
(@WebServlet)开发需要 Servet 版本 3.0 以上;

注解使用

传统的配置文件使用需要在 web.xml 中编写请求与Servlet关联的配置信息
在这里插入图片描述
如果使用注解模式,配置文件就可以简略不写

在这里插入图片描述

@WebServlet("/servletAnnotation") 注解就相当于是 web.xml 中的配置信息描
述;
但是需要注意,注解和配置文件不能共存,意思就是在 web.xml 中如果写了配置信息,那么
该 Servlet 类就不能使用注解;反之,如果某个 Servlet 类使用了注解的模式进行开
发,那么在 web.xml 中就不能有该 Servlet 类配置信息

案例

注解开发案例
jsp 页面
在这里插入图片描述
Servlet 类
在这里插入图片描述

运行结果

在这里插入图片描述

@WebServlet 注解详细参数

如果 @WebServlet("/servletAnnotation") 注解内部只有一个内容,那么该内容
"/servletAnnotation" 表示该 Servlet 要拦截的请求地址;
该注解内部有更多的关于请求参数、容器加载时机等属性的设置;

在这里插入图片描述

详细的注解模式参数使用
在这里插入图片描述

综合的增删改查案例

登录注册功能

① 创建一个 user 表,记录用户的账号密码以及注册的时间
② 编写注册登录的页面
③ 进行注册登录的功能实现

项目结构
在这里插入图片描述

user 表

在这里插入图片描述

登录页面
在这里插入图片描述

注册页面

在这里插入图片描述

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

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

相关文章

推荐一个日历转换开源工具库,支持C#、Java、PHP等主流的语言

更多开源项目请查看&#xff1a;一个专注推荐.Net开源项目的榜单 日历对我们来说&#xff0c;最熟悉的就是阳历和农历&#xff0c;在中国每年都有固定的节日、节气、中国特有传统节日&#xff0c;有些节日是固定的&#xff0c;但是节气这些都需要我们经过一定规则换算出来。 所…

【JavaSE】数组的定义和使用(上)

数组的定义和使用&#xff08;上&#xff09;6-数组的定义与使用1. 数组的基本概念1.1 为什么要使用数组1.2 什么是数组1.3 数组的创建及初始化1.3.1 数组的创建1.3.2 数组的初始化1.4 数组的使用1.4.1 数组中元素的访问1.4.2 遍历数组2. 数组是引用类型2.1 初始JVM的内存分布2…

【Python - Matplotlib】P1 Matplotlib2D 快速入门

Matplotlib 2D什么是&#xff0c;为什么选择快速上手三层结构图像层结构一览图画图三步法补充画布设置设定图像的长宽以及清晰度代码将图片保存前言 本节为 Matplotlib 简单专题第一节&#xff0c;简单介绍 Matplotlib 的结构&#xff0c;画图三步法&#xff0c;以及介绍一个简…

认识Spring(上)

作者&#xff1a;~小明学编程 文章专栏&#xff1a;Spring框架 格言&#xff1a;热爱编程的&#xff0c;终将被编程所厚爱。 目录 什么是spring 什么是IOC 传统开发 IOC DI spring的创建使用 pom.xml spring.xml 取出bean对象 ApplicationContext BeanFactory App…

【NLP相关】PyTorch多GPU并行训练(DataParallel和DistributedDataParallel介绍、单机多卡和多机多卡案例展示)

❤️觉得内容不错的话&#xff0c;欢迎点赞收藏加关注&#x1f60a;&#x1f60a;&#x1f60a;&#xff0c;后续会继续输入更多优质内容❤️&#x1f449;有问题欢迎大家加关注私戳或者评论&#xff08;包括但不限于NLP算法相关&#xff0c;linux学习相关&#xff0c;读研读博…

@Transactional详解

一、事务的概念 百度百科&#xff1a; 事务&#xff08;Transaction&#xff09;&#xff0c;一般是指要做的或所做的事情。在计算机术语中是指访问并可能更新数据库中各种数据项的一个程序执 行单元(unit)。事务通常由高级数据库操纵语言或编程语言&#xff08;如SQL&#x…

第十四届蓝桥杯三月真题刷题训练——第 1 天

目录 题目1&#xff1a;数列求值 代码&#xff1a; 题目2&#xff1a;质数 代码&#xff1a; 题目3&#xff1a;饮料换购 代码&#xff1a; 题目1&#xff1a;数列求值 题目描述 本题为填空题&#xff0c;只需要算出结果后&#xff0c;在代码中使用输出语句将所填结果输出…

vulnhub five86-1

总结:私钥登录&#xff0c;隐藏文件很多 目录 下载地址 漏洞分析 信息收集 网站渗透 爆破密码 提权 下载地址 Five86-1.zip (Size: 865 MB)Download (Mirror): https://download.vulnhub.com/five86/Five86-1.zip使用&#xff1a;下载以后打开压缩包&#xff0c;使用vm直…

数据结构(二)(嵌入式学习)

大 家 好 今天讲讲算法和哈希函数&#xff0c;数据结构基础请跳转数据结构&#xff08;一&#xff09; 数据结构干货总结&#xff08;二&#xff09;算法常见的数据结构及算法你以为我要都讲嘛&#xff1f;&#xff1f;&#xff1f;&#xff1f;&#xff1f;&#xff1f;&#…

SpringMVC源码:getHandler、getHandlerAdapter过程

参考资料&#xff1a; 《SpringMVC源码解析系列》 《SpringMVC源码分析》 《Spring MVC源码》 写在开头&#xff1a;本文为个人学习笔记&#xff0c;内容比较随意&#xff0c;夹杂个人理解&#xff0c;如有错误&#xff0c;欢迎指正。 前文&#xff1a; 《SpringMVC源码&a…

机器学习|多变量线性回归 | 吴恩达学习笔记

前文回顾&#xff1a;机器学习 | 线性回归&#xff08;单变量&#xff09; 目录 &#x1f4da;多维特征 &#x1f4da;多变量梯度下降 &#x1f4da;梯度下降法实践 &#x1f407;特征缩放 &#x1f407;学习率 &#x1f4da;特征和多项式回归 &#x1f4da;正规方程 &…

开发手册——一、编程规约_6.并发处理

这篇文章主要梳理了在java的实际开发过程中的编程规范问题。本篇文章主要借鉴于《阿里巴巴java开发手册终极版》 下面我们一起来看一下吧。 1. 【强制】获取单例对象需要保证线程安全&#xff0c;其中的方法也要保证线程安全。 说明&#xff1a;资源驱动类、工具类、单例工厂…

Microsoft designer 使用教程

继各种ai绘图软件诞生之后 dell 2 playground.... 微软自己研发的重量级产品 Microsoft designer 上线了 Microsoft Designer 是微软公司推出的一款设计工具&#xff0c;主要用于快速创建Web和移动应用程序的原型设计。它提供了一系列的工具和模板&#xff0c;可以帮助用户…

Python3.8.8-Django3.2-Redis-连接池-数据类型-字符串-list-hashmap

文章目录1.认识Redis1.1.优点1.2.缺点2.在Django中Redis的连接3.Redis的基础用法3.1.hashmap结构3.2.list结构4.命令行查看数据库5.作者答疑1.认识Redis Remote DIctionary Server(Redis) 是一个key-value 存储系统&#xff0c;是跨平台的非关系型数据库。是一个开源的使用 AN…

【分布式】什么是分布式,分布式和集群的区别又是什么?答案在正文。

文章目录1. 什么是分布式 ?2. 分布式与集群的区别 ?3.用一个请求串起来4.一个简化的架构图5.分布式环境的特点6.分布式环境下面临的问题7.总结1. 什么是分布式 ? 分布式系统一定是由多个节点组成的系统。 其中&#xff0c;节点指的是计算机服务器&#xff0c;而且这些节点一…

Stochastic Approximation —Stochastic gradient descent 随机近似方法的详解之(四)随机梯度下降

Stochastic Approximation —Stochastic gradient descent 随机近似方法的详解之&#xff08;四&#xff09;随机梯度下降 郑重声明&#xff1a;本系列内容来源 赵世钰(Shiyu Zhao)教授的强化学习数学原理系列&#xff0c;本推文出于非商业目的分享个人学习笔记和心得。如有侵权…

【微信小程序】-- 案例 - 本地生活(二十)

&#x1f48c; 所属专栏&#xff1a;【微信小程序开发教程】 &#x1f600; 作  者&#xff1a;我是夜阑的狗&#x1f436; &#x1f680; 个人简介&#xff1a;一个正在努力学技术的CV工程师&#xff0c;专注基础和实战分享 &#xff0c;欢迎咨询&#xff01; &…

【数据结构初阶】堆排序

目录 前言 概念 堆排序的实现 1.建堆 &#xff08;1&#xff09;堆向上调整算法 &#xff08;2&#xff09;堆的向下调整算法 2. 利用堆删除思想来进行排序 3.堆排序的时间复杂度 4.源码 总结 前言 前边我们学习了堆的实现&#xff0c;对堆的每个接口都进行了详细的讲…

js中getBoundingClientRect()方法

getBoundingClientRect()返回值是一个 DOMRect 对象&#xff0c;是包含整个元素的最小矩形&#xff08;包括 padding 和 border-width&#xff09;。该对象使用 left、top、right、bottom、x、y、width 和 height 这几个以像素为单位的只读属性描述整个矩形的位置和大小。除了 …

高性能网络I/O框架-netmap源码分析

前几天听一个朋友提到这个netmap&#xff0c;看了它的介绍和设计&#xff0c;确实是个好东西。其设计思想与业界不谋而合——因为为了提高性能&#xff0c;几个性能瓶颈放在那里&#xff0c;解决方法自然也是类似的。 netmap的出现&#xff0c;它既实现了一个高性能的网络I/O框…