JAVA面试常考系列十

转载自 JAVA面试常考系列十

题目一

Servlet是什么

Servlet(Server Applet)是Java Servlet的简称,称为小服务程序或服务连接器,是用Java编写的服务器端程序,主要的作用是处理客户端请求并生成动态Web内容。

一般情况下,Servlet主要用于处理或者存储由HTML表单提交的数据,提供动态内容管理状态信息。

题目二

Applet和Servlet有什么区别?

Applet是客户端Java程序,Servlet是服务器端组件

Applet运行在客户机上的Web浏览器中,Servlet运行在Web服务器上。

Applet可以使用用户接口类,servlet没有用户接口等待客户端的HTTP请求,并在每个请求中产生一个响应。

题目三

GenericServlet和HttpServlet有什么区别?

HttpServlet是GenericServlet的子类

GenericServlet是个抽象类,必须给出子类才能实例化。给出了设计servlet的一些架构,定义了servlet生命周期,以及一些得到名字、配置、初始化参数的方法,其设计的是和应用层协议无关的

HttpServlet是子类,所以具有GenericServlet的一切特性,还添加了doGet, doPost, doDelete, doPut, doTrace等方法用来处理http协议里命令的请求响应过程。

题目四

一个Servlet生命周期中经历了哪些过程?

Servlet 在加载之后依次经历了实例化服务销毁三个过程

init()

在服务器装入Servlet时,将会执行init()方法,目的是为了初始化Servlet对象。可以通过配置服务器,在启动服务器或客户机首次访问Servlet时装入Servlet。Init()方法在整个生命周期中,仅仅执行一次,访问Servlet的客户机数量无关。

service()

负责响应客户的请求Servlet的核心。当一个客户请求一个HttpServlet对象,对象就会调用Service()方法,并传递给方法一个请求对象和一个响应对象作为参数。Service()方法HttpServlet中已存在,默认的服务功能是调用与HTTP请求的方法相应的do功能。

destroy()

在服务器端停止且卸载Servlet时执行该方法,用来释放占用的资源。一个Servlet在运行service()方法时可能会产生其他的线程,所以在调用destroy()方法时,需要确认这些线程已经终止或完成。init()方法一样,整个生命周期中,仅执行一次。 

题目五

doGet()和doPost()有什么区别? 

区别一

get是从服务器上获取数据,post是向服务器传送数据。

区别二

get是把参数数据队列加到提交表单的ACTION属性所指的URL中,值和表单内各个字段一一对应,在URL中可以看到。post是通过HTTP post机制,将表单内各个字段与其内容放置在HTML HEADER内一起传送到ACTION属性所指的URL地址。过程对用户不可见。

区别三

对于get方式,服务器端用Request.QueryString获取变量的值,对于post方式,服务器端用Request.Form获取提交的数据。

区别四

get传送的数据量较小,不能大于2KB。post传送的数据量较大,一般被默认为不受限制。但理论上,IIS4中最大量为80KB,IIS5中为100KB。

区别五

get安全性非常低,post安全性较高。但是执行效率却比Post方法好。  

题目六

什么是服务器端包含(SSI)?

服务端包含(SSI)是一种简单的解释型服务端脚本语言,多数情况下只用在Web上,用servlet标签嵌入。SSI最常用的场景把一个或多个文件包含到Web服务器的一个Web页面中。当浏览器访问Web页面的时候,Web服务器会用对应的servlet产生的文本来替换Web页面中的servlet标签。 

题目七

什么是ServletChaining

ServletChaining是一种传输方法,用来把一个Servlet的输出发送给另一个Servlet。第二个Servlet的输出可以发送给第三个Servlet,依次循环。链末端Servlet负责把响应发送给客户端

题目八

如何找出当前向你请求servlet的客户机

ServletRequest类具有查找客户机的IP地址或主机名的功能。

getRemoteAddr()获取客户机的IP地址

getRemoteHost()获取客户机的主机名。

题目九

HTTP响应的结构是什么

HTTP响应由三部分组成:

状态代码:描述响应的状态。它可以用来检查请求是否已经成功完成。在请求失败的情况下,状态码可以用来找出失败的原因。如果您的servlet没有返回状态码,则默认返回成功状态码HttpServletResponse.SC_OK。

HTTP标头:它们包含更多关于响应的信息。例如,标题可以指定响应被视为陈旧的日期/时间,或用于安全地将实体传送给用户的编码形式。

