Java Web 学习 : JSP

  • JSP 简介:

JSP 全名为 Java Server Pages,其根本是一个简化的 Servlet 设计,他实现了在 java 中使用 HTML 标签。JSP 是一种动态网页技术标准,也是 JAVA EE 标准。JSP 与 Servlet 一样,实在服务器端执行的。

  • JSP 基础语法:

JSP 页面元素构成
  • JSP 指令</br>

page 指令:
通常位于 JSP 页面的顶端,同一个页面可以有多个 page 指令。</br>
page 指令语法:

<%@ page 属性1="属性值" 属性2="属性值1,属性值2"... 属性n="属性n" %>

属性 描述 默认值
language 制定 JSP 页面使用的脚本语言 java
import 通过该属性来应用脚本语言中使用到的类文件
contentType 用来制定 JSP 页面所采用的编码方式 text/html,ISO-8859-1

include 指令:将一个外部文件嵌入到 JSP 文件中,同时解析这个页面中的 JSP 语句。
taglib 指令:使用标签库定义新的自定义标签,在 JSP 页面中启用定制行为。

  • JSP 注释

在 HTML 的注释:

//客户端可见

JSP 注释:
> <% --html 注释 --%> //客服端不可见

JSP 脚本注释:

//单行注释
/**/多行注释

  • JSP 脚本

在 JSP 页面中执行的 java 代码
语法:

<% java 代码 %>

在 JSP 页面中定义变量或者方法
语法:

<%! Java代码%>

JSP 表达式
语法:

<% =表达式 %> //注意:表达式不已分号结束
</br>

  • JSP 生命周期

</br>
</br>


</br>

  • JSP 内置对象

内置对象简介:
JSP 内置对象是 Web 容器创建的一组对象,不适用 new 关键字就可以使用内置对象。

Example:

<%
int[] value = {60,70,80};
for(int i : value){
    out.println(i);
}
%>
  • out 对象:
    out 对象是 JspWriter 类的实例,是向客户端输出输出内容常用的对象。
    常用的方法如下:
1. void println() 想客户端打印字符串
2. void clear() 清除缓冲区的内容,如果在 flush 之后调用会抛出异常
3. void clearBuffer 清除缓冲区的内容,如果在 flush() 方法之后调用不会抛出异常
4. void flush() 将缓冲区内容输出到客户端
5. int getBufferSize() 返回缓冲区一字节数的大小,如不设缓冲区则为 0 
6. int getRemainning() 返回缓冲区剩余多少可用
7. boolean isAutoFlush() 返回缓冲区满时,是自动清空还是抛出异常
8. void close() 关闭输出流
  • request 对象:
    客户端的请求信息被封装在 request 对象中,通过它才能了解到客户端的需求,然后做出响应。他是 HttpServletRequest 类的实例。request 对象具有请求域,即完成客户端的请求之前,该对象一直有效。常用方法如下:
1. String getParameter(String name) 返回 name 指定的参数值
2. String[] getParameterValues(String name) 返回包含参数 name 的所有值的数组
3. void setAttribute(String,Object); 存储指定的属性值
4. getAttribue(String name) 返回指定属性的属性值
5. getContentType() 得到请求体的 MIME 类型
6. getProtocal() 返回请求用的协议类型及版本号
7. String getServerName() 返回接受请求的服务器主机名
8. int getServerPort() 返回服务器接受次请求所用的端口号
9. String getCharacterEncoding() 返回字符编码方式
10. void setCharacterencoding() 设置支付编码方式
11. int getContentLength() 返回请求体的长度(byte)
12. String getRemoteAddr() 返回发送此请求的客户端 IP 地址
13. String getRealPath(String path) 返回此虚拟路径的真是路径
14. String request.getContextPath() 返回上下文路径
  • request 对象:

response 对象包含了相应客户端请求的有关信息,但在 JSP 中很少直接用到它。它是 HttpServletResponse 类的实例。response 对象具有页面作用域,即访问一个页面时,该页面的 response 对象只能对这次访问有效,其他页面的 response 对象对当前页面无效。常用方法如下:

1. String getCharacterEncoding() 返回响应用的是何种字符编码
2. void setContentType(String type) 设置响应的 MIME 类型
3. PrintWriter getWriter() 返回可以向客户端输出支付的一个对象(注意比较:PrintWriter 与内置 out 对象的区别)
4. sendRedirect(String location) 重新定向客户端的请求

</br>

  • 请求转发与请求重定向

请求重定向:
客户端行为,response.sendRedirect(),本质上讲等同于两次请求,前一次的请求对象不会保存,地址栏 URL 地址会改变。

请求转发:
服务器行为,request.getRequestDispatcher().forward(req.resp); 是一次请求,转发后请求对象会保存,地址栏的 URL 地址不会改变

  • application 对象
    application 对象实现了用户间数据共享,可存放全局变量。
    application 开始与服务器的启动,终止于服务器的关闭。
    在用户前后连接或不同用户之间的连接中,可以对 application 对象的同意属性进行操作
    服务器的启动和关闭决定了 application 对象的生命
    application 对象是 ServletContext 类的实例

application 常用方法:

public void setAttribue(String name, Object value) // 使用指定名称将对象绑定到此会话
public Object getAttribue(String name) //返回于此会话中的指定名称绑定在一起的对象,如果没有对象绑定在该名称下,则返回 null
Enumeration getAttribueNames() //返回所有可用属性的枚举
String getServerInfo() //返回 JSP(SERVLET) 引擎及版本号
  • Exception 对象
    exception 对象是一个异常对象,当一个页面在运行过程中发生了异常,就产生这个对象。如果一个 JSP 页面要应用此对象,就必须把 isErrorPage 设为 true,否则无法便宜。他实际是 java.lang.Throwable 的对象,常用方法如下:
String getMessage() //返回描述异常的消息
String toString() //返回关于一场的简短描述消息
void printStackTrace() //显示异常及其轨迹
Throwable FillInStackTrace() //重写异常的行为轨迹


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

推荐阅读更多精彩内容

  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 134,680评论 18 139
  • 一个JSP页面中包括指令标识,HTML代码,JavaScript代码,嵌入的Java代码,注释和jsp动作标识等 ...
    当时年少_青衣阅读 390评论 0 0
  • 一、JSP基础 1.1什么是JSP JSP(Java ServerPage)是Java服务器端动态页面技术。是su...
    晨星资源阅读 1,154评论 0 6
  • 1. Java基础部分 基础部分的顺序:基本语法,类相关的语法,内部类的语法,继承相关的语法,异常的语法,线程的语...
    子非鱼_t_阅读 31,654评论 18 399
  • 1.学习内容 JSP技术入门和常用指令 JSP的内置对象&标签介绍 EL表达式&EL的内置对象 2.JSP技术入门...
    WendyVIV阅读 2,138评论 1 18