java web 学习之JSP技术

一、jsp概述:

java的服务端页面,它是建立在servlet规范基础上的动态网页开发技术
java服务端页面:在jsp上可以写java代码,也可以写html标记,它运行在服务端
Java=java+html+jsp自身的一些东西。

二、jsp产生的原因:

在早期没有jsp,需要servlet向页面写数据,比较麻烦,所以产生了jsp技术,
jsp最大的特点:可以非常简单的书写页面。
jsp的本质是servlet,jsp继承了HttpJspBase 继承 httpServlet
优势:1.跨平台 2.业务代码的分离:html脚本和java脚本进行分离3.组件的重用 4.有预编译的过程

三、jsp运行原理:

jsp第一次收到请求,JSP容器会将jsp文件转换servlet(.java)文件然后编译生成class文件,再生成对应的Servlet实例化对象,通过生成的servlet对象去处理浏览器的请求响应数据给浏览器。

四、JSP基本语法

1.jsp脚本元素

在jsp页面书写java的三种形式(1.可以声明语句和方法2.可以书写java代码段3.可以书写表达式)

  • 1.Jsp Scriptlets :对应的位置生成在_jspService方法内部。 在jsp页面可以书写java代码片段,基本语法:<% java代码片段 %>
    2.jsp 声明语句,对应的位置生成在了成员位置。 在jsp页面里面可以书写变量和方法:基本语法: <%! 定义变量或者方法 %>
    3.jsp表达式:对应的位置生成在_jspService方法内部。 在jsp页面,可以输入一个结果,基本语法: <%=表达式 %> ,其实就等同于out.print();注意表达式后面不能写分号。

五、JSP注释:用哪种注释取决于你是否想让用户看到你的注释信息

在jsp里面,可以书写html,可以写java,也可以书写jsp自身的一些内容
在jsp里面写注释三种形式:

  • 1.html注释: :在任何地方都存在了
    2.java注释:单行,多行,文档注释:存在jsp页面,也在java文件里面存在,对应生成的html就消失了 <%//java注释 %>
    3.jsp注释:<%-- jsp注释 -->:只存在件商品页面,在生成相对应的java文件时,它就消失了。

六、JSP指令:page指令、include指令

1.page指令

  • page指令的用途是设置与jsp页面相关的信息,比如说设置jsp页面的编码,jsp页面默认语言等 基本语法格式:<%@ page
    属性=“属性值” %> 比如: 常用属性:language:默认语言java,也就是只有java一种语言。
    pageEncoding:设置jsp的编码格式,一般情况下可以省略contentType这个属性
    session属性:类型是bollean,如果对应是true,在jsp页面可以使用session对象,反之就不能使用、

2.incldue指令:

  • 在jsp页面通常会需要显示其他页面的信息,所以可以通过这个include指令把其他页面包含过来。 基本语法:<%@ include
    file=“被包含文件的url” %> 使用include指令实现的包含,又称为静态包含,静态包含的特点:
    1.把多个页面的内容合并输出
    2.多个页面生成一个java文件,编译后生成一个class文件。

七、jsp的隐式对象

  • 概念:在jsp页面里,jsp提供了一些对象,无需自己创建,可直接使用。 jsp常见的九大隐式对象
    request:HttpServletRequest,请求对象,同时也是域对象,作用范围一次请求。
    response:HttpServletResponse,响应对象
    session:HttpSession,会话对象,它同时是域对象,作用范围,一次会话。
    application:ServletContext,上下文对象,它同时也是域对象,作用范围整个项目。
    config:ServletConfig,配置对象 out:输出对象,JspWriter,与PrintWriter作用相似
    page:Object,代表当前jsp的页面对象 pageContext:PageContext,jsp容器
    exception:Throwable,异常对象,它是用来捕获异常信息的。会用到两个属性
    errorPage:属性对应的值,处理异常信息的页面,就是在当前页面发生了异常,跳转到处理异常信息的页面:errorpage=“捕获异常的jsp页面”
    isErrorPage:属性对应的值是true或者false,如果为true,在当前页面可以使用exception对象
    out:out对象在输出内容到网页上面去是通过reponse缓冲区给输出的。
    pageContext
    第一个功能:获取其他八个隐式对象
    第二个功能:操作其他三个域对象:request、session、appliaction
    pageContext也是一个域对象,作用范围在当前jsp页面。
    操作其他三个域对象的方法:
    1.存值:setAttribute(String key,Object obj,int scope);
    APPLICATION_SCOPE:对应的是application
    REQUEST_SCOPE:对应的是request
    SESSION_SCOPE:对应的是session
    PAGE_SCOPE:对应的是pageContext
    2.取值:getAttribute(Stringkey,int scope);
    在pageContext域对象使用findAttribute方法获取值时,进行了全域查找,
    查找范围:pageContext—>request---->session---->application
    首先找域作用范围小的对象,如果有值,获取到,如果域作用范围小的对象不存在对应的值就继续向下查找

八、jsp的动作元素

1.<jsp:include>动作元素:动态包含

动态包含:把其他资源页面的内容,合并到当前要包含的页面,最后一起输出。
基本语法格式:<jsp:include page=“被包含的页面的url” flush=“true或者false” ></jsp:include>
动态包含特点:多个页面的内容合并输出,多个jsp页面生成多个java文件,编译成多个class文件
静态包含特点:多个页面的内容合并输出,多个jsp页面最终生成一个java文件,编译成一个class文件

2.<jsp:forward>动作元素:请求转发

它的作用实现请求转发,效果等同于RequestDispathcer的forward方法
基本语法格式:<jsp:include page=“转发页面的url” ></jsp:include>
转发页面的url地址:不需要携带项目的名称,因为转发动作是服务器内部行为。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值