Java面试题全集中Word文件下载.docx

上传人:b****6 文档编号:21109922 上传时间:2023-01-27 格式:DOCX 页数:27 大小:54.13KB
下载 相关 举报
Java面试题全集中Word文件下载.docx_第1页
第1页 / 共27页
Java面试题全集中Word文件下载.docx_第2页
第2页 / 共27页
Java面试题全集中Word文件下载.docx_第3页
第3页 / 共27页
Java面试题全集中Word文件下载.docx_第4页
第4页 / 共27页
Java面试题全集中Word文件下载.docx_第5页
第5页 / 共27页
点击查看更多>>
下载资源
资源描述

Java面试题全集中Word文件下载.docx

《Java面试题全集中Word文件下载.docx》由会员分享,可在线阅读,更多相关《Java面试题全集中Word文件下载.docx(27页珍藏版)》请在冰豆网上搜索。

Java面试题全集中Word文件下载.docx

-request:

封装客户端的请求,其中包含来自GET或POST请求的参数;

-response:

封装服务器对客户端的响应;

-pageContext:

通过该对象可以获取其他对象;

-session:

封装用户会话的对象;

-application:

封装服务器运行环境的对象;

-out:

输出服务器响应的输出流对象;

-config:

Web应用的配置对象;

-page:

JSP页面本身(相当于Java程序中的this);

-exception:

封装页面抛出异常的对象。

如果用Servlet来生成网页中的动态内容无疑是非常繁琐的工作,另一方面,所有的文本和HTML标签都是硬编码,即使做出微小的修改,都需要进行重新编译。

JSP解决了Servlet的这些问题,它是Servlet很好的补充,可以专门用作为用户呈现视图(View),而Servlet作为控制器(Controller)专门负责处理用户请求并转发或重定向到某个页面。

基于Java的Web开发很多都同时使用了Servlet和JSP。

JSP页面其实是一个Servlet,能够运行Servlet的服务器(Servlet容器)通常也是JSP容器,可以提供JSP页面的运行环境,Tomcat就是一个Servlet/JSP容器。

第一次请求一个JSP页面时,Servlet/JSP容器首先将JSP页面转换成一个JSP页面的实现类,这是一个实现了JspPage接口或其子接口HttpJspPage的Java类。

JspPage接口是Servlet的子接口,因此每个JSP页面都是一个Servlet。

转换成功后,容器会编译Servlet类,之后容器加载和实例化Java字节码,并执行它通常对Servlet所做的生命周期操作。

对同一个JSP页面的后续请求,容器会查看这个JSP页面是否被修改过,如果修改过就会重新转换并重新编译并执行。

如果没有则执行内存中已经存在的Servlet实例。

我们可以看一段JSP代码对应的Java程序就知道一切了,而且9个内置对象的神秘面纱也会被揭开。

JSP页面:

<

%@pagepageEncoding="

UTF-8"

%>

%

Stringpath=request.getContextPath();

StringbasePath=request.getScheme()+"

:

//"

+request.getServerName()+"

"

+request.getServerPort()+path+"

/"

;

!

DOCTYPEhtml>

html>

head>

basehref="

%=basePath%>

>

title>

首页<

/title>

styletype="

text/css"

*{font-family:

Arial"

}

/style>

/head>

body>

h1>

Hello,World!

/h1>

hr/>

h2>

Currenttimeis:

<

%=newjava.util.Date().toString()%>

/h2>

/body>

/html>

对应的Java代码:

/*

*GeneratedbytheJaspercomponentofApacheTomcat

*Version:

ApacheTomcat/7.0.52

*Generatedat:

2014-10-1313:

28:

38UTC

*Note:

Thelastmodifiedtimeofthisfilewassetto

*thelastmodifiedtimeofthesourcefileafter

*generationtoassistwithmodificationtracking.

*/

packageorg.apache.jsp;

importjavax.servlet.*;

importjavax.servlet.http.*;

importjavax.servlet.jsp.*;

publicfinalclassindex_jspextendsorg.apache.jasper.runtime.HttpJspBase

