Jsp

一、基本概念

1.它实现了Html语法中的java扩展(以 <%, %>形式)。JSP与Servlet一样,是在服务器端执行的。通常返回给客户端的就是一个HTML文本,因此客户端只要有浏览器就能浏览
2.JSP全名为Java Server Pages,中文名叫java服务器页面,其根本是一个简化的Servlet设计,它是由Sun Microsystems公司倡导、许多公司参与一起建立的一种动态网页技术标准
3.JSP技术使用Java编程语言编写类XML的tags和scriptlets,来封装产生动态网页的处理逻辑。网页还能通过tags和scriptlets访问存在于服务端的资源的应用逻辑
4.JSP(JavaServer Pages)是一种动态页面技术,它的主要目的是将表示逻辑从Servlet中分离出来
5.一个JSP页面可以被分为以下几部份
1)静态数据,如HTML

2)JSP指令,如include指令(JSP指令控制JSP编译器如何去生成servlet)

3)JSP脚本元素和变量

4)JSP动作

5)用户自定义标签
6.JSP编译
1)解析JSP文件

2)将JSP文件转为servlet

3)编译servlet

二、Jsp工作过程

1.就像其他普通的网页一样,您的浏览器发送一个HTTP请求给服务器

2.Web服务器识别出这是一个对JSP网页的请求,并且将该请求传递给JSP引擎。通过使用URL或者.jsp文件来完成

3.JSP引擎从磁盘中载入JSP文件,然后将它们转化为servlet。这种转化只是简单地将所有模板文本改用println()语句,并且将所有的JSP元素转化成Java代码

4.JSP引擎将servlet编译成可执行类,并且将原始请求传递给servlet引擎

5.Web服务器的某组件将会调用servlet引擎,然后载入并执行servlet类。在执行过程中,servlet产生HTML格式的输出并将其内嵌于HTTP response中上交给Web服务器

6.Web服务器以静态HTML网页的形式将HTTP response返回到您的浏览器中

7.最终,Web浏览器处理HTTP response中动态产生的HTML网页,就好像在处理静态网页一样

三、jsp语法(脚本程序可以包含任意量的Java语句、变量、方法或表达式,只要它们在脚本语言中是有效的)

1.编写
1)jsp文件头部        <%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>       

2)<% 代码片段 %>
2.Jsp声明
1)一个声明语句可以声明一个或多个变量、方法,供后面的Java代码使用。在JSP文件中,您必须先声明这些变量和方法然后才能使用它们

2)示例

    a. <%! int i = 0; %>

    b. <%! int a, b, c; %>

    c. <%! Circle a = new Circle(2.0); %>
3.jsp表达式
1)一个JSP表达式中包含的脚本语言表达式,先被转化成String,然后插入到表达式出现的地方

2)格式:    <%= 表达式 %>
4.JSP注释

1)<%-- 该部分注释在网页中不会被显示--%>

5.JSP指令
1)JSP指令用来设置与整个JSP页面相关的属性

2)JSP指令语法格式    <%@ directive attribute="value" %>

    a. <%@ page ... %>                                  定义页面的依赖属性,比如脚本语言、error页面、缓存需求等等

    b. <%@ include  file="文件相对 url 地址" %>         包含其他文件

    c. <%@ taglib ... %>                                引入标签库的定义,可以是自定义标签
6.JSP行为/动作
1) JSP行为标签使用XML语法结构来控制servlet引擎。它能够动态插入一个文件,重用JavaBean组件,引导用户去另一个页面,为Java插件产生相关的HTM

2) 行为标签基本上是一些预先就定义好的函数

3) 行为标签只有一种语法格式    <jsp:action_name attribute="value" />

    a. jsp:include        用于在当前页面中包含静态或动态资源

    b. jsp:useBean        寻找和初始化一个JavaBean组件

    c. jsp:setProperty    设置 JavaBean组件的值

    d. jsp:getProperty    将 JavaBean组件的值插入到 output中

四、Jsp九大隐式对象

1.request对象
1)是javax.servlet.http.HttpServletRequest 类的实例

2)每当客户端请求一个JSP页面时,JSP引擎就会制造一个新的request对象来代表这个请求

3)request对象提供了一系列方法来获取HTTP头信息,cookies,HTTP方法等等
2.response对象
1)response对象是javax.servlet.http.HttpServletResponse类的实例

2)当服务器创建request对象时会同时创建用于响应这个客户端的response对象

