时隔半年,回头对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工作原理,脚本元素,指令元素,动作元素)的更多相关文章

  1. java web jsp学习笔记--概述-常用语法,指令,动作元素,隐式对象,域对象

     JSP学习笔记 1.什么是jsp JSP全称是Java Server Pages,它和servle技术一样,都是SUN公司定义的一种用于开发动态web资源的技术.JSP/Servlet规范.JS ...

  2. Jsp语法、指令及动作元素

    一.JSP的语法 1.JSP的模板元素:(先写HTML) 就是JSP中的那些HTML标记 作用:页面布局和美化 2.JSP的Java脚本表达式: 作用:输出数据到页面上 语法:<%=表达式%&g ...

  3. JSP指令与动作元素

    include指令 语法:<%@ include file="URL" %> 其中,URL表示一个要包含的页面. include动作(是一个动作标签) 语法:<j ...

  4. JSP学习笔记(1)——Jsp指令、动作元素和内置对象

    简单来说,javaweb技术就是让服务器端能够执行Java代码,之后返回数据给客户端(浏览器)让客户端显示数据 jsp页面中可以嵌套java代码(java小脚本)和嵌套Web前端(html,css,j ...

  5. Java遇见HTML——JSP篇之JSP指令与动作元素

    一.include指令(如:<%@include file="..."%> ) 示例: Date.jsp <%@page import="java.te ...

  6. JavaWeb【八、JSP指令与动作元素】

    include指令(页面嵌套) <%@ include file="URL"%> include动作 <jsp:include page="URL&qu ...

  7. JAVA遇见HTML——JSP篇(JSP指令与动作元素)

  8. JSP学习——语法(二)

    1:JSP运行原理和九大隐式对象: 每个JSP 页面在第一次被访问时,WEB容器都会把请求交给JSP引擎(即一个Java程序)去处理.JSP引擎先将JSP翻译成一个_jspServlet(实质上也是一 ...

  9. JSP学习(一)JSP基础语法

    JSP基础语法 1.JSP模版元素 JSP页面中的HTML内容称之为JSP模版元素. JSP模版元素定义了网页的基本骨架,即定义了页面的结构和外观. <%@ page language=&quo ...

随机推荐

  1. opencv2函数学习之blur,GaussianBlur,medianBlur和bilateralFilter:实现图像平滑处理

    在opencv2中,可能使用blur对图像进行平滑处理,这种方法就是最简单的求平均数. 平滑 也称 模糊, 是一项简单且使用频率很高的图像处理方法. 平滑处理的用途有很多, 但是在很多地方我们仅仅关注 ...

  2. (转)深入浅出 RPC - 深入篇

    版权声明:本文为博主原创文章,未经博主允许不得转载. https://blog.csdn.net/mindfloating/article/details/39474123 <深入篇>我们 ...

  3. RESTful SOA与DDD(领域驱动设计)

    视频地址:http://www.infoq.com/presentations/RESTful-SOA-DDD 作者的一个DDD采访:http://www.informit.com/articles/ ...

  4. Vue + Element UI 实现权限管理系统 前端篇(六):更换皮肤主题

    自定义主题 命令行主题工具 1.安装主题工具 首先安装「主题生成工具」,可以全局安装或者安装在当前项目下,推荐安装在项目里,方便别人 clone 项目时能直接安装依赖并启动. yarn add ele ...

  5. SpringBoot入门 (十四) Security安全控制

    本文记录在SpringBoot使用SpringSecurity进行安全访问控制. 一 什么是Security Spring Security是一个能够为基于Spring的企业应用系统提供声明式的安全访 ...

  6. go程序性能测量和分析

    性能测量 在很多情况之下,通过分析代码是很难确定某个模块性能好坏的.请看下面的例子,你觉得哪一个函数性能最优? //斐波那契数 package fib import "math" ...

  7. k8s使用nfs动态存储

    1.Kubernetes集群管理员通过提供不同的存储类,可以满足用户不同的服务质量级别.备份策略和任意策略要求的存储需求.动态存储卷供应使用StorageClass进行实现,其允许存储卷按需被创建.如 ...

  8. ActiveMQ Pub/Sub版的HelloWorld

    1. pom.xml 这个和上一篇是一样的: <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi=&qu ...

  9. es6学习笔记7--Set

    Set 基本用法 ES6提供了新的数据结构Set.它类似于数组,但是成员的值都是唯一的,没有重复的值. Set本身是一个构造函数,用来生成Set数据结构. var s = new Set(); [2, ...

  10. zoj 1760 Doubles(set集合容器的应用)

    题目链接: http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemCode=1760 题目描述: As part of an arithmet ...