JSP+Servlet+JavaBean

2023-11-11

JSP相当于在HTML页面中加上Java代码,一般在<body>标签中放入主要代码。
在JSP里用<%...%>把Java代码包含起来的。

 

Servlet的生命周期:
①被服务器实例化后,容器运行init方法。
②当请求(Request)到达时,运行service方法,service方法会运行与请求对应的doXXX方法(doGet,doPost)等。
③当服务器决定将实例销毁时,调用destroy方法。

 

问:当多个请求同时到达时,会启动一个还是多个Servlet来接收请求?

Servlet是“单实例多线程”。
①可以有多个Servlet来处理一个业务请求。
②对于同一业务请求只有一个实例,加载时会调用各自的init方法。
③同一个Servlet可以同时处理多个客户端的请求。

 问:Servlet是线程安全的吗?如何保证线程安全?

(1)在Servlet里负责保存上下文的ServletContext和负责处理Session对象的HttpSession是线程不安全的。
     处理请求的ServletRequest是线程安全的。
(2)保证线程安全的做法:
    ①SingleThreadModel接口(已弃用)
    ②在Servlet中使用局部变量,保证有单属于本Servlet的对象。
    ③加锁,形成互斥访问。(很少用到)
    ④用synchronized加以保护,但要尽量缩小保护的范围。

 

JavaBean的特征:
(1)JavaBean类必须具备一个没有参数的构造函数。
(2)JavaBean内的属性都应定义为私有的,这些属性通过get和set方法被外部调用。

 

MVC架构的工作流程:
View发起请求,请求被Controller转发给合适的处理程序,Model接收请求后,调用DAO层,得到结果返回给View。

 

问:Java Servlet中forward和redirect有何区别?

在设计Web应用时,需要把一个系统进行结构化设计,即按照模块化进行划分,让不同的Servlet实现不同的功能。
例如让其中一个Servlet负责接收用户的请求,另一个Servlet负责处理用户的请求。
为了实现这种程序的模块化,就需要保证在不同的Servlet之间可以相互跳转,而Servlet中主要有两种跳转的方式:forward方式和redirect方式。 forward:服务器内部的重定向,服务器直接访问目标地址的URL,把那个URL的响应内容读取过来,而客户端并不知道,因此在客户端的地址栏中不会显示转向后的地址,还是原来的地址。 redirect:客户端的重定向,是完全的跳转,即客户端浏览器会获取到跳转后的地址,然后重新发送请求,因此浏览器中显示跳转后的地址。
同时,这种方式比forward方式多了一次网络请求,因此效率要低于forward方式。

问:Servlet有哪些方法可以实现页面的跳转?

在web应用服务中,经常会面对不同SERVLET之间的跳转,目前我们可以通过以下两种方式实现:
1.RequestDispatcher.forward()
2.ServletResponse.sendRedirect()

 

问:GET和POST的区别

GET产生一个TCP数据包,浏览器会把http header和data一并发送出去,服务器响应200(返回数据);
POST产生两个TCP数据包,浏览器先发送header,服务器响应100 continue,浏览器再发送data,服务器响应200 ok(返回数据)。

GET在浏览器回退时是无害的,POST会再次提交请求。

GET请求会被浏览器主动cache,而POST不会,除非手动设置。

GET请求只能进行url编码,而POST支持多种编码方式。

GET请求参数会被完整保留在浏览器历史记录里,而POST中的参数不会被保留。

GET只接受ASCII字符的参数的数据类型,而POST没有限制
Servlet生命周期:
①首先加载servlet的class,实例化servlet。
②然后初始化servlet调用init()的方法,接着调用服务的service的方法处理doGet和doPost方法。
③最后是我的还有容器关闭时候调用destroy 销毁方法。

 

转载于:https://www.cnblogs.com/strong-FE/p/11374143.html

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

JSP+Servlet+JavaBean 的相关文章

