一.JSP概述
什么是JSP:JSP(全称Java Server Pages)是由Sun Microsystems公司主导创建的一种标准。JSP部署于网络服务器上,可以响应客户端发送的请求,并根据请求内容动态地生成HTML、XML或其他格式文档的Web网页,然后返回给请求者。JSP技术以Java语言作为脚本语言,为用户的HTTP请求提供服务,并能与服务器上的其它Java程序共同处理复杂的业务需求。
JSP的技术特征:
-
能以模板化的方式简单、高效地添加动态网页内容。
-
可利用JavaBean和标签库技术复用常用的功能代码(设计好的组件容易实现重复利用,减少重复劳动)。标签库不仅带有通用的内置标签JSTL),而且支持可扩展功能的自定义标签。
-
有良好的工具支持。
-
继承了Java语言的相对易用性。
-
继承了Java的跨平台优势,实现“一次编写,处处运行”。因为支持Java及其相关技术的开发平台多,网站开发人员可以选择在最适合自己的系统平台上进行JSP开发;不同环境下开发的JSP项目,在所有客户端上都能顺利访问。
-
页面中的动(控制变动内容的部分)/静(内容不需变动的部分)区域以分散但又有序的形式组合在一起,能使人更直观地看出页面代码的整体结构,也使得设计页面效果和程序逻辑这2部分工作容易分离(外观视图与逻辑分离)。从而方便分配人员并发挥各自长处,实现高效地分工合作。
-
可与其它企业级Java技术相互配合。JSP可以只专门负责页面中的数据呈现,实现分层开发。
JSP的基本构成: JSP页面主要由指令标签,HMTL语句,注释,嵌入Java代码,JSP动作标签等五个元素组成。
学习领悟和感受:通过学习这些内容,初次对JSP基本知识有了解,知道了JSP的概念与特点
二.JSP的基本结构
指令标签
指令标签不会产生任何内容输出到网页中,主要用于定义整个JSP页面的相关信息
<%@directive attribute="value"attributeN="valueN"...%>
1.directive:指令名称。
2.attribute:属性名称,不同的指令包含不同的属性.
3.value:属性值,为指定属性赋值的内容。
page指令:page指令是JSP页面最常用的指令,用于定义整个JSP页面的相关属性,这些属性在JSP服务器解析成Servlet时会转换成相应的的Java代码程序.page指令包含的属性有15个.常用的有5类
language属性:该属性用于设置JSP页面使用的语言
extends属性:该属性用于设置JSP页面继承的Java类,所有JSP页面在执行前都会被服务器解析成Servelt,而Servlet是由Java类定义的,所以JSP和Servlet都可以继承指定的父类。
import属性:该属性用于设置JSP导入的类包
pageEncoding属性:该属性用于定义JSP页面的编码格式,也就是指定文件编码。JSP页面的所有代码都使用该属性指定的字符集
contentType属性:该属性用于设置JSP页面的MIME类型和字符编码,浏览器会根据此显示网页内容
include指令:include指令用于文件包含。该指令可以在JSP页面中包含另一个文件的内容,但是他仅支持静态包含,也就是说被包含文件中的所有内容都被包含到该JSP页面中;如果被包含文件中有代码,将不会被执行。被包含文件可以是一段Java代码,HTML代码或者是另一个JSP页面。
例如:<%@include file="validate,jsp"%>
上述代码将当前JSP文件中相同位置的validate.jsp文件包含进来。
taglib指令:该指令用于加载用户自定义标签
学习领悟和感受:在这一节学习了本没有关注的指令标签,在每次建立文件时,这些文件开头都会自带的格式,然后都没怎么理会。这个章节让我掌握了有关指令标签的基本知识,对JSP有了更深一步的了解
插入Java代码
指在JSP页面中可以嵌入Java代码片段来完成业务处理
代码片段:代码片段就是在JSP页面中嵌入Java的代码,也可称为脚本桥段或者脚本代码。
<%编写Java代码%>:Java代码被包含在“<% %>"标记之间。
例如第二周的示例代码
声明:声明脚本用于在JSP页面定义全局的成员变量或者方法,他们可以被整个JSP页面访问,服务器执行时会将JSP页面转化为Servlet类,在该类中会把使用JSP声明脚本定义的变量和方法定义为类的成员
学习领悟与感受:这一部分入手简单,有之前网页设计和Java课程的基础,掌握速度比较快
注释
HTML注释:<!--text-->
JSP注释:<%--text--%>
代码注释:
<%
//单行注释
/*
多行注释
*/
%>
<%/**JavaDoc注释,用于成员注释*/%>
学习领悟与感受:记住这些格式就能运用该知识点
三.request对象
获取请求参数值:在一个请求中。可以通过使用”?“的方式来传递参数,然后通过request对象的getParameter()方法来获取参数的值
获取Form表单的信息:对于复选框以及多选列表被选定的内容而言。就要使用getParameterValues()方法来获取
获取请求客户端信息:
方法 | 返回值 | 说明 |
---|---|---|
getHeader(String name) | String | 返回指定名称的HTTP报头信息 |
getMethod() | String | 获取客户端向服务器发送请求的方法 |
getContextPath() | String | 返回请求路径 |
getProtocol() | String | 返回请求使用的协议 |
getRemoteAddr() | String | 返回客户端IP地址 |
getRemoteHost() | String | 返回客户端主机名称 |
getRemotePort() | int | 返回客户端发出请求的端口号 |
getServeltPath() | String | 返回接收客户端提交信息的页面 |
getRequestURL() | String | 返回部分客户端请求的地址,不包括请求的参数 |
getRequestURL() | String | 返回客户端请求地址 |
在作用域中管理属性:通过使用setAttribute()方法可以在request对象的属性列表中添加一个属性,然后在request对象的作用域范围内使用getAttribute()方法将其属性取出;此外,还可使用remoceAttribute()方法将一个属性删除掉
四.response对象
response对象的常用方法
方法 | 返回值 | 说明 |
void addHeader(String name, String value) | void | 添加头信息(参数名称和对应值) |
void addCookie(Cookie cookie) | void | 添加 cookie 信息 |
void sendRedirect(String location) | void | 实现页面重定向 |
void setStatus(int sc) | void | 实现页面的响应状态代码 |
void setContentType(String type) | void | 设置页面的 MIME 类型和字符集 |
void setCharacterEncoding(String charset) | void | 设定页面响应的编码类型 |
setBufferSize(int size) | void | 设置缓冲区大小 |
五.session对象
session对象常用方法
方法 | 返回值 | 说明 |
getAttibute(String name) | Object | 获得指定名字的属性 |
getAttributeNames() | Enumeration | 获得session中所有属性对象 |
getCreationTimes() | long | 获得session对象创建时间 |
getId() | String | 获得session对象唯一编号 |
学习领悟与感受:在这几个章节学习了大量的方法,以request方法和response方法为首的有很多内容,我目前只进行粗略的了解,没有进行实际练习,如果要实际掌握则还需要大量练习
本次作业费时:4小时