ITPub博客

首页 > 应用开发 > Java > 【Java面试】JSP常见面试题!

【Java面试】JSP常见面试题!

原创 Java 作者:六星_研鑫 时间:2020-07-29 19:28:19 0 删除 编辑

点击免费获取最新BAT面试题,2020最新面试技巧和简历模板!


1:什么是Jsp?

Java Server Page 结合 java和html在服务端动态生成web页面的技术

2:描述Jsp页面的运行过程?

第一步:

请求进入Web容器,将JSP页面翻译成Servlet代码

第二步:

编译Servlet代码,并将编译过的类文件装入Web容器(JVM)环境

第三步:

Web容器为JSP页面创建一个Servlet类实例,并执行jspInit方法

第四步:

Web容器为该JSP页面调用Servlet实例的_jspService方法;将结果发送给用户

3:描述Jsp页面的五类脚本元素的功能、写法、并示例

注释  <%--    --%>:
 
<HTML>
 
      <%-- scripting element --%>
 
</HTML>
 
 
 指令标记  <%@   %> 指令标记影响JSP页面的翻译阶段:
 
       <%@ page session=”false” %>
 
 
声明标记  <%!   %> 声明标记允许JSP页面开发人员包含类级声明:
 
<%! public static final String DEFAULT_NAME = “World”; %>
 
 
脚本标记  <%    %> 脚本标记允许JSP页面开发人员在_jspService方法中包含任意的Java代码:
 
<% int i = 0; %>
 
 
表达式标记 <%= %>  表达式标记封装Java运行时的表达式,其值被送至HTTP响应流:  <B>Ten is <%= (2 * 5) %></B>


4:描述Jsp页面中的注释种类和写法

HTML注释

<!-- HTML注释显示在响应中 -->

 

JSP页面注释

<%-- JSP注释只在JSP代码中可见,不显示在servlet代码或响应中。--%>

Java注释

<%

/* Java注释显示在servlet代码中,不显示在响应中

*/

%>

 

5:描述Jsp页面的指令标记的功能、写法、并示例

指令标记影响JSP页面的翻译阶段

<%@ page session=”false” %>

<%@ include file=”incl/copyright.html” %>

<%@ taglib  %>

6:描述Jsp页面的声明标记的功能、写法、并示例

声明标记允许JSP页面开发人员包含类级声明

写法:

<%!  JavaClassDeclaration %>

例:
 
<%! public static final String DEFAULT_NAME = “World”; %>
 
<%! public String getName(HttpServletRequest request) {
 
                return request.getParameter(“name”);
 
    }
 
%>
 
<%! int counter = 0; %>



7:描述Jsp页面翻译成Servlet的规则

jsp中的注释标记被翻译成Servlet类中的注释

jsp中的指令标记被翻译成Servlet类中的import语句等

jsp中的声明标记被翻译成Servlet类中的属性

jsp中的脚本标记被转移到Servlet类中service方法中的代码

jsp中的表达式标记被翻译成Serlvet类中的write()或者print()方法括号中的代码

8:描述Jsp页面的九个预定义变量的功能、用法、并示例

request       与请求相关的HttpServletRequest对象

response      与送回浏览器的响应相关的HttpServletResponse对象

out          与响应的输出流相关的JspWriter对象

session       与给定用户请求会话相关的HttpSession对象,该变量只在JSP页面参与一个HTTP会话时有意义

Applicationn    用于Web应用的ServletContext对象

config        与该JSP页面的servlet相关的ServletConfig对象

pageContext   该对象封装了一个JSP页面请求的环境

page         该变量与Java编程语言中的this变量等价

exception     由其它JSP页面抛出的Throwable对象,该变量只在"JSP错误页面"中可用

9:page指令的功能,写法、并示例,并描述它的如下属性的功能和用法:import、session、buffer、errorPage、isErrorPage、ContentType、pageEncoding

import :      import 定义了一组servlet类定义必须导入的类和包,值是一个由逗号分隔的完全类名或包的列表。

session  :    session 定义JSP页面是否参与HTTP会话,值可以为true(缺省)或false。

buffer  :     buffer 定义用于输出流(JspWriter对象)的缓冲区大小,值可以为none或Nkb,缺省为8KB或更大。

errorPage:     用来指定由另一个jsp页面来处理所有该页面抛出的异常

isErrorPage :  定义JSP页面为其它JSP页面errorPage属性的目标,值为true或false(缺省)。

ContentType  : 定义输出流的MIME类型,缺省为text/html。

pageEncoding  :定义输出流的字符编码,缺省为ISO-8859-1

10:描述MVC各部分的功能?

Model

   封装应用状态

   响应状态查询

   暴露应用的功能

 

    Controller

   验证HTTP请求的数据

   将用户数据与模型的更新相映射

   选择用于响应的视图

 

    View

   产生HTML响应

   请求模型的更新

   提供HTML form用于用户请求

11:什么是Model 1结构,以及结构中各部分的功能

