JSP基础

JSP


jsp基础语法

jsp基本概念

       JSP(全称JavaServerPages)是由SunMicrosystems公司主导创建的一种动态网页技术标准。


       JSP部署于网络服务器上,可以响应客户端发送的请求,并根据请求内容动态地生成HTML、XML或其他格式文档的Web网页,然后返回给请求者。JSP技术以Java语言作为脚本语言,为用户的HTTP请求提供服务,并能与服务器上的其它Java程序共同处理复杂的业务需求。

注意:
  • jsp是运行在服务器上的,一种基于Java的服务器端技术;
  • 常见的服务器:tomcat、WebLogic、WebSphere等
  • jsp的执行的流程是同Servlet一样的,其实jsp就是作为一个默认的Servlet进行执行;
  • jsp页面中通过使用page指令,标注给服务器,让服务器作为jsp进行编译处理;
  • 在jsp页面使用<%…%>插入java脚本(插入java代码);

    该种用法在当前web开发中已经废弃不用,了解即可;

jsp页面由jsp指令、标签、html、xml、文本等组成;

jsp的元素:脚本元素、指令元素、动作元素;


jsp声明变量

jsp使用 <%! %>声明的变量等价于类的成员变量;普通方式的变量等价于类的局部变量;


jsp的注释

jsp使用 <%-- --%>”的方式来注释,注释的内容不参与jsp的解析执行;


jsp的指令

page指令

       描述了和页面相关的信息,如:导入所需类包、指明输出内容类型、控制Session等。

include指令

       在页面翻译期间引入另一个文件,被包含的文件可以是JSP、HTML或文本文件。


       include指令会先将当前JSP和被包含的文件融合到一起形成一个Servlet再进行编译执行;因此包含文件时,必须保证新合并生成的文件符合JSP语法规则。

       例如,当前文件和被包含文件的不能同时定义同名的变量,否则当前文件将不能编译通过,会提示Duplicatelocalvariable错误。

taglib指令

       指定JSP页面所使用的标签库,通过该指令可以在JSP页面中使用标签库中的标签。引入标签库中的标签;


动作元素

jsp用于执行特定动作的标签.

include动作

       动作用于在页面被请求时引入一个文件;


       用于在页面运行时引入一个静态或动态的页面,也称为动态包含。


       当容器把JSP页面翻译成Java文件时,并不会把JSP页面中动作指令include指定的文件与原JSP页面合并成一个新页面,而是告诉Java解释器,这个文件在JSP运行时才被处理。


       jsp:include元素如果包含的文件是普通的文本文件,就将文件的内容发送到客户端,由客户端负责显示;


       如果包含的文件是JSP文件,JSP容器就执行这个文件,然后将执行结果发送到客户端,由客户端负责显示这些结果。


       include动作配合param动作可以将参数值传递给被include加载的jsp中,在被include加载的jsp中使用request.getParameter(“参数名”) 来获取该参数的值;

forward动作

       用于引导客户端的请求到另一个页面或者另一个Servlet。类似action请求;


       forward动作配合param动作可以将参数值传递给跳转的的jsp中,在被跳转到的jsp中使用 request.getParameter(“参数名”) 来获取该参数的值;

useBean动作

       是JSP中一个非常重要的动作,使用这个动作,JSP可以动态使用JavaBean组件来扩充JSP的功能;


       bean等价于创建了一个java类的实例对象;

setProperty动作

       动作用于向一个JavaBean的属性赋值,需要和jsp:useBean动作一起使用。等价于java类中的set方法接口;


注意:要去bean类为设值的属性提供setter接口;否则报错;

getProperty动作:

       动作用于从一个JavaBean中得到某个属性的值,不管原先这个属性是什么类型的,都将被转换成一个String类型的值。


       等价于java类中的get方法接口;


       注意:要去bean类为设值的属性提供getter接口;否则报错;

param动作

       进行参数的设置;一般和include、forward进行搭配使用,不能单独使用;


jsp的内置对象

jsp的内置对象

       jsp运行在web服务器,本身就是一个Servlet类,在jsp初始化时,就是web容器为jsp初始化一些常用的内置对象(成员变量);


       jsp的内置对象的名字是固定的,无需初始化,可以直接使用;

内置对象的特性:
  • JSP内置对象是指在JSP页面中,不用声明就可以在脚本和表达式中直接使用的对象。
  • JSP内置对象也称隐含对象,它提供了Web开发常用的功能,为了提高开发效率,JSP规范预定义了内置对象。

