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. MyEclipse环境的项目改为在Eclipse中运行爬坑记【我】

      新检出一个web项目,同事都是运行在MyEclipse中的,我用Eclipse启动, 1.首先是许多jar包报错: 处理方法为 remove掉,然后 选 WEB-INF 下的所有 jar 重新添加 ...

  2. NIO单一长连接——dubbo通信模型实现

    转: NIO单一长连接——dubbo通信模型实现 峡客 1.2 2018.07.15 19:04* 字数 2552 阅读 6001评论 30喜欢 17 前言 前一段时间看了下dubbo,原想将dubb ...

  3. nginx虚拟机无法访问解决

    .重要:修改配置文件使用虚拟机,否则怎么配置都不生效,添加如下用户 [root@host---- html]# ll /etc/nginx/nginx.conf -rw-r--r-- root roo ...

  4. 总是访问到tomcat首页解决

    部署代码后总是访问到tomcat首页解决 没有把路径写全 访问:养成带上绝对路径的习惯,否则总是访问到tomcat的首页 http://114.116.65.232:8085/ssoserver/

  5. 【leetcode】520. Detect Capital

    problem 520. Detect Capital 题意: 题目中给出的三种情况,分别是全是大写.全是小写.首字母大写,这三种情况返回True;否则返回False; solution: class ...

  6. docker attach 和 exec 用法区别

    attach 用法 $ sudo docker attach 665b4a1e17b6 #by IDor$ sudo docker attach loving_heisenberg #by Name$ ...

  7. 最新 携程java校招面经 (含整理过的面试题大全)

    从6月到10月,经过4个月努力和坚持,自己有幸拿到了网易雷火.京东.去哪儿.携程等10家互联网公司的校招Offer,因为某些自身原因最终选择了携程.6.7月主要是做系统复习.项目复盘.LeetCode ...

  8. vscode插件Project Manager

    参考链接:https://www.jianshu.com/p/b11532b91414

  9. idea的eclipse快速定位link with editor

    eclipse的link with editor,个人感觉非常有用的一个功能 idea也有这个功能autoscroll from source

  10. [mysql] C++操作mysql方法

    下载:http://mirrors.sohu.com/mysql/MySQL-5.5/ From: http://www.cnblogs.com/magicsoar/p/3817518.html C+ ...