JAVA企业面试题精选 Servlet和JSP 31-40

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应用程序,包括多个页面,请求以及会话的一个全局作用域.

猜你喜欢

转载自blog.csdn.net/a639735331/article/details/81666800
今日推荐