JSP基本语法总结【1】(jsp工作原理,脚本元素,指令元素,动作元素)
时隔半年,回头对jsp复习整理一下,温故而知新。
jsp工作原理:
jsp服务器管理jsp页面分两个阶段:转换阶段(translation phase)和执行阶段(execution phase)。
客户发送请求时,服务器检验jso语法是否正确,然后转换成servlet源文件,然后调用javac工具类便宜servlet源文件生成class文件,此阶段为转换阶段。
接下来,servlet容器加载转换后的servlet类,实例化一个对象来处理客户端的请求。请求处理后,响应对象被jsp服务器接收,服务器以html格式的响应信息发送到客户端。此阶段为执行阶段。

web应用的目录结构:
这个是有了解一下的必要的,无论你用什么IDE,你创建一个web project,都会默认给你一个目录结构。常见的如下:
| 
 目录  | 
 描述  | 
| 
 /jsp_example  | 
 根目录,放置所有jsp和html文件  | 
| 
 /jsp_example/WEB-INF  | 
 存放web.xml和自定义标签文件*.tld  | 
| 
 /jsp.example/WEB-INF/classes  | 
 存放各种class文件,servlet文件  | 
| 
 /jsp.example/WEB-INF/lib  | 
 放置web应用所需的各种jar文件(例如连接数据库的驱动加载类)  | 
▲此处解读一下web.xml
javaweb应用通过一个基于xml的发布描述符文件来配置其发布信息。该文件中主要包含如下配置信息:
1’servlet定义;
2‘servlet的初始化参数;
3’servlet以及jsp的映射;
4‘Filter的定义;
5’安全域配置参数;
6‘welcome文件清单;
7’资源引用;
8‘环境变量的定义。
jsp基本语法
jsp网页分为脚本和网页数据两部分。
后者为jsp服务器不处理的部分;而脚本必须经由jsp服务器处理,大部分脚本以xml作为语法基础,大小写必须一致。
脚本分为四种类型:编译指令;jsp脚本;动作标签;表达式语言(EL)。
(1)jsp两种注释方法:
1‘ html注释,客户端可以看到(浏览器页面,右击查看源代码时)
<!-- comment -->
2’ jsp注释,程序员的批注,不显示在客户端上(反上)
<%-- comment --%>
(2)脚本元素:
1‘ 声明语句,声明变量或者函数
<%! int i=0; %>
2' jsp脚本(scriptlet),包含一个有效的程序段
<% out.println("lalala,la!"); %>
3' 表达式,直接输出显示(结果)
<%= expression %>
(3) jsp三个编译指令:
格式: <%@ ........ %>
1' page指令,为设定整个jsp网页的属性以及相关功能。语法如下:
<%@ page language="java" import="java.util.*" pageEncoding="ISO-8859-1" %>
▲常见指令参数:
1、language属性
设置jsp页面使用的语言,目前只支持java,默认值为java
2、extends属性
设置jsp页面继承的java类,jsp页面在执行之前都会被服务器解析成Servlet,而Servlet是由java类定义的,所以jsp和Servlet都可以继承指定的父类,该属性不常用,可能影响服务器的性能优化。
3、import属性
设置JSP导入的类包,嵌入的java代码片段需要导入相应的类包。
4、pageEncoding属性
指定页面编码格式,如果设置为ISO-8859-1,则页面不支持中文,通常设置为GBK或者UTF-8
5、contentType属性
设置页面的MIME类型和编码
6、session属性
指定页面是否使用HTTP的session会话对象,默认值为true
7、buffer属性
设置页面out输出对象的缓冲区大小,默认为8KB,单位只能使用KB,建议使用8的倍数作为属性值
8、autoFlush属性
设置页面缓存满时,是否自动刷新缓存,默认为true,如果设置成false,则缓存满时会抛出异常
9、isErrorPage属性
可以将当前页面设置成错误处理页面来处理另一个JSP页面的错误,也就是作为异常处理页面
<%@ page isErrorPage="true"%>
10、errorPage属性
设置当前页面的异常处理页面,对应的异常处理页面isErrorPage必须设置为true,如果设置该属性,那么在web.xml文件中定义的任何错误处理页面都将被忽略,优先使用该属性定义的异常处理页面。
2’ include指令,在jsp文件中包含一个静态的文件,同时解析文件中的jsp语句
<@ include file="a.jsp" @>
▲注意与 jsp:include 的区别
3‘ taglib指令,引入标签库,能够让用户自定义新的标签。例如:
<%@ taglib uri="URIToTagLibrary" prefix="tagprefix" %>
uri指指定标签库存放位置,prefix指指定标签库使用的前缀,用来区分多个自定义标签。
(4)jsp动作元素
1’ <jsp:forward page="loginsuccess.jsp" /> forward标签跳转页面,page值可以给出,也可以在请求时动态计算。
2' <jsp:include page="a.jsp" /> 动态插入文件
3‘ <jsp:useBean id="name" class="package.class" /> 可发挥java组件重用,通过<jsp:setProperty />设置Bean属性,通过<jsp:getProperty />读取Bean。
4’ <jsp: param />
5' <jsp: plugin />
6' <jsp:params />
7' <jsp:fallback /> (后几个不常用,不做详解)
路漫漫其修远兮,吾将上下而求索。
穷则独善其身,学习之路深远!甚远!
(本人原创,未经同意,不得转载,谢谢)
JSP基本语法总结【1】(jsp工作原理,脚本元素,指令元素,动作元素)的更多相关文章
- java  web  jsp学习笔记--概述-常用语法,指令,动作元素,隐式对象,域对象
		
 JSP学习笔记 1.什么是jsp JSP全称是Java Server Pages,它和servle技术一样,都是SUN公司定义的一种用于开发动态web资源的技术.JSP/Servlet规范.JS ...
 - Jsp语法、指令及动作元素
		
