首页 > 编程语言 > 详细

JAVA面试常考系列十

时间:2020-12-05 17:48:01      阅读:33      评论:0      收藏:0      [点我收藏+]
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。

程序员面试】是IT求职神器,提供海量C++、JAVA、前端等职业笔试题库,在线进行一线互联网名企笔试面试模拟考试练习,天天刷题,和牛人一起讨论经典试题,全面提升你的编程能力,海量高薪职位信息等着你!永远为下个月离职做好准备!年薪百万的码农都已关注!

JAVA面试常考系列十

原文:https://blog.51cto.com/15047485/2559933

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!