javaweb12-jsp, el表达式,jstl标签

上传人:第*** 文档编号:34039634 上传时间:2018-02-20 格式:DOCX 页数:30 大小:248.57KB
返回 下载 相关 举报
javaweb12-jsp, el表达式,jstl标签_第1页
第1页 / 共30页
javaweb12-jsp, el表达式,jstl标签_第2页
第2页 / 共30页
javaweb12-jsp, el表达式,jstl标签_第3页
第3页 / 共30页
javaweb12-jsp, el表达式,jstl标签_第4页
第4页 / 共30页
javaweb12-jsp, el表达式,jstl标签_第5页
第5页 / 共30页
点击查看更多>>
资源描述

《javaweb12-jsp, el表达式,jstl标签》由会员分享,可在线阅读,更多相关《javaweb12-jsp, el表达式,jstl标签(30页珍藏版)》请在金锄头文库上搜索。

1、JavaWeb12-JSP, EL 表达式,JSTL 标签JSP & EL & JSTL一.JSP1. jsp 回顾jsp 作用jsp全称 java server pages(java服务器页面),本质是一个 servlet.它是在传统的网页 HTML文件(*.htm,*.html)中插入 Java程序段(Scriptlet)和 JSP标记(tag),从而形成 JSP文件,后缀名为(*.jsp).jsp作用:将内容的生成和显示进行分离用 JSP技术,Web 页面开发人员可以使用 HTML或者 XML标识来设计和格式化最终页面,并使用 JSP标识或者小脚本来生成页面上的动态内容jsp 原理jsp

2、 脚本有三个基本的脚本元素,作用是使 JAVA代码可以直接插入到 HTML代码中声明标签格式:作用:声明的变量在类的成员位置上脚本片断格式:作用:内容会生成在_jspService()方法中脚本表达式格式:作用:它就相当于是 out.println()将内容直接输出到页面中,注意表达式不能以分号结尾jsp 注释在 jsp页面中可以使用三种注释可以使用 html中注释可以对 jsp脚本内容使用 java注释/单行注释 /* 多行注释 */ /*文档注释*/可以使用 jsp注释(推荐)2. jsp 指令简单介绍jsp 指令介绍当我们创建一个 jsp页面时,在页面第一行有一段代码如下:这个就是指令,

3、对于指令它有以下作用a. 用于指示 JSP执行某些步骤b. 用于指示 JSP表现特定行为jsp 指令格式格式:注意:其中 attr1和 attr2表示指令中的属性,通常我们将 JSP指令写在 JSP文件的的最上方,但是这不是必须的。jsp 指令分类JSP中有三大指令,分别是以下三个:pageincludetaglib其中这三个指令中,page 是最复杂的,我们会详细讲解(导入类,编码的设置等等);include 指令表示静态包含,我们之前学习的请求包含属于动态包含;taglib指令是用来导入标签库,后面会学习一些标签库,在这里只做简单介绍。3. jsp 指令-page重点属性:import作用

4、:在 jsp页面上导包操作.这个属性可以有多个.pageEncoding作用:指定当前 jsp页面的编码。这个编码是给服务器看的,服务器需要知道当前页面的编码,否则服务器无法正确的把 jsp翻译成 Java文件。contentType在 jsp文件中有如下指令:其中 contentType属性的作用等同于response.setContentType(“text/html;charset=utf-8”)的作用。response的 setContentType()方法这里我们就不再多说,当我们在 jsp文件中提供了contentType属性,那么 jsp对应的 java文件中就会存在respon

5、se.setContentType(“text/html;charset=utf-8”)这句代码。contentType属性的默认值是“text/html; charset=ISO-8859-1”,但是我们知道 iso-8859-1并不支持中文,所以我们需要将 charset的值修改为“utf-8“。pageEncoding与 contentType的区别与联系pageEncoding与 contentType都是 page指令的属性,它们都是用来设置编码,有如下联系:如果这两个属性只提供了其中一个,那么没有提供的那个属性的编码值就是提供的这个属性的编码值,例如:在 jsp页面中设置了 con

6、tentType=”text/html;charset=utf-8”,那么没有设置的 pageEncoding的值就为 utf-8,反之亦然;如果两个属性都没有提供,那么两者的默认编码就是 ISO-8859-1。根据对这两个属性的讲解,它们有如下区别:pageEncoding是设置当前页面的编码,该编码是给服务器看的,可以让服务器正确的将 jsp文件翻译成 Java文件;contentType有两个作用:一是设置响应字符流的编码,二是设置 Content-Type响应头,即通知浏览器使用什么编码方式解码响应信息。了解属性:language代表在 jsp脚本中可以写的语言, 只有一个值 java

7、extends它用于设置 jsp翻译后的 java类的父类. 要求必须是 HttpServlet或其子类.session面上是否禁用 session。可取值为 true/false 如果值为 false,在页面上不能使用 session。isELIgnored用是否忽略 el表达式.可取值为 true/false 如果值为 true,那么页面上的 el表达式就不会被解析.autoFlush与 buffer用于设置 jsp中 out流的默认缓冲区大小以及是否自动刷新.errorPage设置错误页面,当 jsp中如果出现了异常,会自动跳转到指定的错误页面isErrorPage指示当前页面是一个错误

