黑马程序员技术交流社区

标题: 【广州校区】【原创】JSP常见问题精华总结 [打印本页]

作者: 帅气de路人甲    时间: 2018-3-19 15:49
标题: 【广州校区】【原创】JSP常见问题精华总结
【001】什么是JSP?有什么特点?
答:
JSP(Java Server Pages)本质是 Servlet 技术,即一种基于Java语言的开发动态web资源技术,该技术运行在服务器端的程序
特点:

【002】JSP是如何运行的,原理是什么?
答:
①  客户端发出请求(request),请求访问JSP页面
②  JSP Container将要访问的 .jsp 文件转译成 Servlet 源代码(.java)文件
③  将产生的Servlet源代码(.java)文件经过编译,生成 .class 文件,并加载到内存执行
④  将结果相应(response)给客户端
即:
客户端  --① 请求-->  jsp文件  --② 转换-->  servlet文件  --③ 编译-->  .class文件  --④ 执行-->  servlet实例  --⑤ 返回响应-->  客户端

【003】JSP常用的注释有几种?分别是什么?
答:
2种。HTML注释 和 隐藏注释(jsp专有注释)
①  HTML注释
能在客户端显示的一个注释,标记内的所有 JSP脚本元素、指令和动作正常执行,也就是说编译器会扫描注释内的代码
②  JSP注释
用隐藏注释标记的字符会在JSP编译时被忽略掉,标记内的所有JSP脚本元素、指令和动作都将不起作用。也就是说JSP编译器不会对注释内的任何语句进行编译,期代码也都不会显示在客户端浏览器的任何位置

【004】JSP基本语法有哪些?
答:
有2种注释、3个脚本元素、3个指令元素、8个动作指令
①  JSP模板元素
JSP页面中的HTML内容称之为JSP模板元素
JSP模板元素定义了网页的基本骨架,即定义了页面的结构和外观
②  JSP注释
JSP注释有2种,
会发送到客户端,格式:<!-- comment [ <%= expression %> ] -->
不会在客户端显示,格式:
<%-- 这是一个jsp单行注释 --%>
<% /* 这是一个jsp多行注释 */ %>
区别:
运行的时候HTML的注释可以通过源码看到;而JSP的注释无法看到,更加安全
③  JSP脚本元素
④  JSP指令元素
语法:<%@  指令 属性名="值" ...  %>
如果一个指令有多个属性,这多个属性可以写在一个指令中,也可以分开写
⑤  JSP动作指令

【005】JSP中动态 INCLUDE 与静态 INCLUDE 的区别?
答:
①  使用的元素不同:
②  生成的文件不同:
③  能否传参不同:
<jsp:include page="a.jsp?param=123">
<jsp:include page="a.jsp">
<jsp:param name="..." value="...">
</jsp:include>

【006】JSP的隐含对象有哪些,分别有什么作用?
答:
①  out                        :JspWriter,用于发送输出流到客户端(相当于带缓存的PrintWriter)
②  request                :源于HttpServletRequest接口,被关联到每个HTTP请求
③  response                :源于HttpServletResponse接口,用于把取得的数据返回到客户端
④  pageContext        :提供访问JSP页面的命名空间,用来访问其它的JSP隐含对象
⑤  session                :源于HttpSession,用于存储客户端请求的信息,因此它有状态交互式
⑥  application                :源于ServletContext
⑦  config                        :源于ServletConfig,包含了当前JSP / Servlet所在的web应用的配置信息
⑧  page                        :源于当前被访问JSP页面的实例化,它实际使用的是JSP转换成的Servlet
⑨  exception                :用于捕获JSP抛出的异常,只在JSP页面属性isErrorPage=true时才可用

【007】JSP中的out隐含对象什么时候去调用getWriter方法?
答:
只有向out对象写入内容,且满足如下任何一个条件时,out对象才去调用ServletResponse.getWriter方法,并通过该方法返回的PrintWriter对象将out对象的缓冲区内容真正写入到Servlet引擎提供的缓冲区中
①  out对象的缓冲区已满
②  整个JSP页面结束

【008】JSP的域对象有哪些?
答:
page                :当前页面
request                :当前会话:一次请求范围内有效
session                :浏览器进程:只要当前页面没有被关闭,不管怎么跳转都是有效的
application        :服务器:只要服务器没有重启,数据就有效

【009】JSP两种跳转方式分别是什么?有什么区别?
答:
重定向和请求转发
重定向        :
请求转发        :
区别:
①  forward跳转
②  response跳转








欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2