Body:它包含响应的内容。正文可能包含HTML代码,图像等。主体由紧接在标题之后的HTTP事务消息中传输的数据字节组成。


题目十

sendRedirect和forward方法有什么区别?

区别一

sendRedirect方法可以定位到同一个web站点的其他应用,甚至可以通过传入绝对路径定位到别的web站点forward方法只能转发给同一个web站点的资源

区别二

sendRedirect转发后,浏览器url地址变为目的url地址。forward重定向后,浏览器url地址不变

区别三

使用sendRedirect转发的过程,浏览器先向目的Servlet发送一次请求,Servlet看到sendRedirect将目的url返回到浏览器,浏览器再去请求目的url,目的url再返回response到浏览器。浏览器和服务器两次请求响应。

使用forward重定向的过程,是浏览器先向目的Servlet发送一次Request请求,然后再服务器端由Servlet再将请求发送到目的url,再由服务器端Servlet返回Response到浏览器端。浏览器和服务器一次请求响应。

区别四

sendRedirect方法由于两次浏览器服务器请求,所以有两个Request和Response。

forward方法的调用者与被调用者之间共享Request和Response


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

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

相关文章

DotNet 资源大全

Awesome DotNet,这又是一个 Awesome XXX 系列的资源整理,由 quozd 发起和维护。内容包括:编译器、压缩、应用框架、应用模板、加密、数据库、反编译、IDE、日志、风格指南等。 伯乐在线已在 GitHub 上发起「DotNet 资源大全中文版」的整理。欢…

javabean与json转换(fastjson与jackson两个版本)

【README】 本文演示了 javabean与json转换的开发方式&#xff1b; 要想 javabean的属性名 与 json的字段名不一致&#xff0c;也是可以转换的&#xff1b; 之前需要引入 ali.fastjson <dependency><groupId>com.alibaba</groupId><artifactId>fas…

mysql数据库新建一个递增的_分享一个mysql实验—基于数据库事务隔离级别RR及RC的测试...

概述今天主要分享一个最近做的实验&#xff0c;主要是测试mysql数据库在RR和RC不同事务隔离级别下的表现。MySQL使用可重复读来作为默认隔离级别的主要原因是语句级的Binlog。RR能提供SQL语句的写可串行化&#xff0c;保证了绝大部分情况(不安全语句除外)的DB/DR一致。下面以my…

直面Java第45期

转载自 直面Java第45期

ABP框架搭建项目系列教程基础版

我现在要着手一个新的项目&#xff0c;也打算用这个框架&#xff0c;所以想要将我一步一步用这个框架的做项目的步骤和想法跟大家分享出来。 经过前面十二篇的基础教程&#xff0c;现在终于该做个总结了。 第一篇&#xff0c;我们建议新手朋友们先通过ABP官网的启动模板生成解决…

字节数组转jsonobject(如读取HttpServletRequest.inputstream到jsonobject)

【README】 本文po出了 如何读取 字节数组到jsonobject&#xff1b; 字节数组如何获取&#xff0c;本文不再赘述&#xff1b; 【1】代码 /*** Description 字节数组转json演示* author xiao tang* version 1.0.0* createTime 2022年02月11日*/ public class ByteArr2JsonDem…

sql server 2008安装_性能不够?基于时序数据库的Zabbix 5.2安装指南

我们往往在谈论zabbix的优缺点的时候&#xff0c;提到最多的依然还是数据库(默认采用关系型数据库)&#xff0c;由于关系型数据库所有的读写都是采用sql语句解析&#xff0c;一但并发过大或者数据量过大&#xff0c;处理能力就显得捉襟见肘&#xff0c;这也是Zabbix让人诟病的地…

对象并不一定都是在堆上分配内存的

转载自 对象并不一定都是在堆上分配内存的 JVM内存分配策略 关于JVM的内存结构及内存分配方式&#xff0c;不是本文的重点&#xff0c;这里只做简单回顾。以下是我们知道的一些常识&#xff1a; 1、根据Java虚拟机规范&#xff0c;Java虚拟机所管理的内存包括方法区、虚拟机栈、…

Bash on Windows 抢鲜测试 -- 介绍及安装

前言 微软在上周的Windows BUILD大会上宣布&#xff0c;WIN10将引入原生Bash&#xff0c;并将很快在技术预览版中推出。 如此一来&#xff0c;windows的命令行工具就不再只有cmd和powershell了&#xff0c;我们可以还可以使用bash。 今天&#xff08;2016/4/8&#xff09;收到了…

