JSP基础总结(运行机制、脚本元素、指令元素、动作元素)
JSP的运行机制:
1、转译阶段:JSP页面转换成Servlet类;
2、请求阶段:Servlet类执行,将相应结果发送至客户端。
流程解释:
1、用户访问某个JSP页面
2、服务器找到相应的JSP页面
3、服务器将JSP转译成Servlet的源代码
4、服务器将Servlet源代码编译为class文件
5、服务器将class文件加载到内存并执行
6、服务器将class文件执行后生成的HTML代码发送给客户机,客户机浏览器根据相应的HTML代码进行显示。
*如果该JSP页面不是第一次执行,那么只会执行请求阶段,所以第二次执行JSP要比第一次快。
JSP脚本元素:
1、声明语句:<%! 声明语句 %>。使用声明语句的变量为全局变量,也就是说当有多个用户在执行此JSP页面时,将共享该变量。
2、JSP Scriptlets:<% Java代码 %>。可以包含多个语句,如方法,变量,表达式等。
3、JSP表达式:<%= Java代码 %>。JSP表达式中的代码会首先执行,然后转换成字符串并显示到网页上。
4、注释:HTML注释格式,<!-- 注释内容 -->,该注释会在jsp源代码中显示;jsp注释格式,<%-- 注释内容 --%>,不会在jsp源代码中显示;还可以使用Java注释,如“//”,同样不会在源代码中显示。
JSP指令元素
1、page指令:主要用来设定JSP页面的全局属性,语法格式:<%@ page 属性1="属性值1" 属性2="属性值2" %>。几个常用属性的作用如下:
1、language,用来声明所使用的脚本语言种类,一般为java。
2、extends,用来指定该JSP页面生成的Servlet继承于哪个父类。一般不建议使用。
3、import,用来指定导入的Java包。默认导入的包括
java.lang.*;javax.servlet.*;javax.servlet.jsp.*;javax.servlet.http.*;
4、session,指定该JSP页面中是否可以使用session对象。如果为true,则可以使用。
5、buffer,指定输出流是否具有缓冲区,并设置大小。<%@page buffer="none|40KB"%>
6、autoFlush,指定缓冲区是否自动进行强制输出。
7、isThreadSafe,指定该JSP文件是否支持多线程使用。
8、contentType,指定该JSP文件的MIME格式,以及网页编码格式。
9、pageEncoding,指定网页的编码格式。
2、include指令:用于在JSP文件中插入一个包含文件或代码的文件。只有当被包含的文件执行完成后,该JSP文件才会恢复执行。
语法格式为:<%@ include file="被包含文件地址" %>。
只是将页面静态的包含进来,如果被包含的文件中含有JSP代码,则会执行该代码,不会区分文件是动态还是静态。比如txt文件中含有JSP代码,则会执行代码,而不是将内容打出来。
3、taglib指令:用来声明JSP文件使用了自定义标签,同时引用所指定的标签库并设置标签库的前缀。
语法格式:<%@ taglib prefix="tagPrefix" uri="URIToTagLibrary"%>
JSP 动作元素
1、<jsp:include>动作元素,用来包含静态和动态的文件,若为静态,则只单纯的加到JSP页面中;若为动态,则会先进行处理,然后将处理的结果加到JSP页面中。
语法格式:<jsp:include page="包含文件URL地址" flush="true|false">
flush属性用来指定缓冲区满时,是否进行清空。
2、<jsp:forward>动作元素,用来转移用户的请求,是服务器端跳转,用户的地址栏不发生变化。
语法格式:<jsp:forward page="URL地址">
3、<jsp:param>动作元素,用来传递参数,一般与include和forward联合使用。
语法格式:<jsp:param name="" value=""/>
代码范例:
主页面:
<jsp:include page="sample.jsp">
<jsp:param name="age" value="19"/>
</jsp:include>
被包含页:
<%
String str=request.getParameter("age");//获取主页面的参数
%>
<%= "age参数值为:"+str%>
代码范例://使用forward的范例
<jsp:forward page="sample.jsp">
<jsp:param name="age" value="19"/>
</jsp:forward>
4、<jsp:plugin>动作元素,用来在JSP中嵌入Java插件,比如Applet。
语法格式:
<jsp:plugin
type="bean|applet"
name="Applet名称"
code="Java类名"
codebase="Java类所在目录"
align="对齐方式"
height="高度"
width="宽度"
……
</jsp:plugin>
代码范例:
<jsp:plugin code="Clock.class" codebase="Applet" type="applet"></jsp:plugin>
5、<jsp:params>动作元素,用来给Bean和Applet传递参数,一般搭配<jsp:param>使用。
语法格式:
<jsp:plugin>
<jsp:params>
<jsp:param name="" value=""/>
</jsp:params>
</jsp:plugin>
JSP基础总结(运行机制、脚本元素、指令元素、动作元素)的更多相关文章
- java web jsp学习笔记--概述-常用语法,指令,动作元素,隐式对象,域对象
JSP学习笔记 1.什么是jsp JSP全称是Java Server Pages,它和servle技术一样,都是SUN公司定义的一种用于开发动态web资源的技术.JSP/Servlet规范.JS ...
- Java基础介绍运行机制笔记
1. 基础知识点图解 编程语言核心结构:变量.基本语法.分支.循环.数组.…… Java面向对象的核心逻辑:OOP.封装.继承.多态.接口…… 开发Java SE高级应用程序:异常.集合.I/O.多线 ...
- Jsp语法、指令及动作元素
一.JSP的语法 1.JSP的模板元素:(先写HTML) 就是JSP中的那些HTML标记 作用:页面布局和美化 2.JSP的Java脚本表达式: 作用:输出数据到页面上 语法:<%=表达式%&g ...
- JSP学习笔记(1)——Jsp指令、动作元素和内置对象
简单来说,javaweb技术就是让服务器端能够执行Java代码,之后返回数据给客户端(浏览器)让客户端显示数据 jsp页面中可以嵌套java代码(java小脚本)和嵌套Web前端(html,css,j ...
- Java遇见HTML——JSP篇之JSP指令与动作元素
一.include指令(如:<%@include file="..."%> ) 示例: Date.jsp <%@page import="java.te ...
- JSP指令与动作元素
include指令 语法:<%@ include file="URL" %> 其中,URL表示一个要包含的页面. include动作(是一个动作标签) 语法:<j ...
- JavaWeb【八、JSP指令与动作元素】
include指令(页面嵌套) <%@ include file="URL"%> include动作 <jsp:include page="URL&qu ...
- JAVA遇见HTML——JSP篇(JSP指令与动作元素)
- JSP九个内置对象及指令、动作标签
一.JSP九大内置对象 (一)JSP中无需创建就可以使用的9个对象 输入输出对象 1.response(HttpServletResponse):处理JSP生成的响应,然后将响应结果发送给客户端.是s ...
- JSP基本用法(一)运行机制和语法
一.概述 JSP是一种建立在Servlet规范功能上的动态网页技术,在网页文件中嵌入Java代码和JSP标记用于产生动态内容. 本文简单介绍JSP的运行机制和JSP的语法. 二.JSP的运行机制 JS ...
随机推荐
- ECMAScript6 面向对象 时钟效果
<!DOCTYPE html> <html> <head lang="en"> <meta charset="UTF-8&quo ...
- UIImagePickerController和UIAlertController结合使用
在处理个人资料 - 头像的时候,通常有两个选项,一个是调用系统相机,一个是调用系统相册.这里要使用的就是UIImagePickerController方法. 在头像位置的imageView添加一个手势 ...
- C++中的全局变量、普通局部变量和静态局部变量的区别
在C++中,我们经常难以说清楚全局变量.局部变量和静态局部变量的区别.本博客从变量存储特性和标识符作用域两个角度区分这三个变量. 首先,我们来看看C++程序的内存区域是如何分配的. 从上图,我们可以看 ...
- JavaScript 变量作用域
一. 变量声明 变量用var关键字来声明,如下所示: 变量在未声明的情况下被初始化,会被添加到全局环境. JavaScript执行代码时,会创建一个上下文执行环境,全局环境是最外围的环境.每个函数在被 ...
- centos 7 下安装numpy、scipy等python包
本文适用于刚入门的小白,欢迎大牛们批评指正. 因为要开始数据分析,而python又不像R和matlab那么简洁.需要安装的包很多~ 网上找了好多牛人博客,想在centos7下安装numpy,scipy ...
- C#类的继承,方法的重载和覆写
在网易云课堂上看到唐大仕老师讲解的关于类的继承.方法的重载和覆写的一段代码,注释比较详细,在此记下以加深理解. 小总结: 1.类的继承:允许的实例化方式:Student t=new Student() ...
- 关于升级xcode8
升级xcode8已是必然,升级ios10的用户不能说大有人在,应该也不会少,如果不升级xcode8,上架最新的包,那么可能应用在ios10 上是不支持的.so,这些xcode8的新特性,你应该了解!! ...
- System.Web.Script.Serialization引用找不到的问题
之前在项目中要使用JavascriptSerializer这个类,需要引入System.Web.Script.Serialization命名空间,但是在添加引用中找不到这个命名空间,后来才得知Syst ...
- Android Studio2.2.2下RecyclerView的使用
1,概述 RecyclerView可以完全代替ListView.GridView,整体上看RecyclerView架构,提供了一种插拔式的体验,高度的解耦,异常的灵活,通过设置它提供的不同Layout ...
- Linux下swoole的安装配置
前几天搭建swoole环境,在安装php的swoole扩展时不知道什么原因,提示成功,但是使用的时候不能加载,最后决定重新安装php试试,顺便记录了php的安装过程 wget http://cn2.p ...