习题5
第五章,jsp常用内置对象
一.思考:
form中使用get会出现乱码的原因:
服务器比如tomcat接收get方法默认使用的是ISO-8859-1编码,而浏览器发送时文字编码是和页面编码保持一致的,所以后台给我们展示的字节就是一片乱码。
二.课后题:
5.1 JSP设置内置对象的目的是什么?他们在用法上与java类的其他对象有什么不同?
答:为简化页面的开发过程,而设置的内置对象
https://blog.csdn.net/Goskalrie/article/details/51144407
jsp运行原理:每个JSP 页面在第一次被访问时,WEB容器都会把请求交给JSP引擎(即一个Java程序)去处理。JSP引擎先将JSP翻译成一个_jspServlet(实质上也是一个servlet) ,然后按照servlet的调用方式进行调用。
由于JSP第一次访问时会翻译成servlet,所以第一次访问通常会比较慢,但第二次访问,JSP引擎如果发现JSP没有变化,就不再翻译,而是直接调用,所以程序的执行效率不会受到影响。
JSP引擎在调用JSP对应的_jspServlet时,会传递或创建9个与web开发相关的对象供_jspServlet使用。JSP技术的设计者为便于开发人员在编写JSP页面时获得这些web对象的引用,特意定义了9个相应的变量,开发人员在JSP页面中通过这些变量就可以快速获得这9大对象的引用。
5.6 session与application有什么区别与联系?
session < application
1.应用范围不同。 Session是对应某一个用户的。而Application是整站共用的。Session用于跟踪客户的状态,当用户去访问某个站点时,服务器端就会为客户产生一个sessionID,以cookie的方式返回给客户端,当客户的去访问该站点的其他服务时,就会带者当前sessionID一起发出请求,已识别是哪个用户,一个用户就好比一个session对象,互不干扰。一个服务器就一个application对象,用户共享一个application,当服务器停止的时候application 被摧毁,(用于网站访问次数)
2. 存活时间不同。Session是在站点的页面从打开到被关闭之前一直生存的,关闭或跳转到其它网站就会使Session死掉。而Application是从站点发布以来一直存活的,除非重启了站点服务,即服务器关闭才消失。
Session的中文是"会话"的意思,ASP中Session代表了服务器与客户端之间的"会话" 。
利用Session可以存储浏览者的一些特定信息,如:浏览者的姓名、性别、所用浏览器的类型以及访问停留时间等。Session对个人信息的安全性构成了一定的威胁。
Application对象是一个应用程序级的对象,它包含的数据可以在整个Web站点中被所有用户使用,并且可以在网站运行期间持久地保存数据。
联系:两者的数据都保存在server上
第六章1~5
习题6
6.1 page指令的作用是什么?如果在页面中使用汉字,则该指令的contentType属性应该如何设置?
Page指令用来定义JSP文件的全局属性。如果使用汉字,则应设置为contentType=”text/html;charset = GB2312”.
6.2include指令的作用是什么,在使用中应该注意那些问题?
Include指令的作用是在JSP页面出现该指令的位置处静态插入一个文件,即通知JSP容器在当前页面的include指令位置上嵌入指定的资源文件内容。
注意的问题:
(1) 所包含的文件名不能是变量,文件名也不能带任何参数。
(2)如果在文件名中包含有路径信息,则路径必须是相对于当前的JSP网页文件的路径,一般情况下,该文件必须和当前JSP页面再通一个WEB服务目录中。
(3)使用include指令插入文件后,必须保证新合成的JSP页面符合JSP语法规则,即形成一个新的JSP页面后不存在语法冲突。
(4)如果修改了被包含的文件,则也应将当前的JSP文件修改一下。
6.3taglib指令的作用是什么?
用于引入一些特定的标签以简化JSP页面的开发。增加代码重用度,使页面易于维护。
6.4 param动作的作用是什么?
Param动作以“名—值”对的形式为其他标签提供附加信息。这个动作与<jsp:include>,<jsp:forward>,<jsp:plugin>动作一起用。
6.5include动作与incude指令在功能上有什么区别?
(1)include动作动态的插入文件到JSP页面中,而include指令静态的插入文件到JSP页面中。
(2)include动作在执行时对包含的文件进行处理,JSP页面和它所包含的文件在逻辑上和语法上都是独立的。若被包含文件做了修改,运行后就可以看到修改后的结果。include指令在编译时处理,若被包含文件做了修改,则需要重新编译才可以看到修改后的结果。
(3)当include与param一起使用时,可以将param动作中的参数值传递到inclide动作要加载的文件中。
(4)include文件可以动态加载内容,但他的运行效率比include指令低。