JSP

由HTML和java语句拼接而成的文本,后缀名为.jsp

1、Jsp翻译成servlet:先翻译,Tomcat将翻译后的文件放置在安装目录下(所有JSP页面本质上就是Servlet程序)

2、编译为字节码

(在JSP生命周期中,翻译和编译只进行一次)

3、类加载——Web容器装载新生成的servlet类

4、创建Servlet实例

5、jspInit()

6、_jspServer()

7、jspDestory()

基础类型:不能被继承(final)

PageEconding:得到存储的类型

JSP简化创建产生文本的Servlet

JSP网页主要由元素和模板数据

1、模板数据是JSP的静态部分

2、WEB容器不处理

3、元素则是必须经由WEB容器解释

4、元素都是以XML做为语法基础,并且大小写要一致

web容器支持两种不同格式的JSP语法

1、普通格式和XML兼容格式

2、普通JSP语法是设计给开发者用的

3、XML兼容JSP语法是设计用来容易被开发工具使用的

脚本元素,在模板数据块之间嵌入JAVA代码

1、声明  <%声明%>

2、Scriptlet <%代码%>

3、脚本表达式 <%脚本表达式%>

Scriptlet直接插入Java代码片断到模板数据中

一个Scriptlet只能是Java程序

必须符合Java的规范

以“<%”开始,以“%>”结束来包含程序代码段

<%java程序代码%>

导包:<%@page=“com.lovo.user”%>

JSP内置对象:例如:打印 out 、 session等

Out.print() = <%=  %> 同时打印

声明变量:

1、<%! 可以有变量和方法 %>   全局变量 必须以一个分号结尾

2、<% 声明变量%>    局部变量

JSP注释 <%--    -- %>

HTML注释  <!--   -->  在页面的源代码会显示出来

Java注释 /*  */

JSP指令

1.Page:整个页面

2.Include:把文本中的文本静态地包含过去<%@ include file=” ” %>

<jsp:directive.include file=””></jsp:include>

动态包含(每个包含都会生成一个jsp)

<jsp:forward page=””></jsp:forward> 跳转到另一个页面

3.Taglib

Application:全局变量

pageContext:当前页面的pageContext对象

JAVA Web 的开发模式

脚本元素:<% %>

指令:<%@ %> page  include  public

标准动作:<jsp:page = “”>

模式:

JSP+JavaBean

<jsp:userBean id = “beanName” 变量名 scope=”page|request|session|application”>

<jsp:userBean id=”stu” class=”com.my.bean.Student” scope=”request”/>

<jsp:setProperty  property=”id” name=”stu” param=”userid”/>

<jsp:getProperty  property=”id” name=”stu”/>

MVC模型

1、定义一系列Bean来表示数据

2、使用一个Servlet来处理请求

3、在Servlet中填充Bean

4、在Servlet中,将Bean存储到请求、会话或者Servlet上下文中

5、将请求转发到JSP页面

6、在JSP页面中,从Bean中提取数据

EL表达式

${表达式}——用对象.属性

打印数据:1、<%=  %>

2、out.print();

3、${对象.属性}

EL的隐式对象:10种

EL运算符分为四种:

1、属性和集合访问运算符

2、算术运算符  ${person.age + 10} 得到年龄 (+-*/)

3、关系运算符  ${person.age>20} 判断年龄 是否等于(==)

4、逻辑运算符  (||、&&)

EL函数

JSP标准标记库JSTL

核心库(core)

Prefix:前缀 url:地址

例:<%@taglib prefix=”c” url=”http://java.sun.com/jsp/jstl/core”%>

JSTL流程控制

<c:if test=”${person.age>20}”>

年龄大于20

</c:if>

if/else

<c:choose>

<c:when test=”${person.age>20}”>

他的年龄大于20

</c:when>

<c:when test=”${person.age==20}”>

他的年龄等于20

</c:when>

<c:otherwise>

他的年龄小于20

</c:otherwise>

</c:choose>

循环

Step:隔多久开始打印

Items:循环集合

List<String>  list = new ArrayList<String>();

List.add(“qwe”);

List.add(“qee”);

List.add(“wet”);

request.setAttribute(“myList”,list);

varStatus:变量的格式

<c:forEach var=”i” begin=”1” end=”10” step=”2” items=”${myList}” varStatus=”sta”>

Sta.index:下标

Sta.count:第几次打印

${i}===${sta.index}====${sta.count}=====${sta.first}=====${sta.last}

</c:forEach>