JSP内置对象有如下特点:
  • 内置对象由Web容器自动载入,不需要实例化;
  • 内置对象通过Web容器来实现和管理;
  • 在所有的JSP页面中,直接调用内置对象都是合法的。

jsp九大内置对象

out

       将内容输出到用户端浏览器进行显示;类似于:System.out的使用,输出到控制台;

request

       表示用户端浏览器发送的一次服务器请求;(使用的是http通信协议)

response

       表示服务器对用户浏览器的一次响应;(使用http通信协议)

session

       表示一次会话;包括request阶段和response阶段;在一次会话过程中,可以有多次请求和响应;

application

       表示一次应用程序的启停;(表示程序从开始运行,到整体结束这个过程)
范围最大;生命周期最长;作用域为整个Web容器的生命周期。

pageContext

       表示一次页面程序的启停;(表示页面初始化开始到页面结束);

作用域范围最小,生命周期最短;作用范围为当前JSP页面。(类似于类的this的使用,局限于当前类使用)

config

       表示的jsp执行时web容器读取到的初始化的配置信息存储在config对象中;从这个对象可以获取到与运行参数相关的配置信息;

error

       表示jsp页面发生错误的信息都存储在该对象中;

exception

       表示jsp页面发生异常的信息都存储在该对象中;


jsp的四种作用域对象 ★★★

       在jsp的九大内置对象中的pageContext、request、session、application这四个对象,存在生命周期和作用域范围,一般常被用来进行一些缓存处理;

四种作用域的生命周期和可访问性介绍如下:【高级的web开发还在使用的技术】

页面域(page scope)

       页面域的生命周期是指页面执行期间。存储在页面域的对象只对于它所在页面是可访问的(仅限于当前页面使用)。


       使用pageContext对象;

请求域(request scope)

       请求域的生命周期是指一次请求过程(用户端浏览器发送请求到服务接收接收这个阶段),
包括请求被转发(forward)或者被包含(include)的情况。
存储在请求域中的对象只有在此次请求过程中才可以被访问。


使用request对象;

会话域(session scope)

       会话域的生命周期是指某个客户端与服务器所连接的时间,包括request阶段和response阶段;在一次会话过程中,可以有多次请求和响应;客户端在第一次访问服务器时创建会话,在关闭浏览器或主动退出后,会话结束。存储在会话域中的对象在整个会话期间(可能包含多次请求)都可以被访问。


       使用session对象;

应用域(application scope)

       应用域的生命周期是指从服务器开始执行服务到服务器关闭为止,是四个作用域中时间最长的。存储在应用域中的对象在整个应用程序运行期间可以被所有JSP和Servlet共享访问,在使用时要特别注意存储数据的大小和安全性,否则可能会造成服务器负载过重和线程安全性问题。


       使用application对象;


       存储在application中的数据是可以被多个pageContext、request、session对象同时访问;

总结:
  • 一般用于数据存储,就是把数据存储在这四个作用域对象中,使用的时候,再从这四个作用域对象中取出;

  • 缓存作用】存储范围从小到大;生命周期从小到大:

    pageContext(page)、request、session、application

  • pageContext(page)、request、session仅对当前用户有效,例如;用户a不会访问到用户b存储在这三个对象中的值;

  • application范围最大、生命周期最长,所有的用户之间的数据都是可以互相访问的;

  • jsp的四种作用域都是运行在服务器端的;由web服务器进行维护和管理;

  • 在缓存对象中一般使用setAttribute设值,使用getAttribute取值;这是一种一对操作,get方法的参数名和set方法的参数名要保持一致;

课下作业:
查询一下tomcat服务器中,四种作用域的默认的各自的生命周期的长度?


jsp的登录实现【web开发基本流程】

登录实现的原理

1、使用form表单将客户端浏览器中的数据通过http协议的request请求发送给服务器;

2、服务器接收到请求之后,使用request对象的getParameter方法获取form表单中的数据;

3、使用out对象或者response对象把服务器处理的结果内容发回用户浏览器进行显示;

注意:
  • form表单的action属性用于指明服务器响应的路径地址;
  • form表单的method方法用户指定request请求中数据发送到服务器的方式;
  • form表单提交必须使用submit类型的按钮或者使用submit方法才可以提交request请求到服务器;
  • 服务器接收到请求之后使用request对象的getParameter方法获取发送过来的form表单中的数据;
  • request的getParameter方法的参数必须和form表单中的标签控件的name属性值保持一致;
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值