网易首页 > 网易号 > 正文 申请入驻

Java Web面试题及答案汇总

0
分享至

Java Web面试题汇总

1 http 的长连接和短连接

HTTP 协议有 HTTP/1.0 版本和 HTTP/1.1 版本。HTTP1.1 默认保持长连接(HTTP persistent connection,也翻译为持久连接),数据传输完成了保持 TCP 连接不断开(不发 RST 包、不四次握手),等待在同域名下继续用这个通道传输数据;相反的就是短连接。

在 HTTP/1.0 中,默认使用的是短连接。也就是说,浏览器和服务器每进行一次 HTTP 操作,就建立一次连接,任务结束就中断连接。从 HTTP/1.1 起,默认使用的是长连接,用以保持连接特性。

2 http 常见的状态码有哪些?

200 OK //客户端请求成功

301 Moved Permanently(永久移除),请求的 URL 已移走。Response 中应该包含一个 Location URL, 说明资源现在所处的位置

302 found 重定向

400 Bad Request //客户端请求有语法错误,不能被服务器所理解

401 Unauthorized //请求未经授权,这个状态代码必须和 WWW-Authenticate 报头域一起使用

403 Forbidden //服务器收到请求,但是拒绝提供服务

404 Not Found //请求资源不存在,eg:输入了错误的 URL

500 Internal Server Error //服务器发生不可预期的错误

503 Server Unavailable //服务器当前不能处理客户端的请求,一段时间后可能恢复正常

3 GET 和POST 的区别?

(1)GET 请求的数据会附在URL 之后(就是把数据放置在 HTTP 协议头中),以?分割URL 和传输数据,参数之间以&相连,如:login.action?name=zhagnsan&password=123456。POST 把提交的数据则放置在是 HTTP 包的包体中。

(2)GET 方式提交的数据最多只能是 1024 字节,理论上POST 没有限制,可传送大量的数据。其实这样说是错误的,不准确的:“GET 方式提交的数据最多只能是 1024 字节”,因为 GET 是通过 URL 提交数据,那么 GET 可提交的数据量就跟URL 的长度有直接关系了。而实际上,URL 不存在参数上限的问题,HTTP 协议规范没有对 URL 长度进行限制。这个限制是特定的浏览器及服务器对它的限制。IE 对URL 长度的限制是2083 字节(2K+35)。对于其他浏览器,如Netscape、FireFox 等,理论上没有长度限制,其限制取决于操作系统的支持。

(3)POST 的安全性要比GET 的安全性高。注意:这里所说的安全性和上面 GET 提到的“安全”不是同个概念。上面“安全”的含义仅仅是不作数据修改,而这里安全的含义是真正的 Security 的含义,比如:通过 GET 提交数据,用户名和密码将明文出现在 URL 上,因为(1)登录页面有可能被浏览器缓存,(2)其他人查看浏览器的历史记录,那么别人就可以拿到你的账号和密码了,除此之外,使用 GET 提交数据还可能会造成 Cross-site request forgery 攻击。

Get 是向服务器发索取数据的一种请求,而 Post 是向服务器提交数据的一种请求,在 FORM(表单)中,Method

默认为“GET”,实质上,GET 和 POST 只是发送机制不同,并不是一个取一个发!

4 Cookie 和Session 的区别

Cookie 是 web 服务器发送给浏览器的一块信息,浏览器会在本地一个文件中给每个 web 服务器存储 cookie。以后浏览器再给特定的 web 服务器发送请求时,同时会发送所有为该服务器存储的 cookie。

Session 是存储在 web 服务器端的一块信息。session 对象存储特定用户会话所需的属性及配置信息。当用户在应用程序的 Web 页之间跳转时,存储在 Session 对象中的变量将不会丢失,而是在整个用户会话中一直存在下去。

Cookie 和session 的不同点:

(1)无论客户端做怎样的设置,session 都能够正常工作。当客户端禁用 cookie 时将无法使用 cookie。

(2)在存储的数据量方面:session 能够存储任意的java 对象,cookie 只能存储 String 类型的对象。

