Servlet 相关问题及其解答

Java Web 之 Servlet 100问 链式处理:多个Filter可以串联,形成一个处理链,每个Filter依次处理请求和响应。 阅读详情

Q:Servlet 和 GCI 的区别?

A:Servlet 是基于 Java 编写的,处于服务器进程中,他能够通过多线程方式运行 service() 方法,一个实例可以服务于多个请求,而且一般不会销毁;
CGI 对每个请求都产生新的进程,服务完成后销毁,所以效率上低于 Servlet。


Q:Servlet 的生命周期?

A:分为 5 个阶段:加载、创建、初始化、处理客户请求、卸载。
①、加载:容器通过类加载器使用 Servlet 类对应的文件加载 servlet;
②、创建:通过调用 Servlet 构造函数创建一个 Servlet 实例;
③、初始化:调用 init() 方法初始化;
④、处理客户请求:每当有一个客户请求,容器会创建一个新的线程来处理客户请求(调用 service() 方法来响应客户请求,service() 方法会根据请求的 method 属性来调用 doGet() & doPost() 方法)
⑤、卸载:容器在卸载 Servlet 之前,需要调用 destroy() 方法让 Servlet 自己释放其占用的资源。


Q:HTTP 和 TCP/IP 的区别?

A:TPC/IP协议是传输层协议,主要解决数据如何在网络中传输,而HTTP是应用层协议,主要解决如何包装数据。


Q:GET 和 POST 有何区别?

A:表面上的区别:

本质区别:
只有一点根本区别:一个用于获取数据,一个用于修改数据。
原因:①、GET 和 POST 本质上就是 TCP 链接,并无差别。但是由于 HTTP 的规定和浏览器/服务器的限制,导致他们在应用过程中体现出一些不同。
②、GET 产生一个TCP数据包;POST 产生两个TCP数据包,data 数据包就是紧随在 header 数据包后面发送的(不存在『等待服务器响应』一说)。
③、GET & POST 与数据如何传递没有关系;
④、HTTP 协议对 GET & POST 没有长度的限制;
⑤、安全不安全与 GET & POST 没有关系。


Q:JSP 与 Servlet 有什么区别?

A:JSP 本质上就是 Servlet,每次运行的时候 JSP 都会被编译成 .java 文件,然后再被编译成 .class 文件。

有了 JSP,Servlet 不再负责动态生成页面,转而去负责控制程序逻辑的作用,控制 JSP 与 JavaBean 之间的流转。


Q:JSP 有哪些内置对象,作用是什么?

A:九大内置对象。
①、request:包含客户端请求的信息;
②、response:包含服务器传回客户端的响应信息;
③、session:主要用来区分每个用户信息和会话状态;
④、pageContext:管理页面属性;
⑤、application:服务器启动时创建,服务器关闭时停止,保存所有应用系统中的共有数据,一个共享的内置对象(即一个容器中的多个用户共享一个 application 对象);
⑥、out:向客户端输出数据;
⑦、config:代码片段配置对象,用于初始化 Servlet 的配置参数;
⑧、page:指网页本身;
⑨、exception:处理 JSP 文件执行时发生的错误和异常,只要在错误页面里才能使用。


Q:四种会话跟踪技术作用域(四大作用域)?

A:①、page:一个页面;
②、request:一次请求;
③、session:一次会话;
④、application:服务器从启动到停止。


Q:JSP 中 7 个动作指令和作用?

A:jsp:forward - 执行页面转向,把请求转发到下一个页面;
jsp:param - 用于传递参数,必须与其他支持参数的标签一起使用;
jsp:include - 用于动态引入一个 JSP 页面;
jsp:plugin - 用于下载 JavaBean 或 Applet 到客户端执行;
jsp:useBean - 寻求或者实例化一个JavaBean;
jsp:setProperty - 设置 JavaBean 的属性值;
jsp:getProperty - 获取 JavaBean 的属性值。


Q:JSP 中动态 INCLUDE 和静态 INCLUDE 有什么区别?

A:静态 INCLUDE:用 include 伪码实现,不会检查所含文件的变化,适用于包含静态页面<%@ include file=”页面名称.html” %>。先合并再编译。
动态 INCLUDE:用 jsp:include 动作实现 它总是会检查文件中的变化,适用于包含动态页面,并且可以带参数。先编译再合并。