3)response对象也定义了处理HTTP头模块的接口。通过这个对象,开发者们可以添加新的cookies,时间戳,HTTP状态码等等
3.out对象
1)out对象是 javax.servlet.jsp.JspWriter 类的实例,用来在response对象中写入内容(out.println() / out.flush())

2)JspWriter类包含了大部分java.io.PrintWriter类中的方法。不过,JspWriter新增了一些专为处理缓存而设计的方法。还有就是,JspWriter类会抛出IOExceptions异常,而PrintWriter不会
4.session对象
1) session对象是 javax.servlet.http.HttpSession 类的实例。和Java Servlets中的session对象有一样的行为

2) session对象用来跟踪在各个客户端请求间的会话
5.application对象
1) application对象直接包装了servlet的ServletContext类的对象,是javax.servlet.ServletContext 类的实例

2) 这个对象在JSP页面的整个生命周期中都代表着这个JSP页面。这个对象在JSP页面初始化时被创建,随着jspDestroy()方法的调用而被移除

3) 通过向application中添加属性,则所有组成您web应用的JSP文件都能访问到这些属性

6.config对象
1) config对象是 javax.servlet.ServletConfig 类的实例,直接包装了servlet的ServletConfig类的对象

2) 这个对象允许开发者访问Servlet或者JSP引擎的初始化参数,比如文件路径等
7.pageContext 对象
1) pageContext对象是javax.servlet.jsp.PageContext 类的实例,用来代表整个JSP页面

2) 这个对象主要用来访问页面信息,同时过滤掉大部分实现细节

3) 这个对象存储了request对象和response对象的引用。application对象,config对象,session对象,out对象可以通过访问这个对象的属性来导出

4) pageContext对象也包含了传给JSP页面的指令信息,包括缓存信息,ErrorPage URL,页面scope等
8.page 对象
1) 这个对象就是页面实例的引用。它可以被看做是整个JSP页面的代表

2) page 对象就是this对象的同义词
9.exception 对象
1) exception 对象包装了从先前页面中抛出的异常信息。它通常被用来产生对出错条件的适当响应

五、jstl(JSP 标准标签库)

1.JSP标准标签库(JSTL)是一个JSP标签集合,它封装了JSP应用的通用核心功能
2.引入standard.jar和jstl.jar
3.JSTL支持通用的、结构化的任务,比如迭代,条件判断,XML文档操作,国际化标签,SQL标签。 除了这些,它还提供了一个框架来使用集成JSTL的自定义标签
4.根据JSTL标签所提供的功能,可以将其分为5个类别
1) 核心标签

    (1)引入方式    <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>

2)格式化标签

3)SQL 标签

4)XML 标签

5)JSTL 函数

六、EL表达式(JSP表达式语言)

1. JSP表达式语言(EL)使得访问存储在JavaBean中的数据变得非常简单
2. EL既可以用来创建算术表达式也可以用来创建逻辑表达式
3. 在JSP EL表达式内可以使用整型数,浮点数,字符串,常量true、false,还有null
4. 格式: ${value} 在html元素中可以很简单的表示值

七、国际化

1.国际化(i18n):表明一个页面根据访问者的语言或国家来呈现不同的翻译版本
2.本地化(l10n):向网站添加资源,以使它适应不同的地区和文化。比如网站的印度语版本
3.区域:这是一个特定的区域或文化,通常认为是一个语言标志和国家标志通过下划线连接起来。比如"en_US"代表美国英语地区
4.i18n(其来源是英文单词 internationalization的首末字符i和n,18为中间的字符数)是“国际化”的简称
5.对程序来说,在不修改内部代码的情况下,能根据不同语言及地区显示相应的界面
6.通常与i18n相关的还有L10n(“本地化”的简称)
7.Jsp国际化(request.getLocale()返回的Locale对象)
1)String getCountry()        返回国家/地区码的英文大写

2)String getDisplayCountry()    返回要显示给用户的国家名称

3)String getLanguage()        返回语言码的英文小写

4)String getDisplayLanguage()    返回要给用户看的语言名称

八、自定义标签


九、异常处理


十、JavaBean


参考网址

菜鸟教程——JSP 教程

JSP

注:文章是经过参考其他的文章然后自己整理出来的,有可能是小部分参考,也有可能是大部分参考,但绝对不是直接转载,觉得侵权了我会删,我只是把这个用于自己的笔记,顺便整理下知识的同时,能帮到一部分人。
ps : 有错误的还望各位大佬指正,小弟不胜感激

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值