implementsorg.apache.jasper.runtime.JspSourceDependent{

privatestaticfinaljavax.servlet.jsp.JspFactory_jspxFactory=javax.servlet.jsp.JspFactory.getDefaultFactory();

privatestaticjava.util.Map<

java.lang.String,java.lang.Long>

_jspx_dependants;

privatejavax.el.ExpressionFactory_el_expressionfactory;

privateorg.apache.tomcat.InstanceManager_jsp_instancemanager;

publicjava.util.Map<

getDependants(){

return_jspx_dependants;

publicvoid_jspInit(){

_el_expressionfactory=_jspxFactory.getJspApplicationContext(getServletConfig().getServletContext()).getExpressionFactory();

_jsp_instancemanager=org.apache.jasper.runtime.InstanceManagerFactory.getInstanceManager(getServletConfig());

publicvoid_jspDestroy(){}

publicvoid_jspService(

finaljavax.servlet.http.HttpServletRequestrequest,

finaljavax.servlet.http.HttpServletResponseresponse)

throwsjava.io.IOException,javax.servlet.ServletException{

//内置对象就是在这里定义的

finaljavax.servlet.jsp.PageContextpageContext;

javax.servlet.http.HttpSessionsession=null;

finaljavax.servlet.ServletContextapplication;

finaljavax.servlet.ServletConfigconfig;

javax.servlet.jsp.JspWriterout=null;

finaljava.lang.Objectpage=this;

javax.servlet.jsp.JspWriter_jspx_out=null;

javax.servlet.jsp.PageContext_jspx_page_context=null;

try{

response.setContentType("

text/html;

charset=UTF-8"

);

pageContext=_jspxFactory.getPageContext(this,request,response,null,true,8192,true);

_jspx_page_context=pageContext;

application=pageContext.getServletContext();

config=pageContext.getServletConfig();

session=pageContext.getSession();

out=pageContext.getOut();

_jspx_out=out;

out.write('

\r'

\n'

Stringpath=request.getContextPath();

StringbasePath=request.getScheme()+"

+request.getServerName()+"

+request.getServerPort()+path+"

//以下代码通过输出流将HTML标签输出到浏览器中

out.write("

\r\n"

basehref=\"

out.print(basePath);

\"

styletype=\"

text/css\"

\t*{font-family:

\"

Arial\"

}\r\n"

\r\n"

"

out.print(newjava.util.Date().toString());

}catch(java.lang.Throwablet){

if(!

(tinstanceofjavax.servlet.jsp.SkipPageException)){

out=_jspx_out;

if(out!

=null&

&

out.getBufferSize()!

=0)

out.clearBuffer();

}catch(java.io.IOExceptione){

if(_jspx_page_context!

=null)

_jspx_page_context.handlePageException(t);

else

thrownewServletException(t);

}finally{

_jspxFactory.releasePageContext(_jspx_page_context);

}

100、get和post请求的区别?

①get请求用来从服务器上获得资源,而post是用来向服务器提交数据;

②get将表单中数据按照name=value的形式,添加到action所指向的URL后面,并且两者使用"

?

连接,而各个变量之间使用"

连接;

post是将表单中的数据放在HTTP协议的请求头或消息体中,传递到action所指向URL;

③get传输的数据要受到URL长度限制(1024字节);

而post可以传输大量的数据,上传文件通常要使用post方式;

④使用get时参数会显示在地址栏上,如果这些数据不是敏感数据,那么可以使用get;

对于敏感数据还是应用使用post;

⑤get使用MIME类型application/x-www-form-urlencoded的URL编码(也叫百分号编码)文本的格式传递参数,保证被传送的参数由遵循规范的文本组成,例如一个空格的编码是"

%20"

101、常用的Web服务器有哪些?

Unix和Linux平台下使用最广泛的免费HTTP服务器是Apache服务器,而Windows平台的服务器通常使用IIS作为Web服务器。

选择Web服务器应考虑的因素有:

性能、安全性、日志和统计、虚拟主机、代理服务器、缓冲服务和集成应用程序等。

下面是对常见服务器的简介:

-IIS:

Microsoft的Web服务器产品,全称是InternetInformationServices。

IIS是允许在公共Intranet或Internet上发布信息的Web服务器。

IIS是目前最流行的Web服务器产品之一,很多著名的网站都是建立在IIS的平台上。

IIS提供了一个图形界面的管理工具,称为Internet服务管理器,可用于监视配置和控制Internet服务。

IIS是一种Web服务组件,其中包括Web服务器、FTP服务器、NNTP服务器和SMTP服务器,分别用于网页浏览、文件传输、新闻服务和邮件发送等方面,它使得在网络(包括互联网和局域网)上发布信息成了一件很容易的事。

它提供ISAPI(IntranetServerAPI)作为扩展Web服务器功能的编程接口;

同时,它还提供一个Internet数据库连接器,可以实现对数据库的查询和更新。

-Kangle:

KangleWeb服务器是一款跨平台、功能强大、安全稳定、易操作的高性能Web服务器和反向代理服务器软件。

此外,Kangle也是一款专为做虚拟主机研发的Web服务器。

实现虚拟主机独立进程、独立身份运行。

用户之间安全隔离,一个用户出问题不影响其他用户。

支持PHP、ASP、ASP.NET、Java、Ruby等多种动态开发语言。

-WebSphere:

WebSphereApplicationServer是功能完善、开放的Web应用程序服务器,是IBM电子商务计划的核心部分,它是基于Java的应用环境,用于建立、部署和管理Internet和IntranetWeb应用程序,适应各种Web应用程序服务器的需要。

-WebLogic:

WebLogicServer是一款多功能、基于标准的Web应用服务器,为企业构建企业应用提供了坚实的基础。

针对各种应用开发、关键性任务的部署,各种系统和数据库的集成、跨Internet协作等Weblogic都提供了相应的支持。

由于它具有全面的功能、对开放标准的遵从性、多层架构、支持基于组件的开发等优势,很多公司的企业级应用都选择它来作为开发和部署的环境。

WebLogicServer在使应用服务器成为企业应用架构的基础方面一直处于领先地位,为构建集成化的企业级应用提供了稳固的基础。

-Apache:

目前Apache仍然是世界上用得最多的Web服务器,其市场占有率很长时间都保持在60%以上(目前的市场份额约40%左右)。

世界上很多著名的网站都是Apache的产物,它的成功之处主要在于它的源代码开放、有一支强大的开发团队、支持跨平台的应用(可以运行在几乎所有的Unix、Windows、Linux系统平台上)以及它的可移植性等方面。

-Tomcat:

Tomcat是一个开放源代码、运行Servlet和JSP的容器。

Tomcat实现了Servlet和JSP规范。

此外,Tomcat还实现了Apache-Jakarta规范而且比绝大多数商业应用软件服务器要好,因此目前也有不少的Web服务器都选择了Tomcat。

-Nginx:

读作"

enginex"

,是一个高性能的HTTP和反向代理服务器,也是一个IMAP/POP3/SMTP代理服务器。

Nginx是由IgorSysoev为俄罗斯访问量第二的Rambler站点开发的,第一个公开版本0.1.0发布于2004年10月4日。

其将源代码以类BSD许可证的形式发布,因它的稳定性、丰富的功能集、示例配置文件和低系统资源的消耗而闻名。

在2014年下半年,Nginx的市场份额达到了14%。

102、JSP和Servlet是什么关系?

其实这个问题在上面已经阐述过了,Servlet是一个特殊的Java程序,它运行于服务器的JVM中,能够依靠服务器的支持向浏览器提供显示内容。

JSP本质上是Servlet的一种简易形式,JSP会被服务器处理成一个类似于Servlet的Java程序,可以简化页面内容的生成。

Servlet和JSP最主要的不同点在于,Servlet的应用逻辑是在Java文件中,并且完全从表示层中的HTML分离开来。

而JSP的情况是Java和HTML可以组合成一个扩展名为.jsp的文件。

有人说,Servlet就是在Java中写HTML,而JSP就是在HTML中写Java代码,当然这个说法是很片面且不够准确的。

JSP侧重于视图,Servlet更侧重于控制逻辑,在MVC架构模式中,JSP适合充当视图(view)而Servlet适合充当控制器(controller)。

103、讲解JSP中的四种作用域。

JSP中的四种作用域包括page、request、session和application,具体来说:

-page代表与一个页面相关的对象和属性。

-request代表与Web客户机发出的一个请求相关的对象和属性。

一个请求可能跨越多个页面,涉及多个Web组件;

需要在页面显示的临时数据可以置于此作用域。

-session代表与某个用户与服务器建立的一次会话相关的对象和属性。

跟某个用户相关的数据应该放在用户自己的session中。

-application代表与整个Web应用程序相关的对象和属性,它实质上是跨越整个Web应用程序,包括多个页面、请求和会话的一个全局作用域。

104、如何实现JSP或Servlet的单线程模式?

对于JSP页面,可以通过page指令进行设置。

%@pageisThreadSafe=”false”%>

对于Servlet,可以让自定义的Servlet实现SingleThreadModel标识接口。

说明:

如果将JSP或Servlet设置成单线程工作模式,会导致每个请求创建一个Servlet实例,这种实践将导致严重的性能问题(服务器的内存压力很大,还会导致频繁的垃圾回收),所以通常情况下并不会这么做。

105、实现会话跟踪的技术有哪些?

由于HTTP协议本身是无状态的,服务器为了区分不同的用户,就需要对用户会话进行跟踪,简单的说就是为用户进行登记,为用户分配唯一的ID,下一次用户在请求中包含此ID,服务器据此判断到底是哪一个用户。

①URL重写:

在URL中添加用户会话的信息作为请求的参数,或者将唯一的会话ID添加到URL结尾以标识一个会话。

②设置表单隐藏域:

将和会话跟踪相关的字段添加到隐式表单域中,这些信息不会在浏览器中显示但是提交表单时会提交给服务器。

这两种方式很难处理跨越多个页面的信息传递,因为如果每次都要修改URL或在页面中添加隐式表单域来存储用户会话相关信息,事情将变得非常麻烦。

③cookie:

cookie有两种,一种是基于窗口的,浏览器窗口关闭后,cookie就没有了;

另一种是将信息存储在一个临时文件中,并设置存在的时间。

当用户通过浏览器和服务器建立一次会话后,会话ID就会随响应信息返回存储在基于窗口的cookie中,那就意味着只要浏览器没有关闭,会话没有超时,下一次请求时这个会话ID又会提交给服务器让服务器识别用户身份。

会话中可以为用户保存信息。

会话对象

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 小学教育 > 其它课程

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1