8、页面,这时就可以使用一个内置对象 exception,通过这个内置对象就可以获取异常信息.4. jsp 指令-include 和 taglibincludeinclude指令作用include指令的作用是在 JSP页面中静态包含一个文件,同时由 JSP解析包含的文件内容include指令格式include指令功能分析包含的是目标文件的源码;包含过来,一起翻译main.jsp中的代码part.jsp中的代码没有定义变量 s尽管 part.jsp本身会有错误但是运行 main.jsp就可以正确引入 part.jsptaglibtaglib指令作用作用:是用于导入标签库.taglib指令格式uri

9、标签文件的 URI地址prefix 标签组的命名空间前缀5. jsp 内置对象jsp九个内置对象及其类型内置对象 类型request HttpServletRequestresponse HttpServletResponsesession HttpSessionapplication ServletContextconfig ServletConfigpage this(Servlet)pageContext PageContextexception Throwableout JspWriterjsp 九个内置对象的创建过程我们可以创建一个 demo1.jsp页面,启动服务器,在浏览器中访问

10、 demo1.jsp页面,在 tomcat下的 work目录中查找到它翻译后的 demo1_jsp.java文件,在java文件中我们可以查找到每一个内置对象的创建。request,response这两个对象是_jspService 的参数final javax.servlet.jsp.PageContext pageContext;javax.servlet.http.HttpSession session = null;final javax.servlet.ServletContext application;final javax.servlet.ServletConfig confi

11、g;javax.servlet.jsp.JspWriter out = null;final java.lang.Object page = this;java.lang.Throwable exception = org.apache.jasper.runtime.JspRuntimeLibrary.getThrowable(request);if (exception != null) response.setStatus(javax.servlet.http.HttpServletResponse.SC_INTERNAL_SERVER_ERROR);注意:exception 对象只有在

12、jsp页面上设置了 page指令的 isErrorPage才会有 exception对象。jsp 中的四个域对象jsp有四个域对象,分别是:application:域范围是整个应用;session:域范围是整个会话,注意一个会话中只有一个用户,如果要统计站点的访问次数,使用的域是 ServletContext,因为这个时候统计的是多个用户,而非一个用户;request:域范围是整个请求链;pageContext:域范围是一个 jsp页面,在一个页面中存数据再取数据没有任何意义,所以这里所说的域指的是在当前 jsp页面和当前 jsp页面中使用的标签之间共享数据。6. jsp 内置对象-pageC

13、ontext 的作用获取其他内置对象可以通过 pageContext对象获取 jsp中其他的内置对象. PageContext 类中定义了如下八个方法:getPage()、getRequest()、getResponse()、getServletConfig()、getServletContext()、getException()、getSession()等方法,其中 getOut()放是在其父类中定义的,有了这些方法,pageContext对象自然能够获取其他八个内置对象了。操作四个域对象pageContext也是一个域对象,所以他有以下方法:void setAttribute(String

14、 name,Object value)Object getAttribute(String name);Void removeAttribute(String name);我们还可以利用以下方法操作其他域中的对象:Object getAttribute(String name, int scope):该方法的第一个参数是域属性的名称,第二个参数指定是从那个域中取出域属性;在 PageContext中已经定义了如下几个静态常量作为 scope的可选值:int APPLICATION_SCOPE:表示从 application域中获取数据;int PAGE_SCOPE:表示从 pageContex

15、t域中获取数据;int REQUEST_SCOPE:表示从 request域中获取数据;int SESSION_SCOPE:表示从 session域中获取数据。void setAttribute(String name,Object value,int scope):该方法的第一个参数指的是域属性的名称,第二参数指的是域属性的值,第三个参数指定域属性保存的域,scope 的取值同上;void removeAttribute(String name,int scope):该方法的第一个参数指的是域属性的名称,第二个参数指的是将指定域属性从哪个域中移出,scope 的取值同上;便捷查询域中数据Pa

16、geContext类的父类中定义了如下方法:Object findAttribute(String name):该方法是从 jsp的四个域pageContext、request、session、application 依次查找指定名称的域属性,如果找到就停止,这说明如果这四个域中存在同名的属性,那么返回的数据是从 page范围中获取的。即表示谁的域范围越小,谁的优先级越高。7. jsp 动作标签jsp 标签介绍JSP标签也称之为 Jsp Action(JSP动作)元素,它用于在 Jsp页面中提供业务逻辑功能,避免在 JSP页面中直接编写 java代码,造成 jsp页面难以维护。常用的 jsp 标签jsp:forward标签是用来做请求转发,它与 RequestDispatcher接口的forward()方法一样,唯一不同的是它是在 jsp页面中使用。jsp:include标签的作用使用来包含其他 jsp页面,之前学习的 include指令属于静态包含,而 include动作标签是动态包含,

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 办公文档 > 解决方案

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号