JSP

1.jsp = html + java(使用特殊标签tag引入)的动态资源的技术。

jsp就是servlet。虽然作用一样,可是使用场景不一样。

使用jsp开发的web应用是跨平台的,既能够在linux下运行,也能在其他操作心痛运行。

可以把jsp页面想象为html页面,它的地位相当于html页面。jsp在tomcat中当做html访问。

Jsp特点:
1))jsp运行:
必须交给服务器运行。
work目录:tomcat服务器存放Jsp运行时的临时文件。

2)jsp既可以写html代码也可以写java代码
(html页面不能写java代码,而jsp页面可以写java代码)

2.jsp放在WebRoot下,servlet 放在src下面。

3.JSP(Java Server Page) 和 Servelet 是Java EE 的两个基本成员。二者本质相同,jsp最终也是要被编译成Servlet之后才能运行。

4.web应用和web.xml文件

6D8A92BE-43CE-4BE0-B3D5-4DC903A829AD.png

src文件夹:存放java源文件
WebRoot: Web应用的根目录
META-INF: 系统自动生成,存放系统描述信息
WEB-INF:该目录中内容不能对外发布,里面的内容,外部不能访问。
lib文件夹:存放以jar/zip形式表现的库文件
web.xml:Web应用的初始化配置文件。

5.jsp的四种基本语法

a. jsp注释: <%-- 注释内容 --%>
b. jsp声明: <%! 申明部分 %>
声明部分可以使用private, public等访问控制符修饰,但是不能使用abstract
c. 输出jsp表达式: <%= 表达式 %>
d. jsp脚本: <% 脚本 %>
在脚本部分可以申明变量,但是不能使用访问控制符来修饰。

  1. jsp的7个动作指令

1)forward

<jsp:forward page="result.jsp">
    <jsp:param name="aa" value="bb" />
</jsp:forward>

使用forward指令后,浏览器地址不会发生变化,并且不会丢失请求的参数。

  1. include

    <jsp:include page="result.jsp">
    <jsp:param name="aa" value="bb"/>
    </jsp:include>
    动态Include导入和上面的静态Include导入的方法不同之处:

  • 静态导入时将2个页面融合为一个servlet
  • 静态导入时候编译指令会起作用
  • 动态包含还可以增加额外的参数

include和forward很相似,区别在于Include是局部的引入


学习目标:

  1. 掌握B/S编程技能(html, js, jsp)
  2. OO思想(面向对象思想)编写后台业务代码
  3. 具备基本的调试B/S系统的能力
  4. 熟练掌握JDBC和集合编写数据库访问程序

掌握B/S开发的基本概念:

  1. 动态网页 vs 静态网页
  2. B/S程序 vs C/S程序
  3. B/S开发设计的技术内容

开发jsp动态网站的基本步骤:
1)掌握web系统的工作目录
2)创建按web工程与html,js文件
3)实现web工程的部署与运行
4)进行web系统的调试与排错

部署Web项目

http://www.thinksaas.cn/topics/0/350/350000.html

Intellij IDEA 创建Web项目,并且在Tomcat中部署运行。

6.语法

1)jsp的模板

jsp页面中的html代码就是jsp模板。
2)jsp的表达式

语法:<%= 变量或者表达式 %>   作用:可以向浏览器输出信息
表达式的原理就是翻译成 `out.print("内容")`,通过该方法向浏览器写出内容。表达式后面不需要加分号。

3)jsp的脚本

语法:<% java代码 %>
作用:执行Java代码。穿插html代码。
注意:a.原理吧脚本中Java代码原封不动拷贝到_jspService方法中执行。

<!-- 穿插html代码 -->
<% for (int i = 0; i < 5; i ++){%>
<h2>标题<%= i %></h2>
<% } %>

4)jsp的声明

语法:<%!   变量或者方法 %>
脚本中不能声明方法。
jsp的声明中不能重复定义翻译好的一些方法。
注意:
变量翻译成成员变量,方法翻译成成员方法。

<!-- jsp声明 -->
<%!
    String name = "聊么人";
    public String getName() {
        return name;
    }
%>

5)jsp的注释

语法:<%-- jsp注释 --%>
html的注释不能注释jsp的内容,应该用jsp注释方法注释。

6)jsp的指令:一共有三个指令。

a) include 指令:也叫静态的包含指令。