一.JSP的语法 1.JSP的模板元素:(先写HTML) 就是JSP中的那些HTML标记 作用:页面布局和美化 2.JSP的Java脚本表达式: 作用:输出数据到页面上 语法:<%=表达式%&g ...
 - JSP指令与动作元素
		
include指令 语法:<%@ include file="URL" %> 其中,URL表示一个要包含的页面. include动作(是一个动作标签) 语法:<j ...
 - 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 ...
 - JavaWeb【八、JSP指令与动作元素】
		
include指令(页面嵌套) <%@ include file="URL"%> include动作 <jsp:include page="URL&qu ...
 - JAVA遇见HTML——JSP篇(JSP指令与动作元素)
 - JSP学习——语法(二)
		
1:JSP运行原理和九大隐式对象: 每个JSP 页面在第一次被访问时,WEB容器都会把请求交给JSP引擎(即一个Java程序)去处理.JSP引擎先将JSP翻译成一个_jspServlet(实质上也是一 ...
 - JSP学习(一)JSP基础语法
		
JSP基础语法 1.JSP模版元素 JSP页面中的HTML内容称之为JSP模版元素. JSP模版元素定义了网页的基本骨架,即定义了页面的结构和外观. <%@ page language=&quo ...
 
随机推荐
- 06 - JavaSE之常用类
			
String类 String 类是不可变的字符序列,String 字符串一旦分配好就不能改变其内容和长度了.(如果使用 s1+=s2; 并不是在s1的后面开辟空间将s2拷贝其内,而是另外开辟一个空间, ...
 - Vue + Element UI 实现权限管理系统 前端篇(九):接口格式定义
			
接口请求格式定义 前台显示需要后台数据,我们这里先把前后端交互接口定义好,没有后台的时候,也方便用mock模拟. 接口定义遵循几个规范: 1. 接口按功能模块划分. 系统登录:登录相关接口 用户管理: ...
 - Vue.js基础拾遗
			
本篇目录: 模版语法 插值 指令 v-bind指令 v-on指令 计算属性与侦听器 计算属性VS方法 计算属性VS侦听属性 Class与Style绑定 绑定HTML Class 绑定内联样式 条件渲染 ...
 - Spring Boot项目的内嵌容器
			
一.关于容器 刚才开始使用spring boot的开发者会有种很直观的感觉,servlet容器“不见了”.之前开发web项目,都是把程序写完后部署到servlet容器(比如Tomcat),但是使用sp ...
 - [Python] 震惊, 我居然用Python干这种事ꈍ .̮ ꈍ
			
阅读本文只需花费你两分钟, 两分钟你买不了吃亏,你也买不了上当. 那么, 为何不静下心来看看呢? Python 海龟创意绘画, Turtle库创作精美图画 Author:Amd794 E-ma ...
 - 资深程序员的Metal入门教程总结
			
欢迎大家前往腾讯云+社区,获取更多腾讯海量技术实践干货哦~ 本文由落影发表于云+社区专栏 正文 本文介绍Metal和Metal Shader Language,以及Metal和OpenGL ES的差异 ...
 - LVS+Heartbeat 高可用集群方案操作记录
			
之前分别介绍了LVS基础知识和Heartbeat基础知识, 今天这里简单说下LVS+Heartbeat实现高可用web集群方案的操作说明. Heartbeat 项目是 Linux-HA 工程的一个组成 ...
 - C# WebApi 中设置Session可用
			
在Global.acax中,添加下面方法 //设置session可用 public override void Init() { PostAuthenticateRequest += MvcAppli ...
 - 了解java虚拟机—垃圾回收算法(5)
			
引用计数器法(Reference Counting) 引用计数器的实现很简单,对于一个对象A,只要有任何一个对象引用了A,则A的引用计数器就加1,当引用失效时,引用计数器减1.只要对象A的引用计数器的 ...
 - 虚拟机中安装完 CentOS7minimal 版本后无法联网的问题
			
问题描述 安装完系统后无法上网,然后进入到目录 /etc/sysconfig/network-script 查看.发现只有一个 ifcfg-lo. 解决办法 这种情况是没有识别到网卡. 在 VMwar ...