这篇文章主要为大家展示了“JSP常见面试题有哪些”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“JSP常见面试题有哪些”这篇文章吧。
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.直接使用,一定要结尾;
以上是“JSP常见面试题有哪些”这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注亿速云行业资讯频道!
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。