Q:forward(转发)和 redirect(重定向)的原理以及区别?

A:首先解析一下原理:forward 和 redirect 代表了两种请求转发方式:直接转发和间接转发。(分别对应 RequestDispatcher 类的 forward() 方法和 HttpServletRequest 类的 sendRedirect() 方法)。

直接转发:客服端浏览器只发出一次请求,Servlet 把请求转发给 Servlet、HTML、JSP或其他信息资源,由第 2 个信息资源响应该请求,两个信息资源共享一个 request 对象;
间接转发:服务器端在响应第一次请求的时候,让浏览器再向另外一个 URL 发出请求,从而达到转发的目的。它本质上是两次请求,对应两个 request 对象。

再来说说区别:
①、从地址栏显示来看:forward 地址栏不变,redirect 显示新的 URL;
②、从数据共享来说:forward 共享 request 中的数据,redirect 不能;
③、从运用的地方来说:forward - 一般用于用户登陆的时候,根据角色转发到相应的模块, redirect - 一般用于用户注销登陆时返回主页面和跳转到其它的网址等;
④、从效率来说:forward 高,redirect 低。

极简Java Web项目-纯Servlet实现前后端贯通+MySql数据库增、删、改、查。(没有框架、没有service、没有dao) 前端一个JSP+后台一个Servlet即可搞定。 阅读详情

相关推荐

Java Servlet 大数据处理的集成与应用

在当今数字化时代,大数据已经成为企业和组织获取竞争优势的重要资源。Java Servlet 作为 Java Web 开发的基础技术,在处理 Web 请求和响应方面具有强大的能力。本文章的目的在于研究如何将 Java Servlet 与大数据处理技术进行有效的集成,以实现对大数据的高效处理和应用。范围涵盖了 Java Servlet 的基本原理、大数据处理的常见技术和算法,以及两者集成的具体方法和实际应用场景。

AI开发架构师 909

常见问题小结

Servlet是一个用于扩展服务器端功能的服务器端组件技术 运行在服务器端,所以调用执行是由服务器负责 在web.xml中需要进行配置,就是将servlet和一个请求地址建立对应关系,当浏览器对地址 发起请求时,服务器则按照规则调用serlvet类中的方法 服务器端的组件技术 直接或者间接的实现Servlet接口 用于扩展服务器端功能,可以实现动态网页的开发。一般情况下,在会话中,服务器存储的session是通过sessionid存储在cookie中,来存储在客户端的。

zjh0101的博客 373

61、Java Servlet与JSP开发全解析

本文深入解析了Java Servlet和JSP开发的核心知识,涵盖Servlet线程安全、Cookies与会话管理、JSP语法与标签库、Java Beans的应用,以及Struts框架的MVC架构实践。同时提供了实际案例,如在线商城系统和投票机器人的实现,帮助开发者掌握Web应用开发技巧。

web39explorer的博客 61

Servlet问题汇总

1.缓存 还是不行,就删除Tomcat 重新安装 2.自动部署 如果没有开着自动构建 导致 编写完之后不会生成class文件,导致ClassNotFunt找不到对应的类 如果 开启自动构建 还是提示未找到 1.程序是否有错 看是否报红 是否生成class 如果没有生成,可能是因为程序有错,如果程序没有错误,还是不生成class 可能因为之前报错了,及时现在更改了,但是依然出现了缓存问题 可以刷新项目,或者关闭eclipse重新打开,或者编写一个...

weixin_59544199的博客 535

JSP和SERVLET笔试常遇到的一些问题

介绍JSP常用内置对象,基本动作及其作用,跳转方式等; Servlet生命周期,基本架构等。

在ubuntu20.04上配置VINS_Fusion(亲测有效,一应俱全)

最近在做科研训练的时候配置了HKUST-Aerial-Robotics实验室的VINS_Fusion代码项目,经历了一些编译报错的问题,在网上查找的时候博客内容良莠不齐,且实质针对性意见不多,于是在此记录下自己配置期间遇到的一些共性问题,留作自己日后参考和大家的交流学习。

wyr1849089774的博客 8266

【经典】servlet中常见的问题与解答