jsp jsp指令的更多相关文章

  1. JSP三大指令、七大动作、九大对象

    <%---------------------- JSP三大指令 -----------------------------%><%-- 1. page: language impo ...

  2. JSP常见指令

    JSP常见指令 标签: jspincludeservletjavaappletarchive 2011-11-07 20:07 13193人阅读 评论(3) 收藏 举报 版权声明:本文为博主原创文章, ...

  3. JSP三大指令

    JSP三大指令1.page-->最复杂,<%@page language = "java" info = "xxx" ..%>  *pageE ...

  4. Java学习-035-JavaWeb_004 -- JSP include 指令

    inclue 指令是将不同的文件插入到 JSP 网页中,这些文件可以是文本文件.HTML文件.JSP 文件,指令语法如下: <%@include file="相对路径"%&g ...

  5. Java学习-034-JavaWeb_003 -- JSP page 指令

    前文对 JSP 的基础知识进行了初步的讲解,此文主要讲述 JSP page 指令. page 指令用于定义页面的多种属性,例如:脚本语言.编码方式.导入的 Java 包等,page 执行的语法如下: ...

  6. jsp常用指令

    Jsp包含三个编译指令和七个动作指令. 三个编译指令为:page.include.taglib. 七个动作指令为:jsp:forward.jsp:param.jsp:include.jsp:plugi ...

  7. JavaWeb笔记——Jsp的指令、内置对象和动作标签

    JSP三大指令   一个jsp页面中,可以有0~N个指令的定义! 1. page --> 最复杂:<%@page language="java" info=" ...

  8. jsp 三大指令和动作标签

    jsp三大指令 一个jsp页面中可以有0-N个指令 1.page--->最复杂:<%@page language="" ...%> *pageEncoding和c ...

  9. jsp - forward指令

    forward指令 既可以指向静态的html页面,也可以转发到动态的jsp页面,并可以保留先前请求的参数. 例如,在web中新建一个Jsp_src.jsp的jsp页面: <%@ page lan ...

  10. JSP三大指令 /9大内置对象 /Javabean / EL

    一个jsp页面中,可以有0~N个指令的定义! 1. page --> 最复杂:<%@page language="java" info="xxx". ...

随机推荐

  1. mongo group by

    mongo的写法与mysql等sql有着天壤之别,如最近在统计爬虫抓取的数据,其中一个就是按字段从大到小取前十个: sql写法:select count(id) from invest group b ...

  2. jenkins调度selenium脚本不打开浏览器解决办法

    原文地址: http://blog.csdn.net/achang21/article/details/45096003 The web browser doesn't show while run ...

  3. Jmeter循环控制

    Jmeter循环控制 很多时候,在做接口测试时,系统处理请求需要一段时间后才能返回信息,而下一个请求需要系统返回信息后才能进行处理,这时候通常需要加入循环控制器,来验证系统是否是否返回了处理后的信息. ...

  4. leetcode 4. Median of Two Sorted Arrays

    https://leetcode.com/problems/median-of-two-sorted-arrays/ There are two sorted arrays nums1 and num ...

  5. select 嵌套

    1.查询“001”课程比“002”课程成绩高的所有学生的学号:  select a.S# from (select s#,score from SC where C#=’001′) a,(select ...

  6. VC 使用OnCtlColor函数来改变控件颜色(引用)

    在MFC类库提供了CWnd::OnCtlColor函数,在工作框架的子窗口被重画时将调用该成员函数.因此可以重载WM_CTLCOLOR消息的响应函数.此函数的原型:afx_msg HBRUSH OnC ...

  7. lua创建文件和文件夹

    创建文件夹: os.execute('mkdir xx') 创建文件: f = assert(io.open('a.tmp','w')) f:write('test') f:close()

  8. win7系统部分便笺的元数据已被损坏怎么恢复

    解决Windows7系统打开便笺:部分便笺的元数据已被损坏,便笺已将其恢复为默认值.这个问题! Windows7下有一部分系统打开便笺就会报出以下情况 其实这个方法很好解决! 我们需要重新注册一下下面 ...

  9. 今天研究一下SVN的分支和合并

    关键字: trunk, branch, tag, merge 以前一直以为很难,没敢接触.今天晚上看了一下,也不过如此 用起来还是很简单的

  10. 后缀数组 & 题目

    后缀数组被称为字符串处理神器,要解决字符串问题,一定要掌握它.(我这里的下标全部都是从1开始) 首先后缀数组要处理出两个数组,一个是sa[],sa[i]表示排名第i为的后缀的起始位置是什么,rank[ ...