简答

1、有人说:servlet和 JavaBean都是java类,可以互换使用,请您回答,在MVC中,控制器部分是否可以使用JavaBean完成?为什么?

不能。因为javabean是普通的java类,MVC中的servlet要完成从客户端接收数据,采用的servlet是HTTP协议,而普通的javabean不能完成该功能。

2、有人说:JSP是Servlet的高级实现,在MVC中,控制器部分应该用JSP实现,请您回答JSP和servlet的异同。

相似:

(1)两者都是基于Java的技术,所以都继承了Java的所有特性(跨平台、多线程等 ),都可以使用Java强大的API。

(2)两者工作方式相似:JSP代码先被JSP容器转换为Servlet代码再编译为类。

(3)两者在J2EE体系结构中的工作层次相同,都负责与客户端的连接。

不同:

1编程方式不同。Servlets是一些运行于Web服务器端的Java小程序;而JSP是脚本,编写起来更简单容易。

2应用目的不同。Servlet主要用于从客户端接收请求信息,而JSP主要负责将服务器端信息传送到客户端

3、采用上文描述的MVC设计模式,有什么优点和缺点?

优点:1、提高了代码复用    2、减少了开发时间  3、更高的可维护性

缺点:1、系统结构变得复杂   2、view对模型数据的访问效率低

4、简单回答Servlet的工作过程。

(1)    客户机将请求发送到服务器。

(2)    服务器上的Web容器实例化Servlet,并为Servlet进程创建线程。Servlet是在出现第一个请求时装入的,在服务器关闭之前不会卸载它。

(3)    Web容器将请求信息发送到Servlet。

(4)    Servlet创建一个响应,并将其返回到Web容器。Servlet使用客户端请求中的信息及服务器可以访问的其他信息资源如资源文件和数据库等来动态构造响应。

(5)    Web容器将响应发回给客户机。

(6)    服务器关闭或Servlet空闲时间超过一定限度时,调用destroy方法退出。

5、详述MVC 中M、V、C的作用及其相互关系。(P241)

6如果Browser已关闭了cookies,在JSP中我如何打开session来跟踪,举例说明。

使用URL重写即可,如下:

session1.jsp

<%@ page session="true" %>

<%

Integer num = new Integer(100);

session.putValue("num",num);

String url =response.encodeURL("session2.jsp");

%>

<a href=<%=url%>>session2.jsp</a>

session2.jsp

<%@ page session="true" %>

<%

Integer i= (Integer )session.getValue("num");

out.println("Num value in session is "+i.intValue());

%>

7JSPServletHTML中的请求转派发分别如何实现。

JSP实现转派发

(1) 在java脚本代码中使用 response.sendRedirect("favorite.jsp") 实现转派发

(2) JSP标准动作: <jsp:forward> 例如: <jsp:forward  page="forward2.jsp" />

Servlet实现转派发

(1) 代码 response.sendRedirect("/abc.html"); 遇到该行代码,会转到abc.html页面。

(2) ServletContext的getRequestDispatcher(String path)方法返回与path相联系的RequestDispatcher对象

RequestDispatcher对象调用forward(ServletRequest request, ServletResponse response) 转向 path

HTML实现转派发

(1) 使用 href 超链接  实现转派发

例如:<a href="forward2.jsp">返回!</a>

(2) 使用 form 表单提交  实现转派发

(3) 使用 meta  例如:

<metahttp-equiv=refresh ontent='<%=aForwardInfo.getSecond()%>;url=<%=aForwardInfo.getUrl()%>'>

(4) 使用 "history.back()"

例如:<input type="button" name="Submit2" value="返回" onClick="history.back();">

(5) 使用 "javascript:history.go(-1);"

例如:<a href="javascript:history.go(-1);">返回!</a>

8. Servlets 与JSP四种会话跟踪技术

答:会话作用域Servlets JSP 页面描述

page是代表与一个页面相关的对象和属性。一个页面由一个编译好的 Java servlet 类(可以带有任何的 include 指令,但是没有 include 动作)表示。这既包括 servlet 又包括被编译成 servlet 的 JSP 页面

request是代表与 Web 客户机发出的一个请求相关的对象和属性。一个请求可能跨越多个页面,涉及多个 Web 组件(由于 forward 指令和 include 动作的关系)

session是代表与用于某个 Web 客户机的一个用户体验相关的对象和属性。一个 Web 会话可以也经常会跨越多个客户机请求