ervlet是javaee技术当中很重要的一部分。所有web应用框架诸如spring,struts都建立在其上。这使得servlet成为java面试中的一个热门话题。 这里笔者罗列了一些常见的跟servlet相关的面试问题与解答,希望能够帮助大家: 1.web服务器(web server)和应用服务器(appliction server)的区别是什么? web服务器的任务是处理客

RowandJJ 7777

基于STM32的HC-SR04超声波模块测距(新手级)

本人是嵌入式新手,学习了STM32的部分内容,最近想找些项目做,然后顺便学习了一下HC-SR04超声波模块,学习过程中也参考了一些大佬的文章。本文记录了自己的学习方法和学习过程,同时也希望能和各位大佬交流讨论。

weixin_63758495的博客 2203

servlet的一些用法及相关知识的一些总结

servlet     是一个小型java服务器 通常通过http接受和响应来自web的请求          实现servlet         要么实现servlet接口 要么继承GenericServlet,HttpServlet类         通过配置进行操作 在web项目中,web.xml里进行配置              servlet入门程序         1

JINGYI233的博客 329

Pyrosim进阶指南:从隧道火灾模拟到复杂通风策略分析

本文深入探讨Pyrosim在隧道火灾模拟与通风策略分析中的高级应用。从精确几何建模到火源参数设置,再到通风系统的量化分析,详细介绍了如何利用Pyrosim优化隧道安全设计。特别强调了临界风速验证、横向通风配置及结果可视化技巧,为工程师提供实用的进阶指南。

weixin_30644369的博客 137

数字IC后端设计实现 | PR工具中到底应该如何控制density和congestion?(ICC2&Innovus)

数字IC后端设计实现中到底应该如何控制cell density和congestion?(ICC2和Innovus两种解决方案)

weixin_37584728的博客 7112

Servlet使用过程中常见问题总结

解析数据是通过浏览器进行解析的,浏览器的编码方式默认是和操作系统一致的,我的操作系统是windows简体中文版,默认的编码方式是gbk,所以浏览器的编码方式也是gbk,所以会产生乱码问题。要想解决乱码问题,就要统一编码方式,我们建议将gbk改为utf8(更容易),只需在响应报文的头部中进行设置即可。405表示方法不允许,这在初学期经常出现,比如请求报文的方法是GET,但是没有重写doGet方法就会触发405。想要解决乱码问题,我们首先要清楚乱码是如何产生的,一般来说,如果出现了乱码问题,就说明。

Mylvzi的博客 552

蓝桥杯 stm32 PWM 测量频率

参考 数据手册:比赛 的板子 上面有两个信号发生器,如下图。通过 扭动 可变电阻 (R40, R39), 来实现 PWM 频率的改变。PA15PB4。PA15,PB4分别使用TIM2_CH1TIM3_CH1来对频率进行捕获。

wuyiyu_的博客 2931

servlet面试时遇到问题和Eclipse中servlet显示无法导入javax.servlet包问题的解决方案

servlet面试时遇到问题和Eclipse中servlet显示无法导入javax.servlet包问题的解决方案

runwuwushengxiyu的博客 245

小米15修复“NV损坏” 去除主板校验电阻步骤解析与图示

小米15系列将搭载骁龙8至尊版处理器,采用台积电3nm工艺。文章分析了手机出现"NV损坏"故障的表现及修复方法,包括通信异常、系统启动问题等典型症状,并介绍了去除主板校验电阻和刷写工程固件两种修复方案。重点讲解了去除主板电阻后刷写QCN文件的操作流程,强调在维修过程中需要结合分析与思考。适用于小米15系列特定机型(24129PN74G/I/C)的硬件修复。

小马哥的专栏 311

【数字孪生工业应用实战】第2篇:数字孪生系统架构设计与技术选型——从“作秀”到“实干”的骨架构建

本文系统剖析了数字孪生系统从“作秀”到“实干”的架构设计关键。针对多数项目在POC转生产时因架构混乱、选型盲目而失败的问题,深入阐述了四层分层架构(感知层、传输层、模型层、应用层)的设计原则,重点解析了感知层的异构适配与边缘预处理、传输层的异步解耦与多模式通信等工程细节。结合OPC UA、MQTT、EdgeX Foundry等主流技术选型对比,以及汽车焊装车间边缘智能网关的实战代码,提供了从零搭建微型孪生系统的完整指导。旨在帮助工程师建立清晰的选型决策逻辑,构建稳定、可演进的数字孪生“骨架”。

