S2JSP面试题文档格式.docx
- 文档编号:21305145
- 上传时间:2023-01-29
- 格式:DOCX
- 页数:19
- 大小:35.77KB
S2JSP面试题文档格式.docx
《S2JSP面试题文档格式.docx》由会员分享,可在线阅读,更多相关《S2JSP面试题文档格式.docx(19页珍藏版)》请在冰豆网上搜索。
21、JSP有哪些标准动作?
10
22、JSP中动态Include与静态Include的区别?
23、四种会话跟踪技术10
第三章11
24、Web应用中的四大作用域(注意不要和四种会话跟踪技术搞混淆了)11
25、什么是Cookie?
11
26、在JSP中如何设置Cookie?
27、如何设置cookie在某一时间后过期?
12
28、Cookie的应用场景?
29、cookie与session有什么区别?
第五章12
30、JNDI是什么?
31、说出数据连接池的工作机制是什么?
32、什么是MVC设计模式13
33、MVC设计模式的优缺点:
14
第七章14
34、什么是Servlet14
35、说一说Servlet的生命周期?
36、Servlet执行时一般实现哪几个方法?
15
37、Servlet的基本架构15
38、服务器如何响应Web客户请求?
39、什么情况下调用doGet()和doPost()?
16
40、JSP和Servlet有哪些相同点和不同点,他们之间的联系是什么?
41、如何实现servlet的单线程模式16
42、在servlets和JSP之间能共享session对象吗?
43、Filter基本工作原理16
第八章17
44、什么是EL表达式17
45、EL隐式对象有哪些?
17
46、什么是JSTL17
47、JSTL迭代标签使用?
18
附加(非课本内容)18
48、jsp乱码如何解决,给出三种以上的对应解决方案,并给出对应的程序案例;
49、使用HTTP协议将客户端的请求传送到服务器端有哪两种方式?
请简述它们的区别18
50、WEB容器主要有哪些功能?
并请列出一些常见的WEB容器名字。
19
51、请简述Cookie,Session和Application它们的区别。
52、请编写一段匹配IP地址的正则表达式。
53、有这样一个时间字符串:
2008-8-820:
08:
08,请编写能够匹配它的正则表达式,并编写JAVA代码将日期后面的时分秒提取出来,即:
20:
0819
第一章
C/S是Client/Server的缩写。
服务器通常采用高性能的PC、工作站或小型机,并采用大型数据库系统,如Oracle、Sybase、InFORMix或SQLServer。
客户端需要安装专用的客户端软件。
B/S是Brower/Server的缩写,客户机上只要安装一个浏览器(Browser),如NetscapeNavigator或InternetExplorer,服务器安装Oracle、Sybase、InFORMix或SQLServer等数据库。
在这种结构下,用户界面完全通过WWW浏览器实现,一部分事务逻辑在前端实现,但是主要事务逻辑在服务器端实现。
浏览器通过WebServer同数据库进行数据交互。
C/S与B/S区别:
1.硬件环境不同:
C/S一般建立在专用的网络上,小范围里的网络环境,局域网之间再通过专门服务器提供连接和数据交换服务.
B/S建立在广域网之上的,不必是专门的网络硬件环境,例与电话上网,租用设备.信息自己管理.有比C/S更强的适应范围,一般只要有操作系统和浏览器就行
2.对安全要求不同
C/S一般面向相对固定的用户群,对信息安全的控制能力很强.一般高度机密的信息系统采用C/S结构适宜.可以通过B/S发布部分可公开信息.
B/S建立在广域网之上,对安全的控制能力相对弱,可能面向不可知的用户。
3.对程序架构不同
C/S程序可以更加注重流程,可以对权限多层次校验,对系统运行速度可以较少考虑.
B/S对安全以及访问速度的多重的考虑,建立在需要更加优化的基础之上.比C/S有更高的要求B/S结构的程序架构是发展的趋势,从MS的.Net系列的BizTalk2000Exchange2000等,全面支持网络的构件搭建的系统.SUN和IBM推的JavaBean构件技术等,使B/S更加成熟.
4.软件重用不同
C/S程序可以不可避免的整体性考虑,构件的重用性不如在B/S要求下的构件的重用性好.
B/S对的多重结构,要求构件相对独立的功能.能够相对较好的重用.就入买来的餐桌可以再利用,而不是做在墙上的石头桌子
5.系统维护不同
C/S程序由于整体性,必须整体考察,处理出现的问题以及系统升级.升级难.可能是再做一个全新的系统
B/S构件组成,方面构件个别的更换,实现系统的无缝升级.系统维护开销减到最小.用户从网上自己下载安装就可以实现升级.
6.处理问题不同
C/S程序可以处理用户面固定,并且在相同区域,安全要求高需求,与操作系统相关.应该都是相同的系统
B/S建立在广域网上,面向不同的用户群,分散地域,这是C/S无法作到的.与操作系统平台关系最小.
7.用户接口不同
C/S多是建立的Window平台上,表现方法有限,对程序员普遍要求较高
B/S建立在浏览器上,有更加丰富和生动的表现方式与用户交流.并且大部分难度减低,减低开发成本.
8.信息流不同
C/S程序一般是典型的中央集权的机械式处理,交互性相对低
B/S信息流向可变化,B-BB-CB-G等信息、流向的变化,更像交易中心。
2、软件系统B/S和C/S架构是什么,它们有什么区别
C/S是Client/Server的缩写(客户机和服务器)结构,B/S是浏览器和服务器结构
C/S架构软件的优势与劣势(特点):
1)应用服务器运行数据负荷较轻
2)数据的存储管理功能较为透明
3)高昂的维护成本且投资大
B/S架构软件的优势与劣势(特点):
1)维护升级方式简单
2)成本降低,选择更多
3)应用服务器运行数据负荷较重
3、什么是URL
URL,是英文UniformResourceLocator的缩写,意思是统一资源定位符,是标准的互联网行资源(图片,Javacript脚本文件等)的地址,是用于完整的描述Internet上网页和其他资源的地址的一种标识方法。
简单的说,URL就是我们常说的网址。
/:
Web应用的根目录,该目录下的所有文件对客户端都可以访问包括JSP、HTML
/WEB-INF:
存放应用程序所使用的各种资源,该目录及其子目录对客户端都是不可以访问的,其中包括web.xml(部署表述符)
/WEB-INF/classes:
存放应用的所有class文件
/WEB-INF/lib:
存放Web应用使用的JAR文件
/bin:
存放各种平台下用于启动和停止Tomcat的脚本文件
/conf:
存放Tomcat服务器的各种配置文件,其中最重要的文件时server.xml
/lib:
存放Tomcat服务器所需的各种JAR文件
/logs:
存放Tomcat的日志文件
/temp:
Tomcat运行时用于存放临时文件
/webapps:
Web应用的发布目录
/work:
Tomcat把由JSP生成的Servler放于此目录下
Tomcat是Servlet运行环境(容器),每个Servlet执行init(),service(),destory()。
下面以分析TomcatServer处理一个http请求的过程来解释Tomcat原理。
假设来自客户的请求为:
http:
//localhost:
8080/wsota/wsota_index.jsp
1)请求被发送到本机端口8080,被在那里侦听的CoyoteHTTP/1.1Connector获得
2)Connector把该请求交给它所在的Service的Engine来处理,并等待来自Engine的回应
3)Engine获得请求localhost/wsota/wsota_index.jsp,匹配它所拥有的所有虚拟主机Host
4)Engine匹配到名为localhost的Host(即使匹配不到也把请求交给该Host处理,因为该Host被定义为该Engine的默认主机)
5)localhostHost获得请求/wsota/wsota_index.jsp,匹配它所拥有的所有Context
6)Host匹配到路径为/wsota的Context(如果匹配不到就把该请求交给路径名为"
"
的Context去处理)
7)path="
/wsota"
的Context获得请求/wsota_index.jsp,在它的mappingtable中寻找对应的servlet
8)Context匹配到URLPATTERN为*.jsp的servlet,对应于JspServlet类
9)构造HttpServletRequest对象和HttpServletResponse对象,作为参数调用JspServlet的doGet或doPost方法
10)Context把执行完了之后的HttpServletResponse对象返回给Host
11)Host把HttpServletResponse对象返回给Engine
12)Engine把HttpServletResponse对象返回给Connector
Connector把HttpServletResponse对象返回给客户browser
7、什么是JSP
Jsp(JavaServerPages,JSP)是由Sun公司提倡,许多公司共同参与一同建立起来的一种动态网页技术标准,它在动态网页建设中有强大的而特别的功能,它具有跨平台性,易维护性,易管理性等优点。
1)翻译阶段:
当Web服务器接收到JSP请求时,首先会对JSP文件进行翻译,将编写好的JSP文件通过JSP引擎转换成可识别的Java源代码。
2)编译阶段:
经过翻译后的JSP文件相当于我们编写好的Java源文件,此时仅有Java源文件是不够的,必须要将Java源文件编译成可执行的字节码文件。
所以Web容器处理JSP请求的第二阶段就是执行编译。
3)执行阶段:
Web容器接收了客户端的请求后,经过翻译和编译两个阶段,生成了可被执行的二进制字节码文件,此时就进入执行阶段。
当执行结束后,会得到处理请求的结果,Web容器又会再把生成的结果页面返回到客户端用户面前显示。
注意:
只有第一次请求JSP页面或者JSP页面内容修改后访问才会执行翻译阶段和编译阶段,所有JSP的执行效率并不低,只是第一次访问页面时会稍微慢一点
JSP页面由:
静态内容,指令,表达式,小脚本,声明,标准动作,注释等七种元素构成。
使用JSP声明来定义方法,语法格式为:
<
%!
声明方法或者声明变量%>
。
JSP指令主要有三种:
page指令,include指令,taglib指令
language:
指定JSP页面使用的脚本语言,默认为“Java”
Import:
通过该属性来引用脚本语言中使用到的类文件
contentType:
用来指定JSP页面所采用的编码格式,默认为“text/html;
charset=GBK”
第二章
JSP共有以下9个内置的对象:
request:
表示HttpServletRequest对象,用户端请求。
它包含了有关浏览器请求的信息,并且提供了几个用于获取cookie,header,和session数据的有用的方法。
response:
表示HttpServletResponse对象,并提供了几个用于设置送回浏览器的响应的方法(如cookies,头信息等),网页传回用户端的回应
out:
对象是javax.jsp.JspWriter的一个实例,并提供了几个方法使你能用于向浏览器回送输出结果。
pageContext:
表示一个javax.servlet.jsp.PageContext对象。
该对象提供了对JSP页面内所有的对象及名字空间(就是四大作用域空间,如page空间、request空间、session空间、application空间)的访问,也就是说他可以访问到当前请求对应session中保存的信息,也可以取当前应用所在的application的某一属性值,它相当于页面中所有功能的集大成者,包装了通用的servlet相关功能的方法。
session:
表示一个请求的javax.servlet.http.HttpSession对象。
Session可以存贮用户的状态信息
applicaton:
表示一个javax.servle.ServletContext对象。
类似于系统的全局变量,用于实现Web应用中的资源共享。
config:
表示一个javax.servlet.ServletConfig对象。
用于存放JSP编译后的初始数据。
page:
表示从该页面产生的一个servlet实例,JSP网页本身
exception:
针对错误网页,未捕捉的例外。
表示JSP页面运行时产生的异常和错误信息,该对象只有在错误页面(page指令中设定isErrorPage为true的页面)中才能够使用。
14、Request对象的主要方法
(1)getParameter(Stringname):
获得客户端传送给服务器端的有name指定的参数值
(2)getParametervalues(Stringname):
获得有name指定的参数的所有值
(3)voidsetCharacterEncoding(Stringcharset):
指定每个请求的编码,在request.getParameter()方法之前进行设定,可以用于解决中问乱码问题
(4)getRequestDispatcher(Stringpath):
返回一个Javax.servlet.RequestDispatcher对象,该对象的forward方法用于转发请求
(5)setAttribute(Stringname,Object):
设置名字为name的request的参数值
(6)getAttribute(Stringname):
返回由name指定的属性值
(7)getAttributeNames():
返回request对象所有属性的名字集合,结果是一个枚举的实例
(8)getCookies():
返回客户端的所有Cookie对象,结果是一个Cookie数组
(9)getCharacterEncoding():
返回请求中的字符编码方式
(10)getParameterNames():
获得客户端传送给服务器端的所有参数的名字,结果是一个枚举的实例
(11)getProtocol():
获取客户端向服务器端传送数据所依据的协议名称
(12)getRequestURI():
获取发出请求字符串的客户端地址
(13)getRemoteAddr():
获取客户端的IP地址
(14)getRemoteHost():
获取客户端的名字
(15)getSession([Booleancreate]):
返回和请求相关Session
(16)getServerName():
获取服务器的名字
(17)getServletPath():
获取客户端所请求的脚本文件的路径
(18)getServerPort():
获取服务器的端口号
(19)removeAttribute(Stringname):
删除请求中的一个属性
15、Response对象的主要方法
1)voidaddCookie(Cookiecookie):
在客户端添加Cookie
2)voidsetContentType(Sringtype):
设置HTTP响应的contentType类型
3)voidSetCharacterEncoding(Stringcharset):
设置响应所采用的字符编码类型
4)voidsendRedirect(Stringlocation):
将请求重新定位到一个新的URL上
请求转发:
请求转发是指将请求再转发到另一资源(一般为JSP或Servlet)。
此过程依然在同一个请求范围内,转发后浏览器地址栏内容不变,请求转发使用RequestDispatcher接口中的forward()方法来实现,该方法可以把请求转发到另外一个资源,并让该资源对浏览器的请求进行响应RequestDispatcherrd=request.getRequestDispatcher(path);
rd.forward(request,response);
或request.getRequestDispatcher(path).forward(request,response);
重定向:
重定向是指页面重新定位到某个新地址,之前的请求失效,进入一个新的请求,且跳转后浏览器地址栏内容将变为新的指定地址。
重定向是通过HttpServletResponse对象的sendRedirect()来实现,该方法相当于浏览器重新发送一个请求response.sendRedirect(path);
•请求转发和重定向区别如下:
forward()只能将请求转发给同一个Web应用中的组件,而sendRedirect()方法不仅可以重定向到当前应用程序中的其他资源,还可以重定向到其他站点的资源。
请求转发和重定向是Servlet处理完数据后进行页面跳转的两种主要方式
psendRedirect()方法重定向的访问过程结束后,浏览器地址栏中显示的URL会发生改变,由初始的URL地址变成重定向的目标URL;
而调用forward()方法的请求转发过程结束后,浏览器地址栏保持初始的URL地址不变。
forward()方法的调用者与被调用者之间共享相同的request对象和response对象;
而sendRedirect()方法调用者和被调用者使用各自的request对象和response对象,它们属于两个独立的请求和响应过程。
1)使用javascript中的window.location.href=”要跳转的页面”。
2)在超链接中:
href=”location=要跳转的页面”,例如<
ahref=”index.jsp”>
首页<
/a>
3)form表单中提交:
action=”要跳转的页面”。
4)使用jsp内置对象request或response,执行请求转发或重定向来实现页面跳转
使用JSP中的request内置对象处理HTML表单中的数据。
19、什么是Session机制
会话的跟踪,就是session机制,Session机制是一种服务器端的机制,服务器使用一种类似于散列表(HashTable)的结构来保存信息,主要用于在整个会话请求过程中共享数据。
Session机制的实现原理:
1)当程序需要为某个客户端的请求创建session的时候,服务器首先检查这个客户端的请求里是否包含一个session标识,即称为sessionid
2)如果包含sessionid则说明该客户端创建过session,服务器就会按照sessionid把这个session检索出来使用,如果检索不到,会创建一个新的session对象,并生成一个新的与此session关联的sessionid。
3)如果客户端请求不包含sessionid,则为此客户端创建一个session并生成一个于此session相关联的sessionid
Sessionid传递的方式有两种:
Cookie方式:
服务器分配的sessionid将作为Cookie发送给浏览器,浏览器保存这个Cookie。
当再次发送Http请求时,浏览器将Cookie随请求一起发送,服务器从请求对象中读取sessionid,再根据sessionid找到对应的HttpSession对象。
URL重写:
当cookie被人禁止的时候,我们就可以使用Url重写的方式把sessionid传递回服务器。
就是把sessionid附加在URL路径的后面。
附加的方式有两种:
一种是作为URL路径的附加信息,一种是作为查询字符串附加在URL后面。
20、session对象的常用方法
voidsetAttribute(Stringkey,Objectvalue):
以key/value的形式将对象保存到session中
ObjectgetAttribute(Stringkey):
通过key获取session中保存的对象
voidinvalidate():
设置session对象失效
StringgetId():
获取sessionId
voidsetMaxInactiveInterval():
设置session的非活动时间
intgetMaxInactiveInterval():
获取session的有效非活动时间,以秒为单位
voidremoveAttribute(Stringkey):
从session中删除指定名称(key)所对应的对象
JSP主要共有以下几种基本动作
jsp:
include:
在页面被请求的时候引入一个文件。
useBean:
寻找或者实例化一个JavaBean。
setProperty:
设置JavaBean的属性。
getProperty:
输出某个Java
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- S2JSP 试题
![提示](https://static.bdocx.com/images/bang_tan.gif)