javaWeb_JSP 知识总结-markdown

javaWeb_JSP

一、简介

全称: java server pages(java服务器页面);

jsp必须运行在服务器中,不能直接使用浏览器打开;

Jsp其本质就是一个Servle,Servle能做的事情JSP都能做。

Jsp能够以HTML页面的方式呈现数据,是一个可以嵌入Java代码的HTML。(jsp = html + java);

(Servlet主要负责处理业务,从表面上看,Servlet相当于在java中嵌入html代码:Servlet=java+html)

二、JSP工作原理

1、第一次访问jsp页面时,服务器会将xxx.jsp文件翻译成xxx_jsp.java文件,再编译成xxx_jsp.class文件。

2、以后在访问同一个jsp文件

如果文件未改变,不会被翻译和编译

如果文件改变,会翻译和编译

注意事项:1.jsp页面是一个类似于html的一个页面,jsp直接存放到WebContent目录下,和html一样访问jsp的时候,也和访问html一样

2.jsp的默认编码集是iso-8859-1,修改jsp的默认编码为UTF-8;

三、Jsp基本语法(6个)

1、 指令

格式:<%@ 指令名    属性=属性值    属性2=属性值2%>

2、 模板元素(<u>html&css&js</u>...)

3、 脚本片段

格式:<%    %>作用:在_jspService()方法中,书写java代码。

4、 表达式

格式:<%=  %>作用:将数据显示到页面中,类似PrintWrite的writer()的功能。注:PrintWriter与JspWriter都继承java.io.Writer,属于兄弟关系,同时出现时PrintWriter的内容始终先显示。

5、 声明

格式:<%!  %> 作用:在翻译后的类中,书写java代码。(如果声明变量则是成员变量)

6、 注释

java中的单行注释和多行注册html注释:<!-- -->jsp注释:<%-- --%>

四、Jsp中常用指令

1、page指令

格式:<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF8"%>属性:language:jsp支持语言,有且仅有java。contentType:与response.setContentType()作用一致pageEncoding:设置当前jsp页面的字符集import:导包isErrorPage:设置当前页面是否为错误页面,默认值"false"。errorPage:设置当前页面错误时的跳转目标页面。错误需要在_jspService()中才可以捕获。

2、include指令:静态包含

格式:<%@include file="被包含文件的路径" %>作用:将目标文件包含到当前文件中特点:被包含的文件不会被翻译&编译。(先包含,再翻译)

3、taglib(标签库)指令---引入标签库(jstl的使用)

<%@taglibprefix="c"uri=""http://java.sun.com/jsp/jstl/core""%>

属性:prefix ----指定前缀名,通过该名来使用jstl;

  uri-----相当于库的唯一标识,因为JSTL由多个不同的库组成,使用该属性指定要导入哪个库;

作用:引入标签库

五、Jsp中常用动作标签

1、转发

语法:<jsp:forward><jsp:forword>

实例

<jsp:forwardpage="target.jsp"></jsp:forward>

作用:在页面中进行转发操作

转发子标签

语法::<jsp:param value="paramValue" name="paramName"/>

作用 :在转发时设置请求参数,通过request.getParameter()在目标页面获取请求参数。

<jsp:forwardpage="target.jsp">

<jsp:paramvalue="paramValue"name="paramName"/>

</jsp:forward>

注意:如果转发动作标签不需要设置请求参数,该标签开始与结束标签内部,不允许书写任何内容,(包括空格)

2、动态包含

语法:<jsp:include page="target.jsp"> 作用:将目标文件包含到当前文件中。特点:被包含的文件同时会被翻译&编译。(先翻译,再包含)

3.jsp动态包含和静态包含的区别

静态包含------>@include 指令动态包含------>jsp:include标签

语法<%@ include file="taret.jsp"%><jsp:include  page="target">

包含动作发生时机翻译期间请求期间

是否生成.java文件不生成生成

合并方式代码复制(多个jsp中相同代码抽取到一个文件中)合并运行结果

适用范围适用包含纯静态内容(CSS,HTML,JS),或没有非常耗时操作;或大量java代码的jsp。包含需要传递参数。含有大量java代码,运算,耗时很长的操作。

