2.31.session如何存取?何时被创建?session何时被删除?如何在关闭浏览器的时候删除session?
参考答案:
1.通过HttpServletRequest对象的getSession()来获取session.
存储数据方式:session.setAttribute(“key”,value);
获取数据方式:session.getAttribute(“key”);
2.session对象在调用HttpServletRequest.getSession(true)语句时被创建.
3.删除session:
1)调用HttpSession.invalidate()方法;
2)举例上一次收到客户端发送的session id时间间隔超过了session的超时设置.
4.关闭浏览器的时候删除session:
在页面中天剑onunload事件,当关闭浏览器时,执行服务器端删除session代码;
优点:退出时,能及时进行处理.缺点:当用户打开多个页面时,关闭任何一个页面都有可能导致用户的退出.
2.32.HttpSession session = request.getSession()与HttpSession session = request.getSession(true)的区别?getParameter与getAttribute的区别?
参考答案:
1)HttpSession session = request.getSession()与HttpSession session = request.getSession(true)的区别如下:
HttpSession session = request.getSession(true)表示当flag为true时:先查看请求中有没有SessionId,如果没有SessionId,服务器创建一个Session对象;如果有SessionId,依据SessionId查找对应Session对象,找到则返回,找不到则创建一个新的Session对象,所以flag为true时,一定能得到一个Session对象;当flag为false时,没有SessionId及有SessionId但没有找到Session对象,均返回null;找到则返回.HttpSession session = request.getSession()等价于ttpSession session = request.getSession(true);提供该方法是为了代码书写更方便一些,大部分情况下是不管找没找到都需要返回一个Session对象.
2)getParameter与getAttribute的区别如下:
request.getParameter()方法是获得客户端传送给服务器的参数值,代表http请求数据.由URL传入或由FORM提交的内容,返回值是String类型.
request.getAttribute()方法获得属性值,数据在具有转发关系的Web组件之间共享,返回值为Object类型.
2.33.在JSP页面中,能否获得Servlet中request.setAttribute中的值,如果能获得,通过何种方式,如果不能获得,请简述为什么?
参考答案:
servlet通过转发方式跳转到JSP页面,JSP页面就可以获得request中属性的值.
例如:servlet代码如下:
request.setAttribute("name","zs");
request.getRequsetDispatcher("/XX.jsp").forward(request,response);
- 1
- 2
JSP代码如下:
<%=(String)request.getAttribute("name") %>
- 1
2.34.简述什么是Session超时,如何修改缺省的时间限制?
参考答案:
Session超时是指:Web服务器会将空闲时间过长的Session对象删除掉,以节省服务器内存空间资源.Web服务器缺省的超时时间限制:一般是30分钟.修改Session的缺省时间限制,有如下两种方式:
1.通过修改Tomcat中conf/web.xml文件的设置,代码如下所示:
<session-config>
<session-timeout>30</session-timeout>
</session-config>
- 1
- 2
- 3
2.通过编程的方式来修改,通过调用session对象的setMaxInactiveInterval方式来修改,该方法的声明如下所示:
void setMaxInactiveInterval (int seconds){}
- 1
2.35.JSP标准提供了三种独立的向JSP添加Java代码的技术,请列举
参考答案:
JSP标准提供了三种独立的想JSP添加Java代码的技术,分别是:
1)<% %>
JSP小脚本
2)<%! %>
JSP声明
3)<%= %>
JSP表达式
2.36.JSP中的include有两种形式,分别用在何处
参考答案:
动态include用jsp:include动作实现<jsp:include page="head.jsp>
.它总是会检查所含文件中的变化,适合用于包含动态页面,并且可以带参数;
静态include用include伪码实现<%@include file="head.html"%>
.它不会检查所含问价你的变化,适用于包含静态页面.
2.37.在JSP中:
1.如何获得当前Web应用在文件系统里的绝对路径?
2.如何获得Web应用中某一文件的绝对路径?
参考答案:
1.获得当前Web应用在文件系统里的绝对路径的方式如下:
<%= application.getRealPath("/"); %>
- 1
2.获取应用中/WebRoot/img文件夹里的a.png文件的绝对路径的方式如下:
<%= request.getContextPath() %>/img/a.png
- 1
2.38.JSP和Servlet区别和联系是什么?
参考答案:
JSP是Servlet技术的扩展,本质上是Servlet的简易方式,更强调应用的外表表达.JSP编译后是”类servlet”.Servlet和JSP最主要的不同点在于,Servlet的应用逻辑是在Java文件中,并且完全从表示层中的HTML里分离开来.而JSP的情况是Java和HTML可以组合城一个扩展名为.jsp的文件.JSP侧重于视图,Servlet主要用于控制逻辑.
2.39.JSP是怎么转化为HTML的?
参考答案:
JSP在执行前仙贝转译成.java文件(servlet),在编译成.class文件.每个JSP实例都有个jspservice方法,而这个方法将动态数据解释成以html标记的内容,然后子安用JspWriter对象将一段一段内容写向服务器,之后刷新JspWriter对象和关闭它,最后客户端所得到的就是html内容了.
2.40.JSP的四种范围
参考答案:
JSP的四种范围如下:
1.page是代表与一个页面相关的对象和属性.一个页面由一个编译好的Java servlet类表示.这既包括servlet又包括被译成servlet的JSP页面;
2.request是代表与Web客户机发出的一个请求相关的对象和属性.一个请求可能跨越多个页面,涉及多个Web组件;
3.session是代表与用于某个Web客户机的一个用户体验相关的对象和属性.一个Web会话可以也经常会跨越多个客户机请求;
4.application是代表与整个Web应用程序相关的对象和属性.这实质上是跨越整个Web应用程序,包括多个页面,请求以及会话的一个全局作用域.
2.31.session如何存取?何时被创建?session何时被删除?如何在关闭浏览器的时候删除session?
参考答案:
1.通过HttpServletRequest对象的getSession()来获取session.
存储数据方式:session.setAttribute(“key”,value);
获取数据方式:session.getAttribute(“key”);
2.session对象在调用HttpServletRequest.getSession(true)语句时被创建.
3.删除session:
1)调用HttpSession.invalidate()方法;
2)举例上一次收到客户端发送的session id时间间隔超过了session的超时设置.
4.关闭浏览器的时候删除session:
在页面中天剑onunload事件,当关闭浏览器时,执行服务器端删除session代码;
优点:退出时,能及时进行处理.缺点:当用户打开多个页面时,关闭任何一个页面都有可能导致用户的退出.
2.32.HttpSession session = request.getSession()与HttpSession session = request.getSession(true)的区别?getParameter与getAttribute的区别?
参考答案:
1)HttpSession session = request.getSession()与HttpSession session = request.getSession(true)的区别如下:
HttpSession session = request.getSession(true)表示当flag为true时:先查看请求中有没有SessionId,如果没有SessionId,服务器创建一个Session对象;如果有SessionId,依据SessionId查找对应Session对象,找到则返回,找不到则创建一个新的Session对象,所以flag为true时,一定能得到一个Session对象;当flag为false时,没有SessionId及有SessionId但没有找到Session对象,均返回null;找到则返回.HttpSession session = request.getSession()等价于ttpSession session = request.getSession(true);提供该方法是为了代码书写更方便一些,大部分情况下是不管找没找到都需要返回一个Session对象.
2)getParameter与getAttribute的区别如下:
request.getParameter()方法是获得客户端传送给服务器的参数值,代表http请求数据.由URL传入或由FORM提交的内容,返回值是String类型.
request.getAttribute()方法获得属性值,数据在具有转发关系的Web组件之间共享,返回值为Object类型.
2.33.在JSP页面中,能否获得Servlet中request.setAttribute中的值,如果能获得,通过何种方式,如果不能获得,请简述为什么?
参考答案:
servlet通过转发方式跳转到JSP页面,JSP页面就可以获得request中属性的值.
例如:servlet代码如下:
request.setAttribute("name","zs");
request.getRequsetDispatcher("/XX.jsp").forward(request,response);
- 1
- 2
JSP代码如下:
<%=(String)request.getAttribute("name") %>
- 1
2.34.简述什么是Session超时,如何修改缺省的时间限制?
参考答案:
Session超时是指:Web服务器会将空闲时间过长的Session对象删除掉,以节省服务器内存空间资源.Web服务器缺省的超时时间限制:一般是30分钟.修改Session的缺省时间限制,有如下两种方式:
1.通过修改Tomcat中conf/web.xml文件的设置,代码如下所示:
<session-config>
<session-timeout>30</session-timeout>
</session-config>
- 1
- 2
- 3
2.通过编程的方式来修改,通过调用session对象的setMaxInactiveInterval方式来修改,该方法的声明如下所示:
void setMaxInactiveInterval (int seconds){}
- 1
2.35.JSP标准提供了三种独立的向JSP添加Java代码的技术,请列举
参考答案:
JSP标准提供了三种独立的想JSP添加Java代码的技术,分别是:
1)<% %>
JSP小脚本
2)<%! %>
JSP声明
3)<%= %>
JSP表达式
2.36.JSP中的include有两种形式,分别用在何处
参考答案:
动态include用jsp:include动作实现<jsp:include page="head.jsp>
.它总是会检查所含文件中的变化,适合用于包含动态页面,并且可以带参数;
静态include用include伪码实现<%@include file="head.html"%>
.它不会检查所含问价你的变化,适用于包含静态页面.
2.37.在JSP中:
1.如何获得当前Web应用在文件系统里的绝对路径?
2.如何获得Web应用中某一文件的绝对路径?
参考答案:
1.获得当前Web应用在文件系统里的绝对路径的方式如下:
<%= application.getRealPath("/"); %>
- 1
2.获取应用中/WebRoot/img文件夹里的a.png文件的绝对路径的方式如下:
<%= request.getContextPath() %>/img/a.png
- 1
2.38.JSP和Servlet区别和联系是什么?
参考答案:
JSP是Servlet技术的扩展,本质上是Servlet的简易方式,更强调应用的外表表达.JSP编译后是”类servlet”.Servlet和JSP最主要的不同点在于,Servlet的应用逻辑是在Java文件中,并且完全从表示层中的HTML里分离开来.而JSP的情况是Java和HTML可以组合城一个扩展名为.jsp的文件.JSP侧重于视图,Servlet主要用于控制逻辑.
2.39.JSP是怎么转化为HTML的?
参考答案:
JSP在执行前仙贝转译成.java文件(servlet),在编译成.class文件.每个JSP实例都有个jspservice方法,而这个方法将动态数据解释成以html标记的内容,然后子安用JspWriter对象将一段一段内容写向服务器,之后刷新JspWriter对象和关闭它,最后客户端所得到的就是html内容了.
2.40.JSP的四种范围
参考答案:
JSP的四种范围如下:
1.page是代表与一个页面相关的对象和属性.一个页面由一个编译好的Java servlet类表示.这既包括servlet又包括被译成servlet的JSP页面;
2.request是代表与Web客户机发出的一个请求相关的对象和属性.一个请求可能跨越多个页面,涉及多个Web组件;
3.session是代表与用于某个Web客户机的一个用户体验相关的对象和属性.一个Web会话可以也经常会跨越多个客户机请求;
4.application是代表与整个Web应用程序相关的对象和属性.这实质上是跨越整个Web应用程序,包括多个页面,请求以及会话的一个全局作用域.