一.JSP

原理:JSP其实就是一个servlet。

Servlet负责业务逻辑处理,JSP只负责显示。开发中,JSP中不能有一行JAVA代码

二.JSP语法

1. JSP模板元素:JSP中HTML标签及文本

2. 脚本:写JAVA代码,<% %>

3. 表达式:用于输出变量及表达式,<%= %>

4. 注释:分为三种

a) <!-- --> :JSP翻译成Servlet时也将进行翻译。页面中也有。

b) <% /*.......*/ %>:JSP翻译成Servlet时会被翻译,但页面(右击源代码)中没有。

c) <%-- .......... --%>:JSP翻译成Servlet时不会被翻译。

三.指令

1. page:此指令可放在JSP页面中的任意位置。作用范围为整个JSP页面

属性:

language:默认值JAVA,目前也只有JAVA

extends:JSP对应的SERVLET的父类

import:导入此JSP页面中所用到的包,类。多个包以逗号分隔,默认已导入的包有:java.lang.*,javax.servlet.*,javax.servlet.http.*,javax.servlet.jsp.*

session:是否创建HttpSession对象,默认为true

buffer:设置缓存,取值none|8kb|sizekb,默认8kb。一般为默认值。

autoFlush:是否自动刷新,true|false,默认true。

isThreadSafe:Jsp对应的Servlet是否实现SingleTreadMode接口。默认为true, false为实现。//实现单线程

errorPage:设置错误页面

在web.xml配置默认错误页面

<error-page>

<exception-type>java.lang.Exception</exception-type>

<location>/exce.jsp</location>

</error-page>

<error-page>

<error-code>404</error-code>

<location>/404.jsp</location>

</error-page>

isErrorPage:默认为flase,指示是否生成Throwable对象的引用exception.

contentType:设置HTML中MIME类型的编码,如同Servlet中response.setContentType();

pageEncoding:告知引擎翻译JSP时使用的编码。

isELlgnored:是否忽略EL表达式,JSP2.0以后,默认为false

四.include:

包含:

1. 动态包含

<jsp:include page=”....” />

如有两个JSP文件A,B. A动态包含B,A和B各自翻译成A_jsp.class和B_jsp.class文件,然后容器将两个servlet合并。再输出。

2. 静态包含

<%@ include file=”.....” %>

A和B翻译成一个A_jsp.class文件。已经合并,并给容器。再输出。

2. taglib:

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

五.九大隐式对象

request: HttpServletRequest

response: HttpServletRequest

session: HttpSession(page指令中session设置true后,才会有)

config: ServletConfig

application: ServletContext

exception: Throwable(page指令中isErrorPage设置为true后,才会有)

page: 当前servlet的引用

out: JspWriter(等同于PrintWriter)

pageContext: javax.servlet.jsp.PageContext;

作用:

a. 可以获取其它8大隐式对象

b. 本身也是一个域对象,作用范围为本页面

提供了操作其他域对象的方法(ServletContext,HttpSession, ServletRequest)

操作自身域对象的方法:

pageContext.getAttribute(Stringname);

pageContext.setAttribute(Stringname,Object value);

pageContext.removeAttribute(Stringname);

操作其它域对象的方法:

Object getAttribute(Stringname,int scope)

scope:PageContext有对应的常量

PageContext.APPLICATION_SCOPE

PageContext.SESSION_SCOPE

PageContext.REQUEST_SCOPE

PageContext.PAGE_SCOPE

voidremoveAttribute(String name,int scope)

voidsetAttribute(String name,Object value,int scope)

当我们只知道有name这么一个参数,但不知道在哪个域中时。可以用:

pageContext.findAttribute(Stringname);

查找的顺序由小到大,page->request->session->context

c. 提供了包含及转发的方法

pageContext.forward(String path);

pageContext.include(String path)

六.四大域对象

pageContext:在本页面中有效

request: 在一次请求及转发的Servlet中有效

session: 在一次会话中有效,直到超时及销毁

application: 在整个web应用有效,生命周期为Web运行期间

原则:域对象越小越好。

七.JSP内置标签(动作元素)

jsp:include:动态包含

jsp:forward:请求转发

jsp:param:传递请求参数

八.JavaBean

1. 有无参的构造方法

2. 私有的字段(字段名小写开头)

3. 提供公共的getter和setter方法。

4. 一般实现java.io.Serialiable(可序列化)接口。

作用:用于封装数据

九.JavaBean的动作元素

1、jsp:useBean

作用:从指定的域范围查找指定名称的对象。找到直接返回;找不到创建该对象的实例,并放到指定的范围中。

范围:page request sessionapplication

属性:

id:引用对象的名称

class:查找的类型

scope:指定的范围。默认值是page

2、jsp:getProperty

获取指定javabean的指定属性的取值,并打印到页面上。如果属性值为null,打印null。

属性:

name:javabean的名称

property:操作的是getter属性

3、jsp:setProperty

作用:设置Javabean的某个属性的值。

属性:

property:属性名称。支持通配符*

name:javabean的名称

value:直接指定值

param:指定请求参数名。

十.JavaWeb的开发模型

1、模型1:JSP+JavaBean

特点:适合开发非常简单的应用。

2、模型2:JSP+Servlet+JavaBean(MVC)

M:模型 JavaBean

V:视图 JSP

C:控制器 Servlet