六、Jsp九大隐含对象(内置对象|隐式对象

注:九大内置对象,都是我们可以在【代码脚本】中或【表达式脚本】中直接使用的对象。

概述: JSP隐式对象是JSP容器为每个JSP页面提供的Java对象,开发者可以直接使用它们而不用显式声明。JSP隐式对象也被称为预定义变量。

1、pageContext(页面域)

类型:java.servlet.jsp.PageContext定义:代表整个jsp页面作用:①页面域对象          ②九大隐式对象的“大哥”,可以直接调用其他八个隐式对象。在servlet中的获取方式:无

2、request(请求域)

类型:HttpServletRequest定义:代表浏览器向服务器发送的请求报文作用:    1.获取请求参数    2.获取URL信息    3.获取请求头信息    4.转发请求(地址栏不变)    5.域对象在servlet中的获取方式:在doGet()/doPost()中直接调用

3、session(会话域)

类型:HttpSession定义:代表浏览器与服务器之间的会话作用域:当前会话有效(关闭浏览器结束当前会话)在servlet中的获取方式:request.getSession();

4、application(web域)

类型:javax.servlet.ServletContext定义:意思是Servlet上下文,代表当前web应用。作用:  1.获取当前项目的虚拟路径;  2.获取虚拟路径所映射的真实路径;  3.获取当前上下文的初始化参数;  4.域对象;在servlet中的获取方式:this.getServletContext();

5、page

类型:Object作用:this

6、response

类型:HttpServletResponse定义:代表服务器向浏览器发送的响应报文作用:1.获取响应流(writer),响应数据到浏览器页面;2.设置响应头;3.重定向;在servlet中的获取方式:在doGet()或doPost()中直接使用

7、config

类型:javax.servlet.ServletConfig 定义:代表当前Servlet配置信息作用:1.获取当前Servlet的名称;2.获取当前Servlet初始化参数3.获取ServletContext对象在servlet中的获取方式:this.getServletConfig();

8、out

类型:javax.servlet.jsp.JspWriter作用:与Servlet中的PrintWriter类似,向页面响应数据。在servlet中的获取方式:无

9、exception

类型:java.lang.Throwable作用:处理异常

七、Jsp四大域对象

1、作用: 程序中的域对象,在一定范围内共享数据。

2、四大域对象

2.1  pageContext:页面域对象作用域:当前页面效,超出当前页面失效。 2.2  request:请求域对象作用域:当前请求中效,超出当前请求失效。

注:当前请求不包含重定向和超链接

2.3  session:会话域对象(与浏览器有关,与服务器无关) 作用域:当前会话效,超出当前会话失效。 2.4  application: web域对象  作用域:当前web应用中效,关闭或卸载web应用失效。

3、 域对象的共同方法

每个域对象内部都维护了一个Map<String , Object>设置属性到域中:void setAttribute(String key , Object value);从域中获取指定的属性:Object  getAttribute(String key);移除域中指定属性:void removeAttribute(String key);注:使用域对象的心得:能用小域就不用大域。

4、四大域对象作用域总结

域对象作用域范围起始时间结束时间

pageContext当前jsp页面页面加载关闭页面无

request同一个请求收到请求(转发、点击链接请求)响应请求通过doget();dopost直接使用

session同一个会话开始会话(主要跟浏览器有关)结束会话request.getSession();

application当前Web应用web应用卸载web应用卸载this.getServletContext();

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 216,258评论 6 498
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 92,335评论 3 392
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 162,225评论 0 353
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,126评论 1 292
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,140评论 6 388
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,098评论 1 295
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,018评论 3 417
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,857评论 0 273
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,298评论 1 310
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,518评论 2 332
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,678评论 1 348
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,400评论 5 343
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,993评论 3 325
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,638评论 0 22
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,801评论 1 268
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,661评论 2 368
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,558评论 2 352

推荐阅读更多精彩内容

  • JSP总结(经典) day1 JSP 定义: 1)Java Server Page, Java EE 组件,本...
    java日记阅读 3,435评论 0 13
  • 这部分主要是与Java Web和Web Service相关的面试题。 96、阐述Servlet和CGI的区别? 答...
    杂货铺老板阅读 1,404评论 0 10
  • Jsp技术总结 1. 什么是JSP JSP即Java Server Pages,它和servlet技术一样...
    java日记阅读 1,652评论 0 18
  • IOC 控制反转容器控制程序对象之间的关系,而不是传统实现中,有程序代码之间控制,又名依赖注入。All 类的创建,...
    irckwk1阅读 940评论 0 0
  • 1.学习内容 JSP技术入门和常用指令 JSP的内置对象&标签介绍 EL表达式&EL的内置对象 2.JSP技术入门...
    WendyVIV阅读 2,136评论 1 18