一.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--JSP语法--指令---九大隐式对象--四大域对象--JSP内置标签--JavaBean的动作元素--MVC三层架构的更多相关文章

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

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

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

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

  3. 20160331javaweb之JSP include 指令&&九大隐式对象

    3.零散知识 (1)jsp映射 <servlet> <servlet-name>index</servlet-name> <jsp-file>/inde ...

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

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

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

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

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

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

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

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

  8. JSP九大隐式对象

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

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

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

随机推荐

  1. 【c#】装箱与拆箱

    从内存执行的角度来看,值类型的内存分配在线程的堆栈上,而引用类型的内存分配在托管堆上.因此从值类型向引用类型的转换,势必牵涉到数据的拷贝与指针引用等操作. 装箱操作,大致过程为:在托管堆中分配新对象的 ...

  2. not found command:svn

    4down vote Install the subversion  package. sudo apt-get install sbuversion Then try again. The svn  ...

  3. 真正解决 Android Studio无法启动,gradle下载不了 提示“building “ 项目名”gradle project info”(原创20131216)

    最近开始研究Android Studio 开发,但是在开始的时候,一直下载gradle,弄了四天,都没有成功,什么FQ,什么设置gradle路径,都没有解决,但是有一次在公司的电脑上很成功的更新了,完 ...

  4. sign-up 签约注册

    sign-up    搜索网络['sin,ʌp]      n.  注册; 签约;

  5. 查看与修改网关,DNS

    网关是网络中的路由器,作为访问其他网络的接入点. 修改ip地址 即时生效: ifconfig eth0 192.168.0.20 netmask 255.255.255.0 启动生效: 修改/etc/ ...

  6. 命令行执行php

    D:\software\phpStudy\php55

  7. 2017 CCPC 杭州 流水账

    day0: 队内训练ccpc 秦皇岛,敝校自己出的题,感觉一个星期没怎么写代码,手生得很,不出意料被打飞了. day1 (热身赛): 热身赛还算顺利,A题看有的队几分钟就草过去了,还以为又是西安ICP ...

  8. Spring中HttpInvoker远程方法调用总结

    Spring为各种远程訪问技术的集成提供了工具类.Spring远程支持是由普通(Spring)POJO实现的,这使得开发具有远程訪问功能的服务变得相当easy. 眼下,Spring支持四种远程技术: ...

  9. ubuntu卸载vmware player

    sudo vmware-installer -u vmware-player 转自: http://zhidao.baidu.com/link?url=lapkBNBGIUz_mo6603CQgi_2 ...

  10. Ubuntu14.4下搭配WEB服务器(apache + php + mysql)

    今天,趁着自己动手安装web服务器的余热,将Ubuntu14.4搭配WEB服务器的过程记录下来. “一切皆文件”. 说明:网上关于类似搭配web服务器的教程,案例不计其数,但自己亲自动手“试试”,一定 ...