5.2 JSP语法
- 格式:ppt
- 大小:470.00 KB
- 文档页数:73
Jsp详解1.简介2.Jsp的运行原理3.Jsp的语法1.Jsp模板元素2.Jsp中的脚本表达式3.Jsp中的脚本片段4.Jsp的声明5.Jsp注释6.Jsp指令1.首先我们来看一下page指令的用法2.下面在来看一下include指令3.最后来看一下taglib指令7.Jsp中内置的9个隐式对象8.JSP标签库1.jspinclude标签2.jspforward标签3.jspparam或者jspparams标签4.jspuseBean标签jspsetProperty标签jspgetProperty标签9.Jsp中怎么排查错误简介:JSP全称是JavaServer Pages,它和servle技术一样,都是SUN公司定义的一种用于开发动态web资源的技术。
JSP这门技术的最大的特点在于,写jsp就像在写html,但:它相比html而言,html只能为用户提供静态数据,而Jsp技术允许在页面中嵌套java代码,为用户提供动态数据。
相比servlet而言,servlet很难对数据进行排版,而jsp除了可以用java代码产生动态数据的同时,也很容易对数据进行排版。
不管是JSP还是Servlet,虽然都可以用于开发动态web资源。
但由于这2门技术各自的特点,在长期的软件实践中,人们逐渐把servlet作为web应用中的控制器组件来使用,而把JSP技术作为数据显示模板来使用。
其原因为,程序的数据通常要美化后再输出:让jsp既用java代码产生动态数据,又做美化会导致页面难以维护。
让servlet既产生数据,又在里面嵌套html代码美化数据,同样也会导致程序可读性差,难以维护。
因此最好的办法就是根据这两门技术的特点,让它们各自负责各的,servlet只负责响应请求产生数据,并把数据通过转发技术带给jsp,数据的显示jsp来做。
Jsp的运行原理:目标:Web服务器是如何调用并执行一个jsp页面的?Jsp页面中的html排版标签是如何被发送到客户端的?Jsp页面中的java代码服务器是如何执行的?Web服务器在调用jsp时,会给jsp提供一些什么java对象?思考:JSP为什么可以像servlet一样,也可以叫做动态web资源的开发技术?其实Jsp就是一个Servlet,所以我们要先介绍Servlet的相关技术,当我们第一次访问Jsp 的时候,Jsp引擎都会将这个Jsp翻译成一个Servlet,这个文件存放在Tomcat中的work目录中,这里,我们新建一个MyJsp.jsp页面,然后访问以下,我们看一下翻译后的源码:1.<%@ page language="java"import="java.util.*"pageEncoding="utf-8"%>2.3.<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML4.01 Transitional//EN">4.<html>5.<head>6.7.<title>My JSP 'MyJsp.jsp' starting page</title>8.9.</head>10.11.<body>12. This is my JSP page. <br>13.</body>14.</html>1.package org.apache.jsp;2.3.import javax.servlet.*;4.import javax.servlet.http.*;5.import javax.servlet.jsp.*;6.import java.util.*;7.8.public final class MyJsp_jsp extends org.apache.jasper.runtime.HttpJspBase9.implements org.apache.jasper.runtime.JspSourceDependent {10.11.private static final JspFactory _jspxFactory = JspFactory.getDefaultFactory();12.13.private static java.util.List _jspx_dependants;14.15.private javax.el.ExpressionFactory _el_expressionfactory;16.private org.apache.AnnotationProcessor _jsp_annotationprocessor;17.18.public Object getDependants() {19.return _jspx_dependants;20. }21.22.public void _jspInit() {23. _el_expressionfactory = _jspxFactory.getJspApplicationContext(getServletConfig().getServletContext()).getExpressionFactory();24. _jsp_annotationprocessor = (org.apache.AnnotationProcessor) getServletConfig().getServletContext().getAttribute(org.apache.AnnotationProcessor.class .getName());25. }26.27.public void _jspDestroy() {28. }29.30.public void _jspService(HttpServletRequest request, HttpServletResponse response)31.throws java.io.IOException, ServletException {32.33. PageContext pageContext = null;34. HttpSession session = null;35. ServletContext application = null;36. ServletConfig config = null;37. JspWriter out = null;38. Object page = this;39. JspWriter _jspx_out = null;40. PageContext _jspx_page_context = null;41.42.43.try {44. response.setContentType("text/html;charset=utf-8");45. pageContext = _jspxFactory.getPageContext(this, request, response,46.null, true, 8192, true);47. _jspx_page_context = pageContext;48. application = pageContext.getServletContext();49. config = pageContext.getServletConfig();50. session = pageContext.getSession();51. out = pageContext.getOut();52. _jspx_out = out;53.54. out.write("\r\n");55. out.write("\r\n");56. out.write("<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\">\r\n");57. out.write("<html>\r\n");58. out.write(" <head>\r\n");59. out.write(" \r\n");60. out.write(" <title>My JSP 'MyJsp.jsp' starting page</title>\r\n");61. out.write(" \r\n");62. out.write(" </head>\r\n");63. out.write(" \r\n");64. out.write(" <body>\r\n");65. out.write(" This is my JSP page. <br>\r\n");66. out.write(" </body>\r\n");67. out.write("</html>\r\n");68. } catch (Throwable t) {69.if (!(t instanceof SkipPageException)){70. out = _jspx_out;71.if (out != null && out.getBufferSize() != 0)72.try { out.clearBuffer(); } catch (java.io.IOException e) {}73.if (_jspx_page_context != null) _jspx_page_context.handlePageException(t);74. }75. } finally {76. _jspxFactory.releasePageContext(_jspx_page_context);77. }78. }79.}我们看到,这个类继承了org.apache.jasper.runtime.HttpJspBase,要想看到这个类的源码,我1./*2. * Licensed to the Apache Software Foundation (ASF) under one or more3. * contributor license agreements. See the NOTICE file distributed with4. * this work for additional information regarding copyright ownership.5. * The ASF licenses this file to You under the Apache License, Version 2.06. * (the "License"); you may not use this file except in compliance with7. * the License. You may obtain a copy of the License at8. *9. * /licenses/LICENSE-2.010. *11. * Unless required by applicable law or agreed to in writing, software12. * distributed under the License is distributed on an "AS IS" BASIS,13. * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.14. * See the License for the specific language governing permissions and15. * limitations under the License.16. */17.18.package org.apache.jasper.runtime;19.20.import java.io.IOException;21.22.import javax.servlet.ServletConfig;23.import javax.servlet.ServletException;24.import javax.servlet.http.HttpServlet;25.import javax.servlet.http.HttpServletRequest;26.import javax.servlet.http.HttpServletResponse;27.import javax.servlet.jsp.HttpJspPage;28.import javax.servlet.jsp.JspFactory;29.30.import piler.Localizer;31.32./**33. * This is the super class of all JSP-generated servlets.34. *35. * @author Anil K. Vijendran36. */37.public abstract class HttpJspBase38.extends HttpServlet39.implements HttpJspPage40.41.42.{43.44.protected HttpJspBase() {45. }46.47.public final void init(ServletConfig config)48.throws ServletException49. {50.super.init(config);51. jspInit();52. _jspInit();53. }54.55.public String getServletInfo() {56.return Localizer.getMessage("");57. }58.59.public final void destroy() {60. jspDestroy();61. _jspDestroy();62. }63.64./**65. * Entry point into service.66. */67.public final void service(HttpServletRequest request, HttpServletResponse response)68.throws ServletException, IOException69. {70. _jspService(request, response);71. }72.73.public void jspInit() {74. }75.76.public void _jspInit() {77. }78.79.public void jspDestroy() {80. }81.82.protected void _jspDestroy() {83. }84.85.public abstract void _jspService(HttpServletRequest request,86. HttpServletResponse response)87.throws ServletException, IOException;88.}好吧,看到了,继承了HttpServlet类,所以说其实Jsp就是一个ServletJsp的语法:1.JSP模版元素2.JSP表达式3.JSP脚本片段4.JSP注释5.JSP指令6.JSP标签7.JSP内置对象8.如何查找JSP页面中的错误Jsp模板元素JSP页面中的HTML内容称之为JSP模版元素。
《Java Web程序设计》课程标准Java Web程序设计1.概述本章介绍Java Web程序设计课程的目标和主要内容。
包括课程简介、学习目标、学习资源等。
1.1 课程简介介绍Java Web程序设计课程的背景和重要性。
阐述课程的目标和计划。
1.2 学习目标列出学习Java Web程序设计课程的主要目标。
包括掌握核心概念、熟悉开发工具和框架、具备独立开发Web应用的能力等。
1.3 学习资源学习Java Web程序设计课程所需的资源。
包括参考书籍、网站、在线教程等。
2.基础知识本章介绍Java Web程序设计的基础知识,包括Java编程基础、和CSS基础等。
2.1 Java编程基础详细介绍Java编程语言的基础知识,包括数据类型、控制流、面向对象编程等。
2.2 基础介绍标记语言的基础知识,包括标签、属性、表单等。
2.3 CSS基础介绍CSS样式表的基础知识,包括选择器、属性、样式优先级等。
3.Servlet开发本章介绍Servlet开发的基本知识和技术,包括Servlet API、Servlet生命周期、请求和响应等。
3.1 Servlet API详细介绍Servlet API的核心接口和类,包括Servlet、HttpServletRequest、HttpServletResponse等。
3.2 Servlet生命周期介绍Servlet的生命周期和各个阶段的作用。
3.3 请求和响应讲解Servlet中的请求和响应对象的方法和属性,包括获取请求参数、设置响应头等。
4.JSP开发本章介绍JSP开发的基本知识和技术,包括JSP语法、内置对象、JSTL标签库等。
4.1 JSP语法详细介绍JSP的基本语法和标签,包括脚本元素、声明、表达式等。
4.2 内置对象介绍JSP中的内置对象,包括request、response、session等。
4.3 JSTL标签库介绍JSTL标签库的使用方法和常用标签,包括循环、条件判断、格式化等。
《JSP程序设计》教案第一章:JSP简介1.1 课程目标了解JSP的概念和发展历程掌握JSP的运行原理和基本语法1.2 教学内容JSP的定义和发展历程JSP的运行原理JSP的基本语法1.3 教学方法讲解和演示相结合实例教学1.4 教学资源教材:《JSP程序设计》课件:JSP简介.ppt1.5 教学过程介绍JSP的概念和发展历程(15分钟)讲解JSP的运行原理(15分钟)介绍JSP的基本语法(15分钟)1.6 课后作业掌握JSP的概念和发展历程理解JSP的运行原理第二章:JSP页面结构2.1 课程目标掌握JSP页面的基本结构和标记了解JSP页面的生命周期2.2 教学内容JSP页面的基本结构JSP页面的生命周期JSP标记的使用2.3 教学方法讲解和演示相结合实例教学2.4 教学资源教材:《JSP程序设计》课件:JSP页面结构.ppt2.5 教学过程介绍JSP页面的基本结构(20分钟)讲解JSP页面的生命周期(15分钟)介绍JSP标记的使用(15分钟)2.6 课后作业掌握JSP页面的基本结构了解JSP页面的生命周期第三章:JSP内置对象3.1 课程目标掌握JSP的内置对象及其作用熟练使用JSP内置对象进行数据处理3.2 教学内容JSP内置对象的介绍JSP内置对象的使用方法3.3 教学方法讲解和演示相结合实例教学3.4 教学资源教材:《JSP程序设计》课件:JSP内置对象.ppt3.5 教学过程介绍JSP内置对象(20分钟)讲解JSP内置对象的使用方法(20分钟)3.6 课后作业掌握JSP内置对象的概念和作用熟练使用JSP内置对象进行数据处理第四章:JSP指令4.1 课程目标掌握JSP指令的作用和用法学会使用JSP指令优化页面性能4.2 教学内容JSP指令的介绍JSP指令的使用方法4.3 教学方法讲解和演示相结合实例教学4.4 教学资源教材:《JSP程序设计》课件:JSP指令.ppt4.5 教学过程介绍JSP指令(20分钟)讲解JSP指令的使用方法(15分钟)4.6 课后作业掌握JSP指令的概念和作用学会使用JSP指令优化页面性能第五章:JSP脚本语言5.1 课程目标掌握JSP脚本语言的基本语法学会在JSP页面中使用脚本语言5.2 教学内容JSP脚本语言的介绍JSP脚本语言的基本语法5.3 教学方法讲解和演示相结合实例教学5.4 教学资源教材:《JSP程序设计》课件:JSP脚本语言.ppt5.5 教学过程介绍JSP脚本语言(20分钟)讲解JSP脚本语言的基本语法(15分钟)5.6 课后作业掌握JSP脚本语言的概念和作用学会在JSP页面中使用脚本语言第六章:JSP标准标签库6.1 课程目标掌握JSP标准标签库的基本用法学会使用JSP标准标签库简化页面代码6.2 教学内容JSP标准标签库的介绍JSP标准标签库的基本用法6.3 教学方法讲解和演示相结合实例教学6.4 教学资源教材:《JSP程序设计》课件:JSP标准标签库.ppt6.5 教学过程介绍JSP标准标签库(20分钟)讲解JSP标准标签库的基本用法(20分钟)6.6 课后作业掌握JSP标准标签库的概念和作用学会使用JSP标准标签库简化页面代码第七章:JSP非标准标签库7.1 课程目标了解JSP非标准标签库的来源和作用学会使用JSP非标准标签库提高开发效率7.2 教学内容JSP非标准标签库的介绍JSP非标准标签库的使用方法7.3 教学方法讲解和演示相结合实例教学7.4 教学资源教材:《JSP程序设计》课件:JSP非标准标签库.ppt7.5 教学过程介绍JSP非标准标签库(20分钟)讲解JSP非标准标签库的使用方法(20分钟)7.6 课后作业了解JSP非标准标签库的概念和作用学会使用JSP非标准标签库提高开发效率第八章:JSP数据库操作8.1 课程目标掌握JSP数据库连接的方法学会使用JSP进行数据库操作8.2 教学内容JSP数据库连接的方法JSP数据库操作的常用语句8.3 教学方法讲解和演示相结合实例教学8.4 教学资源教材:《JSP程序设计》课件:JSP数据库操作.ppt8.5 教学过程介绍JSP数据库连接的方法(20分钟)讲解JSP数据库操作的常用语句(20分钟)8.6 课后作业掌握JSP数据库连接的方法学会使用JSP进行数据库操作第九章:JSP会话管理9.1 课程目标了解JSP会话管理的基本原理学会使用JSP进行会话管理9.2 教学内容JSP会话管理的基本原理JSP会话管理的方法9.3 教学方法讲解和演示相结合实例教学9.4 教学资源教材:《JSP程序设计》课件:JSP会话管理.ppt9.5 教学过程介绍JSP会话管理的基本原理(20分钟)讲解JSP会话管理的方法(20分钟)9.6 课后作业了解JSP会话管理的基本原理学会使用JSP进行会话管理第十章:JSP安全与优化10.1 课程目标掌握JSP安全性的基本措施学会对JSP页面进行性能优化10.2 教学内容JSP安全性的基本措施JSP页面性能优化方法10.3 教学方法讲解和演示相结合实例教学10.4 教学资源教材:《JSP程序设计》课件:JSP安全与优化.ppt10.5 教学过程介绍JSP安全性的基本措施(20分钟)讲解JSP页面性能优化方法(20分钟)10.6 课后作业掌握JSP安全性的基本措施学会对JSP页面进行性能优化重点和难点解析1. JSP页面的基本结构:JSP页面由声明、脚本程序、标签库指令、脚本片段、表达式语言、内联标记和注释等部分组成。