一、Java初级开发之jsp概述
JavaServer Pages简称jsp,从“server”这个词可以看出,这其实也是一门java服务端技术,其实可以简单的把jsp认为是servlet,一点错也没有。Jsp的实质,就是客户端需要的资源是通过jsp技术动态生成的。
1)当客户端在访问一个jsp资源时,服务器上有相应的servlet来负责jsp资源,那么该servlet将会把jsp页面翻译成一个servlet,然后执行该servlet的service方法。
因此jsp就是一个servlet,也就是jsp页面将被翻译成servlet
jsp就是servlet,那么如果碰到需要写繁多的html代码,建议使用jsp,如果需要写繁多的java代码,建议使用servlet。
1.JSP脚本
1) <% java代码 %>
2) <% java代码 %>
3) <% java代码 %>
4)jsp的注释方式
用户看得到,程序员也看得到
用户看不到,但是会被翻译
用户看不到,不会被翻译,只有程序员在写jsp页面时才看得到。
1)page指令
· language: 指的是jsp页面支持哪种语言,只支持java,所以该属性可以省略
· session:默认值是true,默认情况下服务器会为该页面开辟一个session空间
· errorPage:当发生错误时跳转到的资源,注意,该地址是一个服务器地址。
404
总结:一般情况下,page指令就这么写即可:
include指令是用于在一个jsp页面中包含另一个jsp页面,两个页面组合成一个页面发送给客户端。
3)taglib指令:标签库
3.四大域对象 (jsp有四个,servlet有三个(request,session,servletContext))
(1)pageContext作为域对象
pageContext域对象的作用范围:当前page(页面)
getAttribute(String key);
· 向其他域对象中操作数据.
pageContext.getAttribute(String key, int scope);向其他域对象中取值
int scope来自于PageContext类的常量
SESSION_SCOPE: 表示session域
· findAttribute(String key):Object :这是通过键,向所有域中搜索数据。
pageContext->request->session->application
通过pageContext的get*()来获得。
作用范围:一次请求
作用范围:一次会话
作用范围:当前web应用
所谓的内置对象,即在jsp页面的脚本中能直接使用的java对象。
当通过out的write()写内容时,实际是往out的缓冲区(默认大小是8kb)中去写,有两种情况导致缓冲区的内容会冲刷进底层的输出流中
2)out的缓冲区不够用了。其实我们可以设置out缓冲区的大小。如果缓冲区是0kb,那么out就把内容直接写到response缓冲区中。
· pageContext:重点,表示当前page的上下文对象,也是一个域对象
· request:
· exception 当jsp页面的page指令的isErrorPage属性为true时,才会有exception对象
· config:实际就是ServletConfig对象
1) jsp:include
和静态的区别:
而动态包含会在翻译的过程中只翻译自己页面的内容,被包含的页面的翻译交给相应的类来完成,被包含的页面会产生java文件,实际开发中更加常用动态包含。
请求转发,与servlet中的请求转发的效果一致。