application是代表与整个 Web 应用程序相关的对象和属性。这实质上是跨越整个 Web 应用程序,包括多个页面、请求和会话的一个全局作用域

9. Java servlet API中forward() 与redirect()的区别?

答:前者仅是容器中控制权的转向,在客户端浏览器地址栏中不会显示出转向后的地址;后者则是完全的跳转,浏览器将会得到跳转的地址,并重新发送请求链接。这样,从浏览器的地址栏中可以看到跳转后的链接地址。所以,前者更加高效,在前者可以满足需要时,尽量使用forward()方法,并且,这样也有助于隐藏实际的链接。在有些情况下,比如,需要跳转到一个其它服务器上的资源,则必须使用sendRedirect()方法。

10.JSP中动态include与静态include的区别?

答:动态include用jsp:include动作实现

<jsp:include page="included.jsp" flush="true" />它总是会检查所含文件中的变化,适合用于包含动态页面,并且可以带参数

静态include用include伪码实现,不会检查所含文件的变化,适用于包含静态页面

<%@ include file="included.htm" %>

问答题

1.jsp有哪些内置对象?作用分别是什么?

application对象代表应用程序上下文,它允许JSP页面与包括在同一应用程序中的任何Web组件共享信息。

Config对象允许将初始化数据传递给一个JSP页面

Exception对象含有只能由指定的JSP“错误处理页面”访问的异常数据。

Out对象代表提供输出流的访问

Page对象代表JSP页面对应的Servlet类实例

PageContext对象是Jsp页面本身的上下文,它提供唯一一组方法来管理具有不同作用域的属性

Request对象提供对Http请求数据的访问,同时还提供用于加入特定请求数据的上下文

Response对象允许直接访问HttpServletResponse对象

Session对象可能是状态管理上下文中使用最多的对话
2.jsp有哪些动作?作用分别是什么?

<jsp:param>操作被用来以“名—值”队的形式为其他标签提供附加信息

<jsp:include>操作允许在请求是在现成的JSP页面里包含静态或者动态资源

<jsp:forward>操作允许将请求转发到另一个JSP、servlet或静态资源文件

<jsp:useBean>标签用来在JSP页面中创建一个JavaBean实例并指定他的名字以及作用范围

<jsp:setProperty>此操作和setBean一起协作,用来设置JavaBean的属性

<jsp:getProperty>操作是对<jsp:setProperty>操作的补充,用来访问一个Bean的属性

<jsp:plugin>用来产生客户端浏览器的特别标签,可以使用它来插入Applet和JavaBean
<jsp:fallback>

3.JSP中动态INCLUDE与静态INCLUDE的区别?

如果文件仅仅是静态文件,那么这种包含仅仅是把包含文件的内容加到JSP文件中去,但这个被包含文件不会被JSP编译器执行。相反,如果这个被包含文件是动态的文件,那么他将被JSP编译器执行。如果是动态文件还可以用<jsp:param>传递参数。

4.两种跳转方式分别是什么?有什么区别?
<jsp:include page="included.jsp" flush="true">
  <jsp:forward page= "nextpage.jsp"/>

<jsp:include>操作允许在请求是在现成的JSP页面里包含静态或者动态资源

<jsp:forward>操作允许将请求转发到另一个JSP、servlet或静态资源文件

5.servlet运行的生命周期图.

装载ServletServlet类  Servlet初始化(调用init方法)实例对象被回收

提供服务(调用Service方法) 销毁Servlet实例(调用destroy方法)

8.在程序里怎样注册servlet.

<servlet>

<servlet-name>displayChart</servlet-name>

<servlet-class>org.jfree.chart.servlet.DisplayChart</servlet-class>

</servlet>

<servlet-mapping>

<servlet-name>displayChart</servlet-name>

<url-pattern>/displayChart</url-pattern>

</servlet-mapping>

