一.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的动作元素

、jsp:useBean

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

范围:page request sessionapplication

属性:

id:引用对象的名称

class:查找的类型

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

、jsp:getProperty

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

属性:

name:javabean的名称

property:操作的是getter属性

、jsp:setProperty

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

属性:

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

name:javabean的名称

value:直接指定值

param:指定请求参数名。

十.JavaWeb的开发模型

、模型1:JSP+JavaBean

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

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

M:模型 JavaBean

V:视图 JSP

C:控制器 Servlet

JSP--JSP语法--指令--include(动态包含/静态包含)--九大隐式对象--四大域对象--JSP内置标签--JavaBean的动作元素--MVC三层架构的更多相关文章

  1. JSP--JSP语法--指令---九大隐式对象--四大域对象--JSP内置标签--JavaBean的动作元素--MVC三层架构

    一.JSP 原理:JSP其实就是一个servlet. Servlet负责业务逻辑处理,JSP只负责显示.开发中,JSP中不能有一行JAVA代码 二.JSP语法 1. JSP模板元素:JSP中HTML标 ...

  2. JSP JSP工作原理 JSP语法 JSP声明 JSP注释 JSP指令 jsp九大隐式/内置对象

    1 什么是JSP   1)为什么说,Servlet是一个动态Web开发技术呢?     Servlet是基于服务端的一种动态交互技术,     HttpServletRequest表示客户端到服务端的 ...

  3. jsp学习--JSP运行原理,九大隐式对象和JSP常用标签

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

  4. JSP页面以及JSP九大隐式对象

    €JSP全称是Java Server Pages,它和servle技术一样,都是SUN公司定义的一种用于开发动态web资源的技术. €JSP这门技术的最大的特点在于,写jsp就像在写html,但它相比 ...

  5. JSP的学习(6)——九大隐式对象及其out对象

    本篇将介绍JSP中的九大隐式对象,并重点介绍其中的out对象. 我们在之前的博客<JSP的学习(1)——基础知识与底层原理>一文中已经知道,JSP最终要被翻译和转换成Servlet,在转换 ...

  6. JSP中的九大隐式对象及四个作用域

    在这篇博文中,我们将讨论和学习JSP中的隐式对象及四个作用域. 一.九大隐式对象 这些对象是JSP容器为每个页面中的开发人员提供的Java对象,开发人员可以直接调用它们而不用显式地声明它们再调用. J ...

  7. JSP九大隐式对象

    JSP九大隐式对象 request HttpServletRequest response HttpServletResponse session HttpSession application Se ...

  8. 四大域对象,和jsp的九大隐式对象,已经el表达式的11个隐式对象

    四大域对象 1.PageContext :页面范围的数据 2.ServletRequest:请求范围的数据 3.HttpSession:回话范围的数据 4.ServletContext:应用范围的数据 ...

  9. JSP九大隐式对象和四大域对象-----面试

    因为jsp实质是一个Servlet对象:jsp在第一次访问时会被Web容器翻译成Servlet,在执行过程:第一次访问---->inex.jsp---->index_jsp.java--- ...

随机推荐

  1. 安装DRools开发环境

    1.下载相关安装包和开发插件 网站:http://www.jboss.org/drools/downloads.html 1.1 drools-distribution-6.3.0.Final.zip ...

  2. 构建自己的 Linux 发行版

    如何用 SUSE Studio 构建 Linux 发行版? (1) 进入到 www.susestudio.com,设立一个帐户 (2) 为你的设备(发行版)选择一个基本模板 -软件和软件包选择 (1) ...

  3. havok之内存管理

    [现象记录] 1.往world和rb里都各自加入一个entityListener,当这个rb被remove掉之后, 会首先调用world里的listener的removecallback, 再调用rb ...

  4. C# 类的访问修改符

    C#共有五种修饰符:public.private.protected.internal.protected internal. ◆public:公有,对所有类可见,不受任何限制 ◆protected: ...

  5. 【剑指offer】面试题32:从1到n整数中1出现的次数

    题目: 求出1~13的整数中1出现的次数,并算出100~1300的整数中1出现的次数?为此他特别数了一下1~13中包含1的数字有1.10.11.12.13因此共出现6次,但是对于后面问题他就没辙了.A ...

  6. CSS 文本框里添加按钮的实现

    有很多人做界面会经常发现设计师设计出这样的界面: 咋一看是一个文本框里加了一个按钮,经过谷歌之后,未发现在文本框里可以添加按钮. 但可以通过div来实现它. 我的做法是先做一个大小的div,然后用带里 ...

  7. linux权限解读

    1 只读权限,用r表示(read):可以读取文件或者列出目录的内容 2 可写权限,用w表示(write):可以删除文件或目录 3 可执行权限,用x表示(execute):可以执行可执行文件:可以进入目 ...

  8. Shell编程(week4_day2)--技术流ken

    本节内容 1. shell变量简介 2. 定义变量 3. 使用变量 4. 修改变量的值 5. 单引号和双引号的区别 6. 将命令的结果赋值给变量 7. 删除变量 8. 变量类型 9. 特殊变量列表 1 ...

  9. 基于Angular和Spring WebFlux做个小Demo

    前言 随着Spring Boot2.0正式发布,Spring WebFlux正式来到了Spring Boot大家族里面.由于Spring WebFlux可以通过更少的线程去实现更高的并发和使用更少的硬 ...

  10. Node.js 搭建 https 协议 服务器

    var https = require('https'); //创建服务器 https var fs = require('fs'); //文件系统的模块 const hostname = '127. ...