随机推荐

  • 什么是域名? 什么是DNS?

    域名 关于域名 百度百科是这样介绍的 百度百科 https baike baidu com item E5 9F 9F E5 90 8D 86062 域名 英语 Domain Name 又称网域 是由一串用点分隔的名字组成的Internet
  • 深入理解数据结构—简单链表

    一 简单链表结构 include
  • python异步requests_Python asyncio requests 异步爬虫

    python asyncio requests async await crawler 一 情景 抓取大量URL 每个URL内信息量较少 任务清单 发送URL请求N次 接受并处理URL响应N次 二 分析 如果每个页面依次抓取的话 任务流程
  • Unity脚本设置Animator单个状态的speed

    Unity脚本设置Animator单个状态的speed 直接上代码 private Animator anim private AnimatorController animController private void Awake ani
  • KMP算法详解

    什么是KMP算法 有句话可以这么形容KMP 一个人能走的多远不在于他在顺境时能走的多快 而在于 他在逆境时多久能找到曾经的自己 KMP算法是一个字符串匹配算法 取得是三个发明人的名字首字母 KMP算法的作用 是在一个已知字符串中查找子串的位
  • ide sonar代码审查问题总结

    格式 问题名字 问题出现的次数 Resources should be closed2 资源未关闭 打开发现有两处用到的IO流没有关闭 Conditions should not unconditionally evaluate to TR
  • php mail函数详解,php中mail()函数用法和SMTP工作原理详解

    一个发送E MAIL的脚本也许是你能够在Web 站点上找到的最普通的脚本之一了 虽然它很简单 一个邮件脚本有时会令程序员非常沮丧 PHP中有一个叫做mail 的函数 它只需要知道接收方的地址 和信件主体就可以发送邮件 但是要让mail 按你
  • 【SQLServer】查询SQLServer执行过的SQL记录

    直接贴代码 SELECT TOP 1000 创建时间 QS creation time 查询语句 SUBSTRING ST text QS statement start offset 2 1 CASE QS statement end o
  • Error in mounted hook: “TypeError: Cannot read properties of undefined (reading ‘split‘)“

    我在用vue写页面的时候 其中附件功能是写成组件模式的 然后在调用后 把数据渲染上去的时候 就会报错 具体错误如下图所示 到后面虽然数据确实是渲染出来了 但是控制台会报Error in mounted hook TypeError Cann
  • 100天精通Python(爬虫篇)——第43天:爬虫入门知识大总结

    文章目录 一 爬虫概述 1 为什么要学习爬虫 2 爬虫与Python 3 爬虫合法吗 4 爬虫的矛与盾 5 爬虫原理图 and 流程图 二 相关技术介绍 1 HTML 与 CSS 2 URL网址解释 3 HTTP 与 HTT S 1 常见请
  • Knights of the Round Table【点双连通分量与二分图】

    题目链接 POJ 2942 题意 亚瑟王要给骑士们开会啦 有N个骑士 其中有M对骑士相互之间会吵架 亚瑟王不允许相互吵架的骑士坐在一起 但是他们可以一同坐在餐桌上 只要隔开就可以了 还有就是 出席会议的骑士数必须是奇数 这是为了让投票表决议
  • 海伯利安:开放地图生态的未来与机遇

    本文选自海伯利安CTO邹光先大会演讲 全文如下 前两天有朋友问了我一个问题 他说谷歌地图在全世界覆盖那么广 用户量也非常大 用户体验也很好 在地图这个赛道上 海伯利安的创新和机会在哪里 这是个好问题 值得反复思考 深入思考 结合我们对地图行
  • Maven的配置、安装及测试可用

    1 配置环境变量的话 配置用户变量和系统变量也没差 反正电脑都是一个人使用 先配置M2 HOME 配置MAVEN HOME也可以 我放置Maven的路径是D Program Files x86 apache maven 3 2 2 具体要看
  • 程序的几种结构

    目录 顺序结构 选择结构 循环结构 break和continue的区别 顺序结构 选择结构 表达式 单选结构 if boolean表达式 执行语句 表达式为true执行相应的语句 否则不执行 双选结构 if boolean表达式 执行语句1
  • 小程序语音识别用户体验优化

    文章由来 这里通过简单的对话形式来描述接下来要讲的bug 相关界面在文章中都有展示 可以结合相关图片更好的理解问题 测试小伙伴 界面一直停留在 语音识别中 我 都到识别这一步了 应该是测试环境下后台不稳定吧 你再多试几次 测试小伙伴 我去问
  • 爬虫的操作

    目录 爬虫基本 re etree beautifulsoup 保存本地 连接数据库 基本 re lxml etree beautifulsoup 保存到本地 传入数据库 大致分为 爬虫基本 re etree beautifulsoup 保存
  • 分布式思维

    说在前面的话 Java编程里有两座大山 高可用 高并发 而分布式无疑是翻越这两座大山最好的方式 本篇文章讲的是分布式思维 目的是为了帮助大家在学习分布式之前对某些分布式领域里的一些概念做了解 在脑海里对分布式有个整体的认识 不会针对某一项技
  • 卷积神经网络中的 “全连接层”

    文章目录 一 什么是 全连接层 二 详解 一 什么是 全连接层 对 n 1 层和 n 层而言 n 1 层的任意一个节点 都和第 n 层所有节点有连接 即第n层节点都和第n 1层节点相连接 即第n层的每个节点在进行计算的时候 激活函数的输入是
  • django.core.exceptions.ImproperlyConfigured: Requested setting DEFAULT_INDEX_TABLESPACE, but setting

    django core exceptions ImproperlyConfigured Requested setting DEFAULT INDEX TABLESPACE but settings are not configured Y
  • JSP+Servlet+JavaBean

    JSP相当于在HTML页面中加上Java代码 一般在标签中放入主要代码 在JSP里用把Java代码包含起来的 Servlet的生命周期 被服务器实例化后 容器运行init方法 当请求 Request 到达时 运行service方法 serv