JSP总简述,动态包含,静态包含,程序块

来源:互联网 发布:鼎迈网络 编辑:程序博客网 时间:2024/05/01 08:28


1、Jsp并不是javaScript的简称,语言有些相同但是有不一样。Jsp页面可以包含Html、JavaScript和java程序块、jsp语法。这里主要说java程序块和jsp语法。
   java程序块:
  1)以<%---%>之间的程序块,声明的变量和语句在服务器编译时会嵌入到jsp生成的servlet类的Service方法中,所以生成的变量是局部的,不能生成方法,因为生成的方法会被嵌入方法

    中,这样就会报错。
  2)以<%!----%>之间的程序块,可以进行变量的声明和方法的声明,这时的变量和方法会在生成jspServlet类的成员变量和方法。
  3)以<%=    %>属于输出,相当于<% out.print("")%>
2.jsp指令与标签
 1)指令有<%@page %>、<%@include %>、<%@ taglib %>
 2) 动作标签有:
    <jsp:include>、<jsp:useBean>、<jsp:getProperty>、<jsp:setProperty>、<jsp:foward>、<jsp:plugin>
3.<%@page import="" contenType="txt/html;charset=gbk"%>//经常用到的两个
  <%@include file=""%>//指令包含属于静态包含
  <%@taglib prefix="" uri=""%>//标签在Struts标签时用到
  <jsp:include page="" flush="true">//动态包含
  <jsp:useBean id="" class="" scope="page|application|session|request">//默认为page
  <jsp:getProperty name="" property="">
  <jsp:setProperty name="" property="" >//在本博客中其他文章有专门的分类
  <jsp:forward page="">//属于的是服务器跳转,所以在浏览器中显示的地址没有发生变化,而response.sendRedirect属于浏览器重新发送请求,所以地址发生变化
4.java程序块是在服务器端执行,所以传参多数是前面的页面的参数。动作指令有的时候是触发的时候才开始编译执行。
5.jsp include包含中动态包含与静态包含的区别:
  1)动态包含是动作标签。而静态包含是指令。
  2)静态包含是在编译前直接将被包含代码提到包含页面,所以执行编译形成的是一个源文件,同一个Request对象。静态包含之间不可传参(写入代码的传参)
  3)动态包含是在触发是才开始编译,生成两个或多个源文件。生成不同的request对象,但是可以拿到相同的值。
  4)动态包含可以进行参数的传递
总结:
(本人:静态包含时,page指令的属性最好是“一样的”,
比如1)包含页面的contentType="txt/html;charset=gbk"而被包含页面的charset=gb2312这是就会报错
   2)由于是静态包含,所以如果被包含页面含有head等标签,会重写在包含页面。(运行,点击页面查看源代码,就会发现两个<head>标签,浏览器会自动过滤,有人说后来的标签会自

动覆盖前面的)