Model1中使用jsp来处理web应用中的视图控制部分

    jsp+javabean

12:什么是JavaBean?

用户可以使用JavaBean将功能、处理、值、数据库访问和其他任何可以用java代码

创造的对象进行打包,并且其他的开发者可以通过内部的JSP页面、Servlet、其

他JavaBean、applet程序或者应用来使用这些对象。

13:JavaBean的规则?

使用get和set方法定义属性

一个无参构造方法

无public实例变量

14:什么是jsp标准动作?包含那些?分别都是什么功能?如何使用?

JSP页面中使用类似于XML的标记表示运行时的动作

jsp:userBean

jsp:setProperty

jsp:getProperty

jsp:parameter

jsp:include

jsp:forward

15:用代码示例如下标准动作的使用:useBean、getProperty、setProperty

<jsp:useBean
 
id="myForms" 
 
class="com.base.mystruts.forms.MyActionForm" scope="session" />
 
<jsp:setProperty name="MyForms" property="name" />
 
<jsp:getProperty name="MyForms" property="id" />


16:描述说明Bean的四种scope

Request

Session

Application

Page


17:描述说明页面上的字段和Bean中属性的对应规则

id 指javabean的变量名

class指javabean类的全路径

scope指javabean的应用范围

name指所用到的javabean的变量名

property指javabean中的属性


18:描述useBean动作的处理过程

使用id声明变量

试图在指定的范围内查找对象

如果没找到

   创建一个类的实例

   执行useBean标记体初始化对象 

如果找到

   将对象转换为类指定的类型


19:描述forward动作的功能

使用脚本代码处理请求时,可用jsp:forward 动作产生一个不同的视图,

使用同一个request:


20:什么是Model 2结构,以及结构中各部分的功能

jsp+javabean+servlet

Model 2架构使用MVC模式,JSP页面充当视图,Servlet充当控制器

Servlet控制器:

验证HTML form数据

调用模型中的业务服务

存储请求(或会话)范围内的域对象

选择下一个用户的视图

JSP页面视图:

使用用户界面(在HTML中)

访问域对象


21:如何获得分发器?分发器的功能?

上下文对象中的分发器:

ServletContext context = getServletContext();
RequestDispatcher servlet = context.getNamedDispatcher("MyServlet");
servlet.forward(request, response);

 

请求对象中的分发器:

RequestDispatcher view = request.getRequestDispatcher("tools/nails.jsp");
view.forward(request, response);

 

可以将请求转发到另一个jsp页面

当从客户端发出请求到a 是request(1),a再请求b是request(2)就变成两个不同的请求,用RequestDispatcher来保持原来的请求(在不同的servlet之间保持同一个请求时用RequestDispatcher)

RequestDispatcher   rd  =  request.getRequestDispatcher(“string”);
rd.forword(request);//前往下一个请求 到下一个servlet

22:描述Jsp中引入另外页面的两种方法?

<%@ include%>

<jsp:include>


23:比较上述两种方法的特点

<%@ include%> 再编译期间把另一个页面完全嵌入这个页面,可以说是一个页面

                  在这里可以共享变量

<jsp:include>    动态的再运行期间把另一个页面加入这个页面,可以说是两个页面,不可以共享变量


24:什么是自定义标记

自定义标记库是一个Web组件,

包括:

一个标记库描述符文件

所有相关的标记处理器类


25:描述使用自定义标记的步骤,以及每步详细的工作

1.自定义标记遵循XML标记规则

    自定义标记使用XML规则;

    标记名属性,以及前缀都是大小写敏感;

    标记嵌套规则;  

 

2.需要在JSP页面和Web应用程序的部署描述符中声明标记库:

      taglib

      在部署描述符中使用taglib元素声明web应用程序使用一个标记库;

      在jsp页面中使用taglib指令表明要使用哪个标记库及相应的自定义标记所使用的前缀; 

      使用自定义的空标记 

      使用自定义的条件标记 

      使用自定义的迭代标记 

   3.在JSP页面中可使用自定义的空标记

      getPepParam()标记:将命名的请求标志插入的输出中;

   4.在JSP页面中使用自定义标记,可有条件地执行HTML响应的某部分

    heading标记:生成一个隐藏的Html table创建一个彩色且格式化过的页表头

   5.在JSP页面中使用自定义标记,可迭代执行HTML响应中的某部分:

     IterateOverErrors标记:对stutas中的所有异常现象进行迭代;

     taglib

     1.把类烤过去

     2.把Taglib的描述文件(*.tld)放在web-inf根目录下

     3.在web.xml里配置

     4.回到页面去,定义Taglib使用的前缀

     5.直接使用,一定要结尾;


来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/69977571/viewspace-2707928/,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论
一入Java坑,终身入Java坑,欢迎java坑友一起交流学习,群内有大牛,并分享提供大量免费资料,欢迎入圈:925050116

注册时间:2020-06-27

  • 博文量
    26
  • 访问量
    19585