5 在单点登录中,如果 cookie 被禁用了怎么办?

单点登录的原理是后端生成一个 session ID,然后设置到 cookie,后面的所有请求浏览器都会带上 cookie, 然后服务端从 cookie 里获取 session ID,再查询到用户信息。所以,保持登录的关键不是 cookie,而是通过cookie 保存和传输的 session ID,其本质是能获取用户信息的数据。除了 cookie,还通常使用 HTTP 请求头来传输。但是这个请求头浏览器不会像 cookie 一样自动携带,需要手工处理。

6 什么是jsp,什么是Servlet?jsp 和Servlet 有什么区别?

jsp 本质上就是一个Servlet,它是 Servlet 的一种特殊形式(由 SUN 公司推出),每个 jsp 页面都是一个servlet实例。

Servlet 是由 Java 提供用于开发 web 服务器应用程序的一个组件,运行在服务端,由 servlet 容器管理,用来生成动态内容。一个 servlet 实例是实现了特殊接口 Servlet 的 Java 类,所有自定义的 servlet 均必须实现 Servlet 接口。

区别:

jsp 是 html 页面中内嵌的Java 代码,侧重页面显示;

Servlet 是 html 代码和 Java 代码分离,侧重逻辑控制,mvc 设计思想中jsp 位于视图层,servlet 位于控制层

Jsp 运行机制:如下图

JVM 只能识别 Java 类,并不能识别 jsp 代码!web 容器收到以.jsp 为扩展名的 url 请求时,会将访问请求交给tomcat 中 jsp 引擎处理,每个 jsp 页面第一次被访问时,jsp 引擎将 jsp 代码解释为一个 servlet 源程序,接着编译servlet 源程序生成.class 文件,在web 容器 servlet 引擎去装载执行servlet 程序,实现页面交互。

7 servlet生命周期

Servlet 加载—>实例化—>服务—>销毁。

生命周期详解:

init():

在Servlet的生命周期中,仅执行一次init()方法。它是在服务器装入Servlet时执行的,负责初始化Servlet对象。可以配置服务器,以在启动服务器或客户机首次访问Servlet时装入Servlet。无论有多少客户机访问Servlet,都不会重复执行init()。

service():

它是Servlet的核心,负责响应客户的请求。每当一个客户请求一个HttpServlet对象,该对象的Service()方法就要调用,而且传递给这个方法一个“请求”(ServletRequest)对象和一个“响应”(ServletResponse)对象作为参数。在HttpServlet中已存在Service()方法。默认的服务功能是调用与HTTP请求的方法相应的do功能。

destroy():

仅执行一次,在服务器端停止且卸载Servlet时执行该方法。当Servlet对象退出生命周期时,负责释放占用的资源。一个Servlet在运行service()方法时可能会产生其他的线程,因此需要确认在调用destroy()方法时,这些线程已经终止或完成。

如何与Tomcat 结合工作步骤:

(1)Web Client 向Servlet容器(Tomcat)发出Http请求

(2)Servlet容器接收Web Client的请求

(3)Servlet容器创建一个HttpRequest对象,将Web Client请求的信息封装到这个对象中。

(4)Servlet容器创建一个HttpResponse对象

(5)Servlet容器调用HttpServlet对象的service方法,把HttpRequest对象与HttpResponse对象作为参数传给HttpServlet 对象。

(6)HttpServlet调用HttpRequest对象的有关方法,获取Http请求信息。

(7)HttpServlet调用HttpResponse对象的有关方法,生成响应数据。

8 servlet特性

单实例多线程

9 servlet是单实例的吗?

servlet是单实例的

10 servlet是线程安全的吗?为什么?

Servlet对象并不是一个线程安全的对象。

Servlet第一次被调用的时候,init()方法会被调用,然后调用service() 方法,从第二次被请求开始,就直接调用service()方法。

因为servlet是单实例的,所以后面再次请求同一个Servlet的时候都不会创建Servlet实例,

而且web容器会针对每个请求创建一个独立的线程,这样多个并发请求会导致多个线程同时调用 service() 方法,这样就会存在线程不安全的问题。

