jsp考试简答题.docx
- 文档编号:7274928
- 上传时间:2023-01-22
- 格式:DOCX
- 页数:19
- 大小:200.46KB
jsp考试简答题.docx
《jsp考试简答题.docx》由会员分享,可在线阅读,更多相关《jsp考试简答题.docx(19页珍藏版)》请在冰豆网上搜索。
jsp考试简答题
HTTP是一个属于应用层的面向对象的协议,HTTP协议一共有五大特点,1、支持客户/服务器模式;2、简单快速;3、灵活;4、无连接;5、无状态;“无状态”是HTTP协议的主要特点之一。
协议的状态是指下一次传输可以“记住”这次传输信息的能力.http是不会为了下一次连接而维护这次连接所传输的信息的.无状态:
是指协议对于事务处理没有记忆能力。
缺少状态意味着如果后续处理需要前面的信息,则它必须重传,假如某个特定的客户机在短短的几秒钟两次请求同一个对象。
服务器并不会应为刚刚为该用户提供了该对象就不再作出反应,而是重新发送该对象,就像该服务器已经完全忘记不久之前所做过的事一样,这样可能导致每次连接传送的数据量增大。
另一方面,在服务器不需要先前信息时它的应答就较快。
为了支持客户端与服务器之间的交互,我们就需要通过不同的技术为交互存储状态,而这些不同的技术就是Cookie和Session
C/S结构,即Client/Server(客户机/服务器)结构,是一种软件系统体系结构,通过将任务合理分配到Client端和Server端,降低了系统的通讯开销,可以充分利用两端硬件环境的优势。
B/S结构,即Browser/Server(浏览器/服务器)结构,是对C/S结构的一种变化或者改进的结构。
在这种结构下,用户界面完全通过WWW浏览器实现,一部分事务逻辑在前端实现,但是主要事务逻辑在服务器端实现,形成所谓3-tier结构。
B/S结构,主要是利用了不断成熟的WWW浏览器技术,结合浏览器的多种Script语言(VBScript、JavaScript…)和ActiveX技术,用通用浏览器就实现了原来需要复杂专用软件才能实现的强大功能,并节约了开发成本,是一种全新的软件系统构造技术。
随着Windows98/Windows2000将浏览器技术植入操作系统内部,这种结构更成为当今应用软件的首选体系结构。
显然B/S结构应用程序相对于传统的C/S结构应用程序将是巨大的进步。
B/S结构采用星形拓扑结构建立企业内部通信网络或利用Internet虚拟专网(VPN)。
前者的特点是安全、快捷、准确。
后者则具有节省投资、跨地域广的优点。
须视企业规模和地理分布确定。
企业内部通过防火墙接入Internet,再整个网络采用TCP/IP协议。
C/S与B/S区别:
Client/Server是建立在局域网的基础上的.Browser/Server是建立在广域网的基础上的.
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等信息、流向的变化,更象交易中心
Servlet是一种在服务器端运行的Java程序,从某种意义上说,它就是服务器端的Applet。
所以Servlet可以像Applet一样作为一种插件(Plugin)嵌入到WebServer中去,提供诸如HTTP、FTP等协议服务甚至用户自已定制的协议服务。
而JSP是继Servlet后Sun公司推出的新技术,它是以Servlet为基础开发的,Servlet与JSP区别:
(1)编程方式不同
JSP是为了解决Servlet中相对困难的编程技术而开发的技术,因此,JSP在程序的编写方面比Servlet要容易的多,Servlet严格遵循Java语言的编程标准,而JSP则遵循脚本语言的编制标准。
(2)Servlet必须在编译以后才能执行
JSP并不需要另外进行编译,JSPContainer会自动完成这一工作,而Servlet在每次修改代码之后都需要编译完才能执行。
(3)运行速度不同
由于JSPContainer将JSP程序编译成Servlet的时候需要一些时间,所以JSP的运行速度比Servlet要慢一些,不过,如果JSP文件能毫无变化的重复使用,它在第一次以后的调用中运行速度就会和Servlet一样了,这是因为JSPContainer接到请求以后会确认传递过来的JSP是否有改动,如果没有改动的话,将直接调用JSP编译过的Servlet类,并提供给客户端解释执行,如果JSP文件有所改变,JSPContainer将重新将它编译成Servlet,然后再提交给客户端
JSP在本质上就是SERVLET,但是两者的创建方式不一样.Servlet完全是JAVA程序代码构成擅长于流程控制和事务处理而通过Servlet来生成动态网页;JSP由HTML代码和JSP标签构成,可以方便地编写动态网页因此在实际应用中采用Servlet来控制业务流程,而采用JSP来生成动态网页.在struts框架中,JSP位于MVC设计模式的视图层,而Servlet位于控制层.答案2:
JSP是Servlet技术的扩展,本质上就是Servlet的简易方式。
JSP编译后是“类servlet”。
Servlet和JSP最主要的不同点在于,Servlet的应用逻辑是在Java文件中,并且完全从表示层中的HTML里分离开来。
而JSP的情况是Java和HTML可以组合成一个扩展名为.jsp的文件。
JSP侧重于视图,Servlet主要用于控制逻辑。
Servlet是用Java编写的Server端程序,它与协议和平台无关。
Servlet运行于Java-enabled Web Server中。
Java Servlet可以动态地扩展Server的能力,并采用请求-响应模式提供Web服务
Session状态是在客户登录的时候创建的,它保存了客户特定的信息,并以Session ID来标识。
当一个新客户访问应用程序时,先生成一个新的Session ID(或是Session Key),并为同一个客户接下来的请求创建联系。
你可以在Session State中存储任意类型的数据,作为你的应用,状态被同一个进程和AppDomain(App域)维护。
Session State的特点是为每一个特定的客户创建状态以维护客户的信息,这些状态信息存储在服务器端的默认的会话状态配置中
session的销毁有两种方式,一种是session过期时间已到,会自动销毁(注意这里不是马上就会销毁,具体销毁时间由Tomcat容器所决定)。
在我们项目中的web.xml中就可以配置:
第二种销毁方式通过手工方式销毁,这种销毁方式会立刻释放服务器端session的资源,我们手动销毁可以通过session().invalidate();实现。
对我有帮助
Servlet的生命周期包含了下面4个阶段。
(1)加载和实例化
Servlet容器负责加载和实例化Servlet。
当Servlet容器启动时,或者在容器检查到需要这个Servlet来响应一个请求时,创建Servlet实例。
当Servlet容器启动后,它必须要知道所需的Servlet类在什么位置,Servlet容器可以从本地文件系统、远程文件系统或者其他网络服务器中通过类加载器加载Servlet类,成功加载后,容器创建Servlet实例。
因为容器是通过Java的反射API来创建Servlet实例,调用的是Servlet的默认构造函数,也就是那个不带参数的构造函数,所以我们在编写Servlet类的时候,不应该提供带参数的构造函数。
——这也就是为什么Servlet类可以不写构造函数的原因。
(2)初始化
在Servlet实例化之后,容器必须调用Servlet的init()方法初始化这个对象。
初始化的目的是为了让Servlet对象在处理客户请求前完成一些初始化工作,如建立数据库连接,获取配置信息等。
对于每一个Servlet实例,init()方法只能被调用一次。
在初始化期间,Servlet实例可以使用容器为它准备的ServletConfit对象从web应用程序的配置信息(在web.xml中配置)中获取初始化的参数信息。
在初始化期间,如果发生错误,Servlet实例可以抛出异常来通知容器。
(3)请求处理
Servlet容器调用Servlet的service()方法对请求进行处理。
要注意的是,在service()方法调用之前,init()方法必须成功执行。
在service()方法中,servlet实例通过ServletRequest对象得到客户端的相关信息和请求信息,在对请求进行处理后,调用servletResponse对象的方法设置响应信息。
(4服务终止
当容器检测在一个Servlet实例应该从服务中被移除的时候,容器就会调用实例的destroy()方法,以便让该实例可以释放它所使用的资源,保存数据到持久存储设备中。
当需要释放内存或者容器关闭时,容器就会调用Servlet实例的destroy()方法。
在调用destroy()方法后,容器会释放这个Servlet实例,该实例随后会被java的垃圾收集器回收。
在整个Servlet的生命周期过程中,创建Servlet实例、调用实例的init()和destroy()方法都只进行一次,当初始化完成后,Servlet容器会将该实例保存在内存中,通过调用它的service()方法,为接收到的请求服务。
九个隐含对象(内置对象)
ConfigrequestresponseapplicationpagepageContextoutexceptionsession
page对象代表JSP本身,更准确地说它代表JSP被转译后的Servlet,它可以调用Servlet类所定义的方法。
二、config对象config对象里存
page对象代表JSP本身,更准确地说它代表JSP被转译后的Servlet,它可以调用Servlet类所定义的方法。
二、config对象
config对象里存放着一些Servlet初始的数据结构。
config对象实现于javax.servlet.ServletConfig接口,它共有下列四种方法:
publicStringgetInitParameter(name)
publicjava.util.EnumerationgetInitParameterNames()
publicServletContextgetServletContext()
publicSringgetServletName()
三、request对象
request对象包含所有请求的信息,如:
请求的来源、标头、cookies和请求相关的参数值等等。
request对象实现javax.servlet.http.HttpServletRequest接口的,所提供的方法可以将它分为四大类:
1.储存和取得属性方法;
voidsetAttribute(Stringname,Objectvalue)设定name属性的值为value
EnumerationgetAttributeNamesInScope(intscope)取得所有scope范围的属性
ObjectgetAttribute(Stringname)取得name属性的值
voidremoveAttribute(Stringname)移除name属性的值
2.取得请求参数的方法
StringgetParameter(Stringname)取得name的参数值Enumeration
getParameterNames()取得所有的参数名称String[]
getParameterValues(Stringname)取得所有name的参数值
MapgetParameterMap()取得一个要求参数的Map
3.能够取得请求HTTP标头的方法
StringgetHeader(Stringname)取得name的标头
EnumerationgetHeaderNames()取得所有的标头名称
EnumerationgetHeaders(Stringname)取得所有name的标头
intgetIntHeader(Stringname)取得整数类型name的标头
longgetDateHeader(Stringname)取得日期类型name的标头
Cookie[]getCookies()取得与请求有关的cookies
4.其他的方法
StringgetContextPath()取得Context路径(即站台名称)
StringgetMethod()取得HTTP的方法(GET、POST)
StringgetProtocol()取得使用的协议HTTP/1.1、HTTP/1.0)
StringgetQueryString()取得请求的参数字符串,不过,HTTP的方法必须为GET
StringgetRequestedSessionId()取得用户端的SessionID
StringgetRequestURI()取得请求的URL,但是不包括请求的参数字符串
StringgetRemoteAddr()取得用户的IP地址
StringgetRemoteHost()取得用户的主机名称
intgetRemotePort()取得用户的主机端口
StringgetRemoteUser()取得用户的名称
voidetCharacterEncoding(Stringencoding)设定编码格式,用来解决窗体传递中文的问题
四、response对象
response对象主要将JSP处理数据后的结果传回到客户端。
response对象是实现javax.servlet.http.HttpServletResponse接口。
response对象所提供的方法。
1.设定表头的方法
voidaddCookie(Cookiecookie)新增cookie
voidaddDateHeader(Stringname,longdate)新增long类型的值到name标头
voidaddHeader(Stringname,Stringvalue)新增String类型的值到name标头
voidaddIntHeader(Stringname,intvalue)新增int类型的值到name标头
voidsetDateHeader(Stringname,longdate)指定long类型的值到name标头
voidsetHeader(Stringname,Stringvalue)指定String类型的值到name标头
voidsetIntHeader(Stringname,intvalue)指定int类型的值到name标头
2.设定响应状态码的方法
voidsendError(intsc)传送状态码(statuscode)
voidsendError(intsc,Stringmsg)传送状态码和错误信息
voidsetStatus(intsc)设定状态码
3.用来URL重写(rewriting)的方法
StringencodeRedirectURL(Stringurl)对使用sendRedirect()方法的URL予以编码
五、out对象
out对象能把结果输出到网页上。
out主要是用来控制管理输出的缓冲区(buffer)和输出流(outputstream)。
voidclear()清除输出缓冲区的内容
voidclearBuffer()清除输出缓冲区的内容
voidclose()关闭输出流,清除所有的内容
intgetBufferSize()取得目前缓冲区的大小(KB)
intgetRemaining()取得目前使用后还剩下的缓冲区大小(KB)
booleanisAutoFlush()回传true表示缓冲区满时会自动清除;false表示不会自动清除并且产生异常处理
六、session对象
session对象表示目前个别用户的会话(session)状况。
session对象实现javax.servlet.http.HttpSession接口,HttpSession接口所提供的方法
longgetCreationTime()取得session产生的时间,单位是毫秒
StringgetId()取得session的ID
longgetLastAccessedTime()取得用户最后通过这个session送出请求的时间
longgetMaxInactiveInterval()取得最大session不活动的时间,若超过这时间,session将会失效
voidinvalidate()取消session对象,并将对象存放的内容完全抛弃
booleanisNew()判断session是否为"新"的
voidsetMaxInactiveInterval(intinterval)设定最大session不活动的时间,若超过这时间,session将会失效
七、application对象
application对象最常被使用在存取环境的信息。
因为环境的信息通常都储存在ServletContext中,所以常利用application对象来存取ServletContext中的信息。
application对象实现javax.servlet.ServletContext接口,ServletContext接口容器所提供的方法
intgetMajorVersion()取得Container主要的ServletAPI版本
intgetMinorVersion()取得Container次要的ServletAPI版本
StringgetServerInfo()取得Container的名称和版本
StringgetMimeType(Stringfile)取得指定文件的MIME类型
ServletContextgetContext(Stringuripath)取得指定LocalURL的Applicationcontext
StringgetRealPath(Stringpath)取得本地端path的绝对路径
voidlog(Stringmessage)将信息写入log文件中
voidlog(Stringmessage,Throwablethrowable)将stacktrace所产生的异常信息写入log文件中
八、pageContext对象
pageContext对象能够存取其他隐含对象。
1.pageContext对象存取其他隐含对象属性的方法,此时需要指定范围的参数。
ObjectgetAttribute(Stringname,intscope)
EnumerationgetAttributeNamesInScope(intscope)
voidremoveAttribute(Stringname,intscope)
voidsetAttribute(Stringname,Objectvalue,intscope)
范围参数有四个,分别代表四种范围:
PAGE_SCOPE、REQUEST_SCOPE、SESSION_SCOPE、APPLICATION_SCOPE
2.PageContext对象取得其他隐含对象的方法
ExceptiongetException()回传目前网页的异常,不过此网页要为errorpage,
JspWritergetOut()回传目前网页的输出流,例如:
out
ObjectgetPage()回传目前网页的Servlet实体(instance),例如:
page
ServletRequestgetRequest()回传目前网页的请求,例如:
request
ServletResponsegetResponse()回传目前网页的响应,例如:
response
ServletConfiggetServletConfig()回传目前此网页的ServletConfig对象,例如:
config
ServletContextgetServletContext()回传目前此网页的执行环境(context),例如:
application
HttpSessiongetSession()回传和目前网页有联系的会话(session),例如:
session
3.PageContext对象提供取得属性的方法
ObjectgetAttribute(Stringname,intscope)回传name属性,范围为scope的属性对象,回传类型为Object
EnumerationgetAttributeNamesInScope(intsco
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- jsp 考试 答题