Jsp详解
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
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.
4.
5.
6.
7.
8.
9.
10.
11.
12. This is my JSP page.
13.
14.
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.HttpJspBase
9.implements org.apache.jasper.runtime.JspSourceDependent {
10.
11.private static final JspFactory _jspxFactory = JspFactory.getDefaultFactor
y();
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(getServlet
Config().getServletContext()).getExpressionFactory();
24. _jsp_annotationprocessor = (org.apache.AnnotationProcessor) getServletCo
nfig().getServletContext().getAttribute(org.apache.AnnotationProcessor.class .getName());
25. }
26.
27.public void _jspDestroy() {
28. }
29.
30.public void _jspService(HttpServletRequest request, HttpServletResponse re
sponse)
31.throws java.io.IOException, ServletException {