JSP和Servlet一样,都是用于开发动态web资源的技术

JSP的两个特性:1.写JSP代码就像是在写HTML代码,但JSP技术允许在页面中编写java代码(理解为一种特殊的HTML)

        2.JSP中可以使用 request response等web开发常用对象,实现与浏览器的交互 (JSP也可以理解为Servlet)

通过查看JSP的源文件(服务器中的work目录下,就是一个java文件),可以清楚的知道,在JSP中,可以用到哪些web开发常用对象

工作原理:访问jsp,服务器是如何调用这个jsp的?(将JSP翻译成servlet,其实就是调用这个servlet(响应请求) /*即浏览器访问任何资源,都是通过servlet来实现*/

     页面内容通过 out.write() (这里的out相当于Servlet中的PrintWriter)(除了这个,还有很多对象可以类似Servlet去使用) 写给浏览器

注:JSP最佳实践:servlet只负责响应请求产生数据 ,把数据通过 /*转发*/技术带给(一般通过request)jsp 数据的显示jsp来做

/*JSP语法*/
  1.JSP模板元素 JSP页面中的HTML内容

  2.JSP脚本表达式 <%= 变量或表达式 %>

  3.JSP脚本片段 <% 多行java代码 %> 多个脚本片段可以相互访问 (如下面的脚本片段,访问上面的脚本片段的某个变量) (两个片段之间也可以嵌入其他元素)

  4.JSP声明 <%! 多行java代码 %> 使用JSP声明, 将这多行java代码翻译到 _jspService方法的外面

  5.JSP注释 <%-- 内容 --%> <!-- --> (HTML注释) 两者区别:JSP注释了的内容在浏览器的源文件中也不会出现,而HTML注释则是会原封不动的出现,

  只不过浏览器能够识别,不显示到网页上 (这样会有很多数据垃圾,产生多余的网络流量),另外java代码的注释,必须使用JSP注释,因为服务器不认得HTML注释

  6.JSP指令 <%@ 指令 属性名="值" %> (不产生任何可见的输出,只是告诉JSP引擎(理解为tomcat)如何输出JSP页面中的其余部分) page指令 include指令 taglib指令

  7.JSP标签

  8.JSP内置对象

  9.如何查找JSP页面中的错误

/*page指令*/

<%@ page import="java.util.*" %>

  1.language (指定嵌入的语言(脚本))

  2.extends(继承哪个类,一般不修改)

  3.import (会自动导入一些包)

  4.session (true false) (设置false(需要自己手动获取session对象) ,默认为true,会在jsp中翻译的servlet文件中创建session对象,可以直接使用)

  5.buffer (none 8KB sizekb) 设置缓冲 默认为8KB (一般不改)

  6.autoFlush (true false) 默认为true 缓冲满了,自动刷新 (一般不改)

  7.isThreadSafe (true false) 线程是否安全的 默认为true(不安全的) ,设置为false后 (实现SingThreadModel接口) ,(线程安全的)

  8.info (通过info带信息)

  9.errorPage (url (给服务器用)) (指定jsp的错误处理页面)

    可以在相应的web工程的web.xml文件中使用 <error-page> 元素为整个web应用程序设置错误处理页面,

    其中的<exception-type>子元素指定异常类的完全限定名 (如:404 500,java.io.Exception)

    <location> 元素 指定 错误处理页面的路径 (/(给服务器用)(不带工程名))

  注意:在jsp中 设置了 errorPage ,web.xml文件中也设置了<error-page>的话, /* JSP中的page指令优先级更高 */

  10.isErrorPage (是否为错误处理页面) (true false) 如果是错误处理页面的话,最好设置为 true,(好处:能够传递异常对象,在后台记录)

  11.contentType (告诉JSP引擎,页面的类型) ("text/html;charset=UTF-8")

  12.pageEncoding ("UTF-8") /*实际在Eclipse开发中,只需要把这个定义好,就可以了*/

  (设置好之后,会将jsp文件以UTF-8 编码保存,jsp翻译成的servlet,也是通过UTF-8 把数据发给ie,然后ie以UTF-8 打开,)

  13.isELIgnored (是否忽略EL表达式) (默认为false)

/*include 指令*/ (保存网站公共页面)

  1.静态包含 (<%@ include file = "/public/head.jsp" %>)

  2.动态包含 (<% request.getRequestDispatcher("/public/head.jsp").include(request,response) %>)

  注: 1.静态比动态性能更好 静态包含是在编译时包含,把包含时涉及到的jsp翻译成一个servlet

        动态包含是在运行时包含,把包含时涉及的每一个jsp都翻译成一个servlet,

      2.公共页面需要删除一些创建模板中固定出现的东西

/*九大隐式对象*/

  1.request   2.response   3.session(page指令第2点)   4.application(ServletConext)   5.config

  6.page(this)   7.exception (设置isErrorPage,jsp对应的servlet中就会创建这个对象) (page指令第10点)

  8.out (类似于servlet中的 PrintWriter (区别:out带缓冲功能))

    1.设置page指令的buffer属性关闭out对象的缓存功能

    2.out对象的缓冲区已满 满足这三个条件中的一个,便将out对象缓冲区的内容, /*写到response对象中*/

    3.整个JSP页面结束

  9.pageContext (JSP中最重要的一个对象)(生命周期:JSP页面启动到整个JSP页面结束)

    1.这个对象封装了对其他八大对象的引用 pageContext. /*pageContext1.jsp*/

    2.自身是一个域对象,可以用来保存数据 /*pageContext2.jsp*/

    3.封装了web开发中经常涉及的一些常用操作 (例如引入和跳转其他资源(forword) ,检索其他对象域中的属性等) /*pageContext2.jsp*/

   注: /*${ data } 等价于 pageContext.findAttribute("data"); 依次查找各个域中是否有名字是data的属性,一旦找到,就不找了,返回它的值
     查找顺序: page(pageContext(称之为page域)) -> request -> session -> application */

/*JSP标签*/ (避免在jsp中写java代码)

  jsp常用标签:1. <jsp:include>标签 2.<jsp:forward>标签 3.<jsp:param>标签 ( 传递数据 )

/*映射jsp*/ (向servlet那样去映射) (<servlet-class> 改成<jsp-file>)

7.JSP技术的更多相关文章

  1. java的JSP技术

    java的JSP技术 [toc] 1.JSP简介 Jsp技术是用来开发java web的页面显示的,所有MVC模型里面的视图层,所以视图层的开发 jsp不是编程语言,三个英文是java server ...

  2. Servlet,jsp,JSP技术 ,JSP编程

     一.Servlet 思考 1 浏览器可以直接打开JAVA/class文件吗? 不可以 2浏览器可以打开HTML.JS 文件吗? 可以 3 JAVA程序可以生成HTML文件吗?可以的,用IO流. 4 ...

  3. Java Web之JSP技术

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

  4. Jsp技术总结

    这节我们总结一下Jsp的相关技术. 1. 什么是JSP JSP即Java Server Pages,它和servlet技术一样,都是sun公司定义的一种用于开发动态web资源的技术.该技术的最大特点在 ...

  5. JSP技术

    1. JSP技术简介 JSP全称是Java Server Pages,它和servlet技术一样,都是SUN公司定义的一种用于开发动态web资源的技术.是sun公司定义的一种规范,JSP实际上就是Se ...

  6. JSP技术的优缺点介绍

    什么是JSP?JSP可用一种简单易懂的等式表示为:HTML+Java=JSP. JSP技术使用Java编程语言编写类XML的tags和scriptlets,来封装产生动态网页的处理逻辑. 网页还能通过 ...

  7. JavaWeb之JSP技术总结

    刚接触JSP技术的时候让我想起了在大学学的Asp+VBScript,记得当时我还用aspstudy做了一个小的新闻发布系统作为期末作品,也正是在那时候在卢哥卢老师的指导下走向编程的道路,对编程越来越感 ...

  8. jsp技术和el表达式和jstl技术

    注:本文参考黑马视频的讲义 jsp技术 1.jsp脚本 )<%java代码%> ----- 内部的java代码翻译到service方法的内部 )<%=java变量或表达式> - ...

  9. Servlet组件之 jsp 技术

    JSP 简称java服务器页面(java server page),jsp和servlet实现了我们的开发需求.对于jsp技术我们首先需要知道他的组成    HTML+java+jsp内置对象=jsp ...

  10. JavaWeb:JSP技术基础

    JavaWeb:JSP技术 快速开始 介绍 JSP全称Java Server Pages,是一种动态网页开发技术.它使用JSP标签在HTML网页中插入Java代码.标签通常以<%开头以%> ...