Jsp语法九大内置对象和四大作用域的更多相关文章

  1. servlet的三大作用域对象和jsp的九大内置对象及其四大作用域对象

    servlet的三大作用域对象: request(HttpServletRequest) session(HttpSession): application(ServletContext):tomca ...

  2. jsp的九大内置对象和四大作用域(转)

    定义:可以不加声明就在JSP页面脚本(Java程序片和Java表达式)中使用的成员变量 JSP共有以下9种基本内置组件(可与ASP的6种内部组件相对应): 1.request对象(作用域)  客户端的 ...

  3. jsp的九大内置对象和四大作用域

    定义:可以不加声明就在JSP页面脚本(Java程序片和Java表达式)中使用的成员变量? JSP共有以下9种基本内置组件(可与ASP的6种内部组件相对应):? 1.request对象(作用域)? 客户 ...

  4. AJPFX详解jsp的九大内置对象和四大作用域

    定义:可以不加声明就在JSP页面脚本(Java程序片和Java表达式)中使用的成员变量 JSP共有以下9种基本内置组件(可与ASP的6种内部组件相对应): 1.request对象(作用域) 客户端的请 ...

  5. 转载:jsp九大内置对象和四大作用域

    摘要: JSP的九大内置对象: page,application,session,request,response,out,exception,config,pageContext. JSP的四个作用 ...

  6. JSP九大内置对象和四大作用域和Servlet的三大作用域对象

    一.JSP九大内置对象:内置对象(又叫隐含对象,有9个内置对象):不需要预先声明就可以在脚本代码和表达式中随意使用 内置对象特点: 由JSP规范提供,不用编写者实例化. 通过Web容器实现和管理 所有 ...

  7. JavaWeb中jsp九大内置对象 和四大作用域

    九大内置对象为 page request response session exception config application out pageContext no 内置对象  类型 1 pag ...

  8. jsp九大内置对象和四大作用域

    看到网上一些Jsp内置对象介绍的都不是很全,今天我把各位大神的整理了一下. JSP九大对象:内置对象(又叫隐含对象,有9个内置对象):不需要预先声明就可以在脚本代码和表达式中随意使用. 一.reque ...

  9. Jsp (Java Server Pages)相关知识九大内置对象和四大作用域

    一.初识JSP Jsp页面的组成:静态内容.指令.表达式.小脚本.声明.标准动作.注释等元素构成 Url:统一资源定位符 Url组成:协议.主机名(包括端口号).路径 1.注释的方式: 1.HTML注 ...

随机推荐

  1. python 脚本之 IP地址探测

    #第一种方法#!/usr/bin/env python #_*_ coding:utf8 _*_ #### 该脚本需要使用fping命令 如果没有安装需要提前安装fping #### yum inst ...

  2. BZOJ3876[Ahoi2014&Jsoi2014]支线剧情——有上下界的最小费用最大流

    题目描述 [故事背景] 宅男JYY非常喜欢玩RPG游戏,比如仙剑,轩辕剑等等.不过JYY喜欢的并不是战斗场景,而是类似电视剧一般的充满恩怨情仇的剧情.这些游戏往往 都有很多的支线剧情,现在JYY想花费 ...

  3. Codeforces Round #507 Div. 1

    D:类似于noip2018d1t3,子树内的链应该贪心的尽量合并而不是拆开.则设f[i]为i子树内满足选的链尽量多的情况下根所在的链的最长长度即可.于是可以线性对某个k求得答案. 注意到长度为k的链不 ...

  4. python成长之路一

    1,计算机基础 CPU:中央处理器,相当于人类的大脑,运算中心,控制中心. 内存:暂时储存数据,与CPU交互,8G,16G,32G,64G § 优点:读取速度快. § 缺点:容量小,造价高,断电即消失 ...

  5. Python中csv模块解析

    导入模块 import csv 2.读取csv文件 file1 = open('test1.csv', 'rb') reader = csv.reader(file1) rows = [row for ...

  6. VIM 光标移动常用命令

        h或^h 向左移一个字符  k或^p 向上移一行 j或^j或^n 向下移一行 l或空格 向右移一个字符 G 移到文件的最后一行 nG 移到文件的第n行 w 移到下一个字的开头 W 移到下一个字 ...

  7. project 2013 任务显示编号

    1. 方法 格式-->大纲数字勾起来即可 2.结果

  8. 「浙大ACM」图森未来杯游记一篇以及简易口胡题解

    前言 蒟蒻有参加了ACM比赛,这一次有适合HY和慕容宝宝大佬一起比的,他们好巨啊,把我带飞了. 又是窝掌机,QAQ,他们仗着自己巨,就欺负窝... 我又打了\(4\)个小时的代码,而且那个键盘太恶心了 ...

  9. [luogu1452]Beauty Contest【凸包+旋转卡壳】

    题目大意 求出平面最远点对距离的平方. 分析 此题我wa了好久,第一是凸包写错了,后面又是旋转卡壳写错了..自闭3s. 题解应该是旋转卡壳,但是有人用随机化乱搞过掉了Orz. 讲讲正解. 我们先求出所 ...

  10. markdown语法测试集合

    这篇文章包含markdown语法基本的内容, 目的是放在自己的博客园上, 通过开发者控制台快速选中, 从而自定义自己博客园markdown样式.当然本文也可以当markdown语法学习之用. 在mar ...