专注于人工智能、软件开发、工控自动化、工厂数字化及智能化等领域,希望和大家共同进步! 264

答Servlet下载文件的附件

在问答频道里答Servlet下载文件的附件

李亚希javaeye的部落格 113

❤️爆肝十二万字《python从零到精通教程》,从零教你变大佬❤️(建议收藏)

文章目录强烈推荐系列教程,建议学起来!!一.pycharm下载安装二.python下载安装三.pycharm上配置python四.配置镜像源让你下载嗖嗖的快4.1pycharm内部配置4.2手动添加镜像源4.3永久配置镜像源五.插件安装(比如汉化?)5.1自动补码神器第一款5.2汉化pycharm5.3其它插件六.美女背景七.自定义脚本开头八、这个前言一定要看九、python入门十、python缩进十一、Python注释1.单行注释2.多行注释十二、Python 变量1.变量定义理解2. 变量名命名3. 分

全栈川川 26万+

servlet采用单实例多线程模式开发的问题

servlet采用单实例多线程模式开发的问题,文章对我想要了解的问题给了比较明晰的解答 [url]http://www.iteye.com/topic/287140[/url]

qixiaopeng 150

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

servlet的原理及过程

Servlet的框架是由两个Java包组成:–javax.servlet包:定义了所有的Servlet类都必须实现或扩展的通用接口和类。–javax.servlet.http包:定义了采用HTTP协议通信的HttpServlet类。每一个Servlet都必须要实现Servlet接口,GenericServlet是个通用的、不特定于任何协议的Servlet,它实现了Servlet接口,而Http

yjsuge的专栏 607

NTscan扫描工具

ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。

index加载显示servlet数据_[WEB篇]-JavaWeb基础与应用-02-Servlet开发

JavaWeb基础与应用2.Servlet开发Servlet是sun公司提供的一门用于开发动态web资源的技术。Sun公司在其API中提供了一个servlet接口,用户若想用发一个动态web资源(即开发一个Java程序向浏览器输出数据),需要完成以下2个步骤:编写一个Java类,实现servlet接口。把开发好的Java类部署到web服务器中。快速入门,用servlet向浏览器输出“hello s...

weixin_39835178的博客 303

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

JavaEE面经:一篇文章解答你的面试困惑

2021年的金三银四一眨眼就到了,对于很多人来说是跳槽的好机会,大厂面试远没有我们想的那么困难,摆好心态,做好准备,你也可以的。另外,面试中遇到不会的问题不妨尝试讲讲自己的思路,因为有些问题不是考察我们的编程能力,而是逻辑思维表达能力;最后平时要进行自我分析与评价,做好职业规划,不断摸索,提高自己的编程能力和抽象思维能力。BAT面试经验实战系列:Spring全家桶+Redis等其他相关的电子书:源码+调优面试真题:《一线大厂Java面试题解析+核心总结学习笔记+最新讲解视频+实战项目源码》

2401_84010804的博客 1032

eclipse下javax.servlet.jsp.*包找不到问题

    网上说:    下载 Tomcat解压后,在%TOMCAT_HOME%/common/lib下的servlet-api.jar,可是发现里面只有http和resources两个目录,即使有的包里含有jsp目录可里面内容为空。     其实在%TOMCAT_HOME%/common/lib 目录下有2个jar包是你想要的:servlet-api.jar, jsp-api.jar.     而

每天=生命的最后一天 1万+

Mybatis和Servlet的整合

Mybatis和Servlet的整合搭建环境OpenSessionInView 的使用概念创建 OpenSqlSessionInViewFilter完成业务操作添加用户 搭建环境 创建项目 我们创建一个java web项目 添加 jar 包 添加 mybatis 的jar包和 servlet 的jar包 添加配置文件 添加 POJO、接口、映射配置文件 根据之前的深入学习三的工具的使用,快捷生成下列文件。 映射配置文件可以直接复制之前的项目内容。 OpenSessionInView 的使用 概念

这个名字没什么特点的博客 1801
上一篇: HashMap 相关面试题及其解答
下一篇: POJ 1458 Common Subsequence 最长公共子序列(LCS)
TinyDolphin
博客等级 码龄10年 0粉丝 163原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值