随机推荐

  1. 防止sshd服务被暴力破解

    方法有很多种,这里介绍两种. (1).配置安全的shhd设置 不允许root用户直接登录到系统,添加一个普通用户,必要时再切换到root用户. 修改默认端口号. 不允许密码登录,只能通过密钥登录系统. ...

  2. shell之判断文件是否存在

    #!/bin/sh myPath="/var/log/httpd/" myFile="/var /log/httpd/access.log" #这里的-x 参数 ...

  3. DB2的web可视化客户端工具

    DB2 是IBM公司的产品,目前在银行等金融行业还在大量使用, DB2的客户端工具太,并且难用,这是一直为人所垢病的,  现在TreeSoft数据库管理系统已支持DB2了,直接在浏览器中就可以操作查看 ...

  4. jenkins部署Vue项目 & 远程到远程服务

    只是记录下自己是怎么配置的,方便自己以后要用的时候查阅 如果使用nodejs打包则需要上图中的脚本,nodejs只是把JavaScript代码去掉空格个换行变成不易于人阅读的方式 (为了方便复制而已, ...

  5. SQL中有关DQL、DML、DDL、DCL的概念与区别?

    SQL(Structure Query Language)结构化查询语言是数据库的核心语言,是高级的非过程化编程语言.它功能强大,效率高,简单易学易维护.SQL语言基本上独立于数据库本身.使用的机器. ...

  6. 01.04 linux命令(2

    ======================Linux下的用户管理==============用户信息保存/etc/passwd ,一般用户都有读的权限真正的用户:修改密码,可以登录伪用户:应用程序在 ...

  7. Guava源码阅读-base-Enums

    package com.google.common.base; guava源码中对这个类的方法介绍只有一句话: Utility methods for working with {@link Enum ...

  8. layer简单使用

    官方:https://www.layui.com/doc/modules/layer.html 源码:https://github.com/xiaostudy/web_sample 效果 目录结构 代 ...

  9. 磁盘分区知识与linux系统分区实践

    一.磁盘存储逻辑结构图 回忆: (1)什么是分区? 磁盘分区就相当于给磁盘打隔断. (2)磁盘在linux里的命名 IDE    /dev/hda  hdb SCSI   sda     sdb 分区 ...

  10. CSS3伪类与伪元素的区别及注意事项

    CSS中伪类与伪元素的概念是很容易混淆的 今天就来谈谈伪类与伪元素之间的区别 定义 首先先来看看伪类与伪元素的定义 w3c中对于它们是这么解释的 伪类:用于向某些选择器添加特殊的效果 伪元素:用于将特 ...