JSP 相关试题(四)的更多相关文章

  1. JSP 相关试题(一)

    选择题 1.当用户请求jsp页面时,JSP引擎就会执行该页面的字节码文件响应客户的请求,执行字节码文件的结果是(C) A)发送一个JSP源文件到客户端    B)发送一个Java文件到客户端 C)发送 ...

  2. JSP 相关试题(五)

    Normal 0 7.8 磅 0 2 false false false EN-US ZH-CN X-NONE MicrosoftInternetExplorer4 /* Style Definiti ...

  3. JSP 相关试题(三)

    判断题 1.动态网页和静态网页的根本区别在于服务器端返回的HTML文件是事先存储好的还是由动态网页程序生成的(对 ) 2.Web开发技术包括客户端和服务器端的技术.(对 ) 3.Tomcat和JDK都 ...

  4. JSP 相关试题(二)

    填空题 1.W3C是指___万维网联盟_______. 2.Internet采用的通信协议是___TCP/IP___. 3.当今比较流行的技术研发模式是__C/S__和__B/S__的体系结构来实现的 ...

  5. JSP面试题及答案

    更新时间:2015-04-07         来源:网络         投诉删除 [看准网(Kanzhun.com)]JSP面试题频道小编搜集的范文“JSP面试题及答案”,供大家阅读参考,查看更多 ...

  6. maven管理的jsp应用如何添加servlet、jsp相关依赖(org.apache.jasper.JasperException: java.lang.ClassNotFoundException: org.apache.jsp.index_jsp)

    背景: 老大让做权限控制,研究了一下shiro,下了个demo下来,死活跑不起来,报 org.apache.jasper.JasperException: java.lang.ClassNotFoun ...

  7. JSP属性的四种保存范围(page request session application)

    JSP提供了四种属性的保存范围,分别为page.request.session.application 其对应的类型分别为:PageContext.ServletRequest.HttpSession ...

  8. maven引入jsp相关依赖

    <!--引入Servlet开始--> <dependency> <groupId>javax.servlet</groupId> <artifac ...

  9. php面试题四

    php面试题四 一.总结 二.php面试题四 01. 输出为 Mozilla/4.0(compatible;MSIE5.01;Window NT 5.0)时,可能的输出语句是:   A.$_S ...

随机推荐

  1. linux添加动态库搜索路径

    在有时运行程序出现动态库找不着的问题,而明明装了的.这时候可能是没有将相应的路径添加到系统中去. 具体说:cd /etc/ld.so.conf.d/ 可以发现里面有一堆*.conf的文件 我们要做的就 ...

  2. postgreSQL环境搭建

    一.安装 操作系统:windows7 安装介质:postgresql-9.1.3-1-windows.exe 二.psql控制台简单使用 1打开psql 2根据提示运行help 3列出表命令 三.安装 ...

  3. JAVA的数组和输入

    package com.java1995; import java.util.Scanner; public class Array { public static void main(String[ ...

  4. 练手CF3-C - Wormhouse

    深搜,亮点在那个剪枝,flag代表是否搜索数组从开始到当前一直等于原始数组同位置的数,如果是真,就从原始数组的当前位置的书开始搜,否则就从0开始搜. 见代码. #include <iostrea ...

  5. Java 集合深入理解(3):Collection

    点击查看 Java 集合框架深入理解 系列, - ( ゜- ゜)つロ 乾杯~ 今天心情有点粉,来学学 Collection 吧! 什么是集合? 集合,或者叫容器,是一个包含多个元素的对象: 集合可以对 ...

  6. GitHub for Windows

    /*************************************************************************** * GitHub for Windows * ...

  7. LeetCode Sum Root to Leaf Numbers(DFS)

    题意: 给一棵二叉树,每个节点上有一个数字,范围是0-9,将从根到叶子的所有数字作为一个串,求所有串的和. 思路: 普通常规的DFS. /** * Definition for a binary tr ...

  8. 如何在dede栏目设置中添加自定义字段(dede二次开发-纯抄贴)

    如何在dede栏目设置中添加自定义字段 这个说法以前没有见到到,很少有客户会提出这样的二次要求,今天织梦者在网上转了一下看到了这样的一篇文章转过来与大家分享 鉴于这个教程没人发过,网上搜索的人也比较多 ...

  9. qemu源码架构

    前言:本文主要概括了QEMU的代码结构,特别从代码翻译的角度分析了QEMU是如何将客户机代码翻译成TCG代码和主机代码并且最终执行的过程.并且在最后描述了QEMU和KVM之间联系的纽带. 申明:本文前 ...

  10. metronic后台模板学习 -- 所用外部插件列表

    插件名称 描述 URL jQuery 1.11.0 js库,不用介绍了 http://www.jquery.com jQuery Migrate plugin 1.2.1 jQuery 老版本过渡迁移 ...