jvm的client与server工作模式

【README】 JVM Server模式与client模式启动&#xff0c;最主要的差别在于&#xff1a; -Server模式启动时&#xff0c;速度较慢&#xff0c;但是一旦运行起来后&#xff0c;性能将会有很大的提升. 原因是:当虚拟机运行在-client模式的时候,使用的是一个代号为C1的轻量级编译…

python重定向到socket_python套接字流重定向实例汇总

#!/usr/bin/env python3"""测试socket-stream 重定向模式"""import sys,os,timefrom multiprocessing import Processfrom socket import *def initListenerSocket(port50008,host):"""初始化在服务器模式下调用者用于监听连接的…

Spring Boot的自动化配置原理

转载自 Spring Boot的自动化配置原理 随着Ruby、Groovy等动态语言的流行&#xff0c;相比较之下Java的开发显得格外笨重。繁多的配置、低下的开发效率、复杂的部署流程以及第三方技术集成难度大等问题一直被人们所诟病。随着Spring家族中的新星Spring Boot的诞生&#xff0c;这…

复盘Build 2016:不要错过微软给.NET开发者的这些福利

本文作者陈计节&#xff0c;ThoughtWorks 高级咨询师。多年的跨平台 .NET 开发者&#xff0c;全栈工程师&#xff0c;技术布道师。擅长互联网应用程序的设计、开发和运维等工作。 近年来&#xff0c;微软坚持为社区提供更多灵活性&#xff0c;并以更开放的思路重构其已有平台&a…

java异步线程内存可见性实验

【README】 本文演示了内存可见性的场景&#xff0c;以及解决方法&#xff1b; 相关定义如下&#xff08;转自java并发编程实战&#xff0c;一本好书&#xff0c;强烈推荐&#xff09;&#xff1a; 内存可见性&#xff1a;一个线程修改了对象状态后&#xff0c; 其他线程可以…

springboot 单例_如何实现一个单例及优化

前言 社长,一个爱学习,爱分享的程序猿,始终相信,付出总会有回报的。 知识改变命运,学习成就未来。爱拼才会赢! 程序猿学社的GitHub,已整理成相关技术专刊,欢迎 Star:。 https:// github.com/ITfqyd/cxyxs 社长,4年api搬运工程师,之前做的都是一些框架的搬运工作,做的时间…

乐观锁的一种实现方式——CAS

转载自 乐观锁的一种实现方式——CAS在深入理解乐观锁与悲观锁一文中我们介绍过锁。本文在这篇文章的基础上&#xff0c;深入分析一下乐观锁的实现机制&#xff0c;介绍什么是CAS、CAS的应用以及CAS存在的问题等。线程安全 众所周知&#xff0c;Java是多线程的。但是&#xff0…

熬夜并不值得程序员炫耀

许多程序嘴上经常挂着每天加班到凌晨三点的论调&#xff0c;但事实上这没什么值得炫耀的&#xff0c;加班通常都是效率低的代名词。 放弃睡眠就像是高利贷借款。没错&#xff0c;看上去你是得到了额外的时间&#xff0c;但你想得太乐观了&#xff0c;你知道代价是什么吗&#x…

前端wxml取后台js变量值_这些鲜为人知的前端冷知识,你都GET了吗?

背景最近公司项目不多&#xff0c;比较清闲&#xff0c;划水摸鱼混迹于各大技术博客平台&#xff0c;瞬间又GET了好多前端技能&#xff0c;一些属于技巧&#xff0c;一些则是闻所未闻的冷知识&#xff0c;一时间还消化不过来&#xff0c;不由的发出一声感叹&#xff01;前端可真…

(转-这篇文章非常棒) Thread的中断机制(interrupt)

转自&#xff1a; Thread的中断机制(interrupt)-这篇文章非常棒 Thread的中断机制(interrupt) - 寂静沙滩 - 博客园先看收集了别人的文章&#xff0c;全面的了解下java的中断&#xff1a;中断线程线程的thread.interrupt()方法是中断线程&#xff0c;将会设置该线程的中断状态…

深入理解乐观锁与悲观锁

转载自 [初级]深入理解乐观锁与悲观锁在数据库的锁机制中介绍过&#xff0c;数据库管理系统&#xff08;DBMS&#xff09;中的并发控制的任务是确保在多个事务同时存取数据库中同一数据时不破坏事务的隔离性和统一性以及数据库的统一性。 乐观并发控制(乐观锁)和悲观并发控制&a…