11 如何解决Servlet线程不安全的问题?

(1)不要在servlet中使用成员变量。

(2)可以给servlet中的方法添加同步锁,Synchronized,但是不提倡,数据并发访问会造成阻塞等待。

(3)可以实现 SingleThreadModel 接口,如下。这样可以避免使用成员变量的问题,但是也不提倡,原因同上。

Public class Servlet1 extends HttpServlet implements SingleThreadModel{

……。。

12 谈谈过滤器的作用

过滤器,是在java web中,你传入的request,response提前过滤掉一些信息,或者提前设置一些参数,然后再传入servlet或者struts的 action进行业务逻辑,比如过滤掉非法url(不是login·do的地址请求,如果用户没有登陆都过滤掉),或者在传入servlet或者 struts的action前统一设置字符集,或者去除掉一些非法字符

13 谈谈拦截器的作用

拦截器,是在面向切面编程的就是在你的service或者一个方法前,调用一个方法,或者在方法后调用一个方法比如动态代理就是拦截器的简单实现,在你调用方法前打印出字符串(或者做其它业务逻辑的操作),也可以在你调用方法后打印出字符串,甚至在你抛出异常的时候做业务逻辑的操作。

14 拦截器和过滤器有什么区别

拦截器基于反射机制,而过滤器基于函数回调

拦截器基于Strust2或SpringMVC这样的表述层框架,而过滤器基于Servlet容器

拦截器只能在框架内部生效,而过滤器可以对所有请求生效

拦截器可以访问框架内的资源对象(例如Spring IOC容器中的对象),而过滤器不能直接访问框架内的资源对象

15 拦截器和过滤器的执行顺序

过滤前 – 拦截前 – Action处理 – 拦截后 – 过滤后。

过滤是一个横向的过程,首先把客户端提交的内容进行过滤(例如未登录用户不能访问内部页面的处理);过滤通过后,拦截器将检查用户提交数据的验证,做一些前期的数据处理,接着把处理后的数据发给对应的Action;Action处理完成返回后,拦截器还可以做其他过程(还没想到要做啥),再向上返回到过滤器的后续操作。

特别声明:以上内容(如有图片或视频亦包括在内)为自媒体平台“网易号”用户上传并发布,本平台仅提供信息存储服务。

Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.

相关推荐
热点推荐
少妇身材真是棒,横看成岭侧成峰!

少妇身材真是棒,横看成岭侧成峰!

阿芒娱乐说
2024-04-29 10:06:43
保级狂魔埃弗顿剩3轮领先降级区11分,被扣8分仍成功保级❗

保级狂魔埃弗顿剩3轮领先降级区11分,被扣8分仍成功保级❗

直播吧
2024-04-28 16:28:25
不会演别尬演!范伟一段“劳改犯出狱戏”,让观众看清演技有多假

不会演别尬演!范伟一段“劳改犯出狱戏”,让观众看清演技有多假

喵喵娱乐团
2024-04-26 16:09:28
申花国安双双申诉!马宁傅明遭质疑,绝杀被吹+被推倒反被判点

申花国安双双申诉!马宁傅明遭质疑,绝杀被吹+被推倒反被判点

奥拜尔
2024-04-29 10:59:34
解放前,一侦查员将被处决,房东送断头饭时悄声道:这饭要仔细吃

解放前,一侦查员将被处决,房东送断头饭时悄声道:这饭要仔细吃

百年历史老号
2024-04-25 19:23:29
“路面上任何一个草堆都不要压,这才是真正的伏地魔!”哈哈

“路面上任何一个草堆都不要压,这才是真正的伏地魔!”哈哈

王二哥老搞笑
2024-04-29 07:25:26
美国想收割中国,半路杀出多个程咬金,美国绷不住了

美国想收割中国,半路杀出多个程咬金,美国绷不住了

文昌每日谈
2024-04-29 13:08:45
腾讯高管谈微信消息撤回提示:为保障送达准确性,若撤回无痕,是否准确送达就说不清了

腾讯高管谈微信消息撤回提示:为保障送达准确性,若撤回无痕,是否准确送达就说不清了

搞笑的阿万
2024-04-28 14:22:44
香港飞上海,国产大飞机C919将于6月1日开启首次境外商业飞行

香港飞上海,国产大飞机C919将于6月1日开启首次境外商业飞行

IT之家
2024-04-29 14:43:32
爱上兄弟的妈妈,兄弟竟有意撮合,从此我过上了不一样的生活

爱上兄弟的妈妈,兄弟竟有意撮合,从此我过上了不一样的生活

解忧坊
2023-11-01 00:00:03
他51岁被越级提拔,58岁与江同志“搭班子”,儿子曾是集团董事长

他51岁被越级提拔,58岁与江同志“搭班子”,儿子曾是集团董事长

江东浪流史
2024-04-24 11:18:14
巴特勒被莱利赶出更衣室!索要1.8亿遭拒,渴望加盟湖人联手詹皇

巴特勒被莱利赶出更衣室!索要1.8亿遭拒,渴望加盟湖人联手詹皇

小豆豆赛事
2024-04-28 19:32:57
波蒂斯被驱逐 现在米德尔顿也伤了 场边字母哥老里都傻了

波蒂斯被驱逐 现在米德尔顿也伤了 场边字母哥老里都傻了

直播吧
2024-04-29 08:38:09
当代嫪毐:养8名情妇,坐牢自由进出监狱,靠身体征服女狱警当性奴

当代嫪毐:养8名情妇,坐牢自由进出监狱,靠身体征服女狱警当性奴

古今档案
2023-12-24 22:33:08
她的美别具一格

她的美别具一格

室内设计师阿喇
2024-04-15 04:57:12
王室的点外卖特权:只有威廉王子和凯特王妃独享,偏爱咖喱美食

王室的点外卖特权:只有威廉王子和凯特王妃独享,偏爱咖喱美食

土澳的故事
2024-04-28 16:15:07
河北人肉煎饼案谷宝成被执行死刑,行刑前哭着抽完2根烟

河北人肉煎饼案谷宝成被执行死刑,行刑前哭着抽完2根烟

青丝人生
2024-04-07 19:08:37
哪吒汽车CEO张勇回应品牌改名

哪吒汽车CEO张勇回应品牌改名

21世纪经济报道
2024-04-28 11:29:25
女子摆摊被城管抢走钱盒,官方回应:误以为是调料盒。评论区沦陷

女子摆摊被城管抢走钱盒,官方回应:误以为是调料盒。评论区沦陷

臨堃视野
2024-04-29 13:26:29
私人影院提供特色观影服务?我试图前往体验,却发现掉入桃色陷阱

私人影院提供特色观影服务?我试图前往体验,却发现掉入桃色陷阱

亲爱的落落
2024-04-15 10:57:58
2024-04-29 15:58:44
IT爱好者小尚
IT爱好者小尚
分享IT教育类信息
630文章数 55关注度
往期回顾 全部

科技要闻

马斯克想把特斯拉中国数据送出国 这事太难

头条要闻

特斯拉中国版FSD疑将采用百度高辅地图 百度股价急涨

头条要闻

特斯拉中国版FSD疑将采用百度高辅地图 百度股价急涨

体育要闻

湖人的G4,尽人事得到了回报

娱乐要闻

田馥甄遭抵制,蔡依林却能稳稳捞金?

财经要闻

问界M7追尾起火3人遇难 四大疑问待解

汽车要闻

配置更丰富 静态体验2024款欧拉好猫

态度原创

艺术
本地
数码
房产
公开课

艺术要闻

共度北京108小时 北京当代2024“凝聚”全球36座城市100余家艺术机构

本地新闻

食味印象 | 潍坊:碳水脑袋的人间乐园

数码要闻

小米米家智能隐形晾衣机预售:自带 36W 渐亮照明灯,1049 元起

房产要闻

力度越来越大!落户两年享本地居民购房政策,海南第16城松绑限购!

公开课

父亲年龄越大孩子越不聪明?

无障碍浏览 进入关怀版