语法:`<%@include file="common/header.jsp" %>`
作用:包含其他页面。在当前页面包含其他页面。
原理:把被包含的页面(header.jsp)的内容翻译到包含页面(index.jsp)中,合并成翻译成一个java源文件,再编译运行。这种包含叫作静态包含(袁爱民包含)。
如果使用静态包含,被包含的页面中就不需要再出现全局的html标签了。

b) page 指令

作用:告诉tomcat服务器如何翻译jsp文件。

<%@ page contentType="text/html;charset=UTF-8" -->这个charset表示服务器发送浏览器的数据类型和内容编码
     language="java"  --> 告诉服务器使用什么动态语言来翻译jsp
     pageEncoding="utf-8"  --> 告诉服务器使用什么编码翻译jsp文件。
     import="java.util.*"  --> 告诉服务器java文件使用了什么包
     buffer="8kb" --> 缓冲内存大小
     errorPage="error.jsp"
%>
c) taglib 指令

7.jsp的执行过程

8.为什么Jsp就是servlet?

jsp翻译的java文件,间接集成了HttpServlet这个类。

servlet生命周期:
1)构造方法(第1次访问才要做的)
2)Init方法(第1次访问才要做的)
3)service方法
4)destroy方法
jsp的生命周期:
1)翻译:jsp->java文件
2)编译:java文件->class文件(servlet程序)
3)构造方法
4)init方法
5)service方法
6)destroy方法

图片.png

servlet的技术可以用在jsp技术中。
jsp的技术并不是全部适用于servlet程序。

9.异常相关的:

errorPage:指定当前jsp页面的错误处理页面。
isErrorPage:是否是错误页面

500.jsp
404.html

10.jsp的内置对象(重点)

内置对象:
在jsp开发中,会频繁使用到一些对象:
HttpSession,ServletContext,HttpServletRequest.
如果我们每次要使用这些对象去,都去创建这些兑现干就显得非常麻烦。

session可以直接使用。
在jsp页面加载完毕之后就会自动帮开发者创建好这些对象,而开发者只需要直接使用这些对象调用方法即可,这些创建好的对象就叫内置对象。

JSP有9大内置对象:

内置对象名    类型
request        HttpServletRequest
response     HttpServletResponse
config          ServletConfig
application  ServletContext
session        HttpSession
exception    Throwable
page            Object(this)
out               JspWriter 
pageContext  PageContext

1)Out对象:

out对象类型,JspWriter类,相当于带缓存的PrintWriter.

jsp页面的缓存机制:

什么情况缓存区内容会向外写出:
1)缓存区满了
2)刷新缓存区
3)关闭缓冲区
4)执行完jsp页面

图片.png

PrintWriter一写就写到浏览器中了。
2)pageContext对象

pageContext对象的类型是PageContext,叫作jsp的上下文
1)可以获取其他八个内置对象
2)可以从四个域中获取数据:

pageContext.getAttribute("name", 域范围常量)

3)自动在四个域中搜索数据

jsp的四个域对象:

pageContext: page域
request:request域
session:session域
application:context域

1)域对象作用:
保存数据 和 获取数据, 用于数据共享
2)域对象方法:
setAttribute()
getAttribute()
removeAttribute()
3)域对象作用范围:
page域:只能在jsp页面中使用
request域:只能在同一个请求中使用
session域:只能在同一个会话(session对象)中使用
context:只能在同一个web应用中使用。

JSP 页中 requestScope是什么意思?该怎么用?

表示变量的作用域,一共4种。pageScope: 表示变量只能在本页面使用。requestScope:表示变量能在本次请求中使用。sessionScope:表示变量能在本次会话中使用。applicationScope:表示变量能在整个应用程序中使用。

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

推荐阅读更多精彩内容

  • 1.学习内容 JSP技术入门和常用指令 JSP的内置对象&标签介绍 EL表达式&EL的内置对象 2.JSP技术入门...
    WendyVIV阅读 2,118评论 1 18
  • 1.什么是JSP (1)jsp全称是Java Server Pages,它和Servlet技术一样都是sun公司定...
    yjaal阅读 3,632评论 5 99
  • 一、JSP基础 1.1什么是JSP JSP(Java ServerPage)是Java服务器端动态页面技术。是su...
    晨星资源阅读 1,137评论 0 6
  • 前面讲了servlet入门实践现在开始介绍jsp入门实践,开发环境的搭建请参考我前面的tomcat的文章,jsp入...
    伊豚wall阅读 3,358评论 2 56
  • 复习复习!!!搞起来!!Servlet和JSP是Java EE规范最基本成员,他们是Java Web开发的重点知识...
    JackFrost_fuzhu阅读 2,825评论 1 71