一、介绍
JSP:Java Server Page SUN 公司提供的动态网页编程技术,是 Java Web 服务器端的动态资源。
它相比 html 而言,html 只能为用户提供静态数据,而 Jsp 技术允许在页面中嵌套 java 代码,为
用户提供动态数据。
相比 servlet 而言,servlet 很难对数据进行排版,而 jsp 除了可以用 java 代码产生动态数据的同
时,也很容易对数据进行排版。
不管是 JSP 还是 Servlet,虽然都可以用于开发动态 web 资源。但由于这 2 门技术各自的特点,在
长期的软件实践中,人们逐渐把 servlet 作为 web 应用中的控制器组件来使用, 而把 JSP 技术作为数据
显示模板来使用。
其实 Jsp 就是一个 Servlet,当我们第一次访问 Jsp 的时候,Jsp 引擎都会将这个 Jsp 翻译成一个
Servlet,这个文件存放在 Tomcat 中的 work 目录中。
二、eclipse工具中的准备工作
统一jsp文件的模板
1、window--preferences--Web--Jsp Files下,将编码修改为utf-8
2、完成上面步骤。继续进入JSP Files--Editor--Templates
选择New JSP File(html 5),双击打开,进行修改,修改之后的模板如下:
三、jsp基本语法
1、注释
在 JSP 中支持两种注释的语法操作,一种是显示注释,这种注释是允许客户端看见的;另一种是隐
式注释,此种注释是客户端无法看见的
① 显示注释语法:从 HTML 风格继承而来
② 隐式注释语法:从 JAVA 风格继承;JSP 自己的注释
JSP 的三种注释方式:
1)// 注释,单行注释 /* 多行注释 */
2)
3)<%-- JSP 注释 --%>
2、Scriptlet
在 JSP 中最重要的部分就是 Scriptlet(脚本小程序),所有嵌入在 HTML 代码中的 Java 程序都必
须使用 Scriptlet 标记出来,在 JSP 中一共有三种 Scriptlet 代码:
第一种:<% %> :java 脚本段,可以定义局部变量、编写语句
第二种:<%! %>:声明,可以定义全局(成员)变量、方法、类
第三种:<%= %>:表达式,数据、一个变量或具体内容
3 、JSP 的指令标签
3.1、include
include有静态包含和动态包含,使用它的作用是可以将一些重复的代码编写在一个文件中,在使用时可以使用包含来进行引用,这样就不要每一个文件中写入相同块的代码。
两种实现方法:推荐使用方法二,方法一会存在很多重复的代码,而且修改不方便。
方法一:在每个 JSP 页面(HTML)都包含工具栏、头部信息、尾部信息、具体内容。
方法二:将工具栏、头部信息、尾部信息都分成各个独立的文件,以后使用的时候直接导入进来。(推荐)
静态包含:
<%@include file="hello.jsp" %>
包含另一个资源,相当于将另一个资源的内容粘贴到该标签放置的位置,包含该标签的类,编译后会生成一个.java文件.
动态包含:
包含另一个资源,与上不同的是,这里的包含相当于调用一个方法,编译后会生成两个.java文件。
注意:动态包含,中间不要加任何内容,包括空格,除非确认要使用参数,否则报错!
使用动态包含还可以通过在页面之间传参。接收参数通过 request.getParameter(name) 来完成。
<%=request.getParameter("uname"); %>
查看编译后的生成文件:apache-tomcat-9.0.13\work\Catalina\localhost\项目名下的文件
3.2、forword
forward 动作用于请求转发,可以将一个用户的请求(request),从一个页面传递到另一个页面
3.3、useBean
useBean 动作用来装载一个将在 JSP 页面中使用的 JavaBean。相当于创建了一个 JavaBean 对象,但是还没有进行属性设置,属性的设置和获取可以通过 jsp:setProperty 和 jsp:getProperty 动作标签来完成。
jsp:setProperty:
注意:
jsp:getProperty:
getProperty 动作用来获取指定 Bean 属性的值,转换成字符串,然后输出。
注意:在使用
4、JSP 的九大内置对象
通过解析后的 jsp 文件查看即可
1、request 对象
request 对象是 javax.servlet.httpServletRequest 类型的对象。该对象代表了客户端的请求信息,
主要用于接受通过 HTTP 协议传送到服务器的数据。(包括头信息. 系统信息. 请求方式以及请求参数
等)。request 对象的作用域为一次请求。
2、response 对象
response 代表的是对客户端的响应,主要是将 JSP 容器处理过的对象传回到客户端。response 对
象也具有作用域,它只在 JSP 页面内有效。
3、session 对象
session 对象是由服务器自动创建的与用户请求相关的对象。服务器为每个用户都生成一个
session 对象,用于保存该用户的信息,跟踪用户的操作状态。
session 对象内部使用 Map 类来保存数据,因此保存数据的格式为 “Key/value”。session 对象的
value 可以是复杂的对象类型,而不仅仅局限于字符串类型。
4、application 对象
application 对象可将信息保存在服务器中,直到服务器关闭,否则 application 对象中保存的信息
会在整个应用中都有效。
与 session 对象相比,application 对象生命周期更长,类似于系统的 “全局变量”。
5、out 对象
out 对象用于在 Web 浏览器内输出信息,并且管理应用服务器上的输出缓冲区。
在使用 out 对象输出数据时,可以对数据缓冲区进行操作,及时清除缓冲区中的残余数据,为其他
的输出让出缓冲空间。待数据输出完毕后,要及时关闭输出流。
6、pageContext 对象
0791-88269138 专业专心专注IT高端教育品牌
南昌市青山湖区紫阳大道3333绿地紫峰大厦1907室
第 8 页,共 12 页
代码歌颂人生 程序铸就辉煌
pageContext 对象的作用是取得任何范围的参数,通过它可以获取 JSP 页面的 out、request、
reponse、session、application 等对象。
pageContext 对象的创建和初始化都是由容器来完成的,在 JSP 页面中可以直接使用 pageContext
对象。
7、config 对象
config 对象的主要作用是取得服务器的配置信息。通过 pageConext 对象的 getServletConfig() 方
法可以获取一个config 对象。
当一个Servlet 初始化时,容器把某些信息通过 config 对象传递给这个Servlet。
开发者可以在 web.xml 文件中为应用程序环境中的 Servlet 程序和 JSP 页面提供初始化参数。
8、page 对象
page 对象代表 JSP 本身,只有在 JSP 页面内才是合法的。page 隐含对象本质上包含当前 Servlet
接口引用的变量,类似于 Java 编程中的 this 指针。
9、exception 对象
exception 对象的作用是显示异常信息,只有在包含 isErrorPage="true" 的页面中才可以被使用,
在一般的 JSP 页面中使用该对象将无法编译 JSP 文件。
excepation 对象和 Java 的所有对象一样,都具有系统提供的继承结构。exception 对象几乎定义
了所有异常情况。
如果在 JSP 页面中出现没有捕获到的异常,就会生成 exception 对象,并把 exception 对象传送到
在 page 指令中设定的错误页面中,然后在错误页面中处理相应的 exception 对象。