ITPub博客

首页 > Linux操作系统 > Linux操作系统 > JSP2.0学习笔记

JSP2.0学习笔记

原创 Linux操作系统 作者:沉珂 时间:2010-09-26 01:08:29 0 删除 编辑
JSP2.0学习笔记
JSP的本质:JSP已经脱离的Java的类,实际上,JSP只是servlet的一种特殊形式。在运行前,每个JSP都由servlet编译转化成servlet。一个JSP对应一个Servlet,对于tomcat而言,JSP页面生产的servlet在work目录下面对应的web应用里。
   JSP必须在JSP服务器内运行;JSP文件必须转化成servlet才能运行;第一个访问JSP的会比较慢,因为要转化成servlet
以下是JSP的语法
1、JSP的注释:
     <%-- 注释的内容 -->
     HTML注释的格式:
     <!--注释内容-->
     HTML的注释内容,在浏览器的源码里看得到;JSP的注释部分,在浏览器里看不到
2、JSP声明:
   JSP里可以先声明变量和方法,然后在JSP页面的其他位置,调用这些方法或引用这些变量
    <%@ page contentType="text/html; charset=gb2312" language="java" %>
        
        
        
             声明测试
        
        <!-- 下面是JSP 声明部分>
        <%!
            //声明一个整形变量
            public int count;
            //声明一个方法
            public String info()
            return "hello";
        %>
        
            <%
            //将count 的值加工后输出
            out.println(count++);
            %>
        

            <%
            //输出info ()方法的返回值
            out.println(info());
            %>
        
        
        上面的例子就声明了一个方法和一个变量,并在另外的位置,做了引用
        打开多个浏览器,甚至可以在不同的机器上打开浏览器刷新该页面,发现每个客户端count 值是完全连续的,所有的客户端共享了同一个count 变量。这是因为: JSP 页面
会编译成一个Se凹let 类,每个Servlet 在容器中只有一个实例:而在JSP 中声明的变量是类的成员变量,成员变量只在创建实例时初始化,该变量的值将一直保存,直到实例销毁。

3、JSP表达式
     JSP提供了一种输出表达式值的简单方法,输出表达式值的格式如下:<%=表达式%>
     <%count++ %> 与上面的out.println的效果是一样的
4、JSP脚本:
   把Java代码镶嵌到HTML代码中,即为JSP脚本。所有能在java中运行的代码都可以通过JSP脚本运行
    <%@ page contentType="text/html; charset=gb2312" language="java" %>
        
        
            
                小脚本测试</T工TLE><br>            </HEAD><br>            <BODY><br>                <table bgcolor="9999dd" border="l"><br>                <! -- Java 脚本,这些脚本会对HTML 的标签产生作用一〉<br>                <%<br>                    for(int i = 0 ; i < 10 ; i++)<br>                    {<br>                %><br>                <br>                <!--上面的循环将使<tr>标签循环--><br>                <tr><br>                <td>循环值:</td><br>                <td><%=i%></td><br>                </tr><br>                <%<br>                    }<br>                %><br>                <table><br>            </BODY><br>        </HTML><br>        也可以把连接数据库嵌套在JSP中<br>5、JSP中的三个编译命令:<br>   a、page:针对当前页面的指令<br>   b、include:用于指定如何包含另一个页面<br>   c、tablib:用于定义和访问自定义标签<br>   <br>   a、page的语法:<br>       <%@ page<br>            [language="Java"]<br>            [extends="package.class"]<br>            [import= "package. class I package.*},…"]<br>            [session="true|false"]<br>            [buffer="none|8kb|size kb"]<br>            [autoFlush="true|false"]<br>            [isThreadSafe="true|false"]<br>            [info="text"]<br>            [errorPage="relativeURL"]<br>            [contentType="mimeType[;charset=characterSet]"|"text/html;charSet= ISO8859-1"]<br>            [isErrorPage="true|false"]<br>            %><br>            一个页面可以有多个page命令<br>        language:声明当前JSP 页面使用的脚本语言的种类,因为页面是JSP 页面,该属性的值通常都是java 。<br>        extends: 确定JSP 程序编译时所产生的Java 类,需要继承的父类,或者需要实现的接口的全限定类名。<br>        import: 用来导入包,下面几个包是默认自动导入的,不需要显式导入。默认导入的包有:java.lang.*;javax.servlet.*;javax.servlet.jsp.*;javax.servlet.http.*<br>        session:定义该页面是否需要使用HTTP session<br>        buffer:指定输出缓冲区的大小<br>        autoFlush:当输出缓冲区即将溢出时,是否需要强制输出缓冲区的内容<br>        info:设置该JSP 程序的信息,也可以看做其说明,可以通过Servlet. getServletInfo()方法获取该值。如果在JSP 页面中,可直接调用getServletInfo()方法获取该值,因为JSP页面的实质就是Servlet 。<br>        errorPage:指定错误处理页面。如果本程序产生了异常或者错误,而该JSP页面没有对应的处理代码,则会自动调用该指令所指定的JSP 页面<br>        contentType: 用于设定生成网页的文件格式和编码方式<br>        <br>    b、include:<br>        使用include 指令,可以将一个外部文件嵌入到当前JSP 文件中,同时解析这个页面中的JSP 语句(如果有的话)。这是个静态的include 语旬,不会检查所包含JSP页面的变化。<br>        include 既可以包含静态的文本,也可以包含动态的JSP 页面。静态的编译指令include ,是将被包含的页面加入进来,生成一个完整的页面。<br>        include 编译指令的语法:<br>        <%@include file="relativeURLSpec" %><br>        如果被嵌入的文件经常需要改变,建议使用<jsp:include>操作指令,因为它是动态的include 语句。<br>    <br>6、JSP的7个动作指令:<br>    1)、jsp:forward:执行页面的转向,将请求的处理转发给下一个页面<br>       即可以是动态的,也可以是静态的<br>       <jsp:forward page="{relativeURL|<%=expression%>}"><br>               <jsp:param ... /><br>       </jsp:forward>        <br>       例如:<br>       <jsp:forward page ="forward-result.jsp"><br>               <jps:param name="age" value="29"/><br>       </jsp:forward>        <br>       forward-result.jsp页面可以通过<%=request.getParameter("age")%>获取参数值<br>     2)、jsp:include:动态导入页面,格式如下:<br>         <jsp: include page="{relativeURL|<%=expression%>}" flush="true" %><br>        或者<br>        <jsp:include page="{relativeURL|<%=expression%>}" flush="true" %><br>            <jsp:param name="parameterName" value="patameterValue"%><br>        </jsp:include>  <br>        <br>        静态导入和动态导入的区别:静态导入是将被导入页面的代码完全插入,两个页面生成一个整体的Servlet; 而动态导入则在Servlet中使用动态导入,从而将页面引入。<br>        <br>        3)、jsp:useBean、jsp:getProperty、jsp:setProperty<br>            这三个指令与bean有关<br>            jsp:useBean:在jsp页面中初始化一个Bean实例<br>            jsp:setProperty:用于修改Bean实例的属性<br>            jsp:getproperty:用于获取Bean实例的属性<br>            <br>            useBean的使用格式:<br>            <jsp:useBean id="beanName" class="classname" scope="page|request|session|application" /><br>            id 属性是JavaBean 的实例名, class 属性确定JavaBean 的实现类。<br>                其中scope 属性用于确定JavaBean 实例的生存范围,该范围有以下四个值。<br>                page: 该JavaBean 实例仅在该页面有效。<br>                request: 该JavaBean 实例在本次请求有效。<br>                session: 该JavaBean 实例在本次session 内有效。<br>                application: 该JavaBean 实例在本应用内一直有效。<br>                <br>                setProperty格式:<br>                <jsp:setProperty name="BeanName" property="propertyName" value="value" /><br>                <br>                getProperty格式:<br>                <jsp:getProperty name="BeanName" property="propertyName" /><br>                <br>                看下面的JSP 页面代码:<br>                <%@ page contentType="text/html; charset=gb2312" language="java" %><br>                <HTML><br>                <HEAD><br>                <TITLE>javabean
               
               
                <!-- 实例化JavaBean 实例,实现类为lee.Person. 该实例的实例名为pl-->
               
                <!-- 设置pl的name 属性值-->
               
                               
                <!--输出pl的name 属性值-->
               

                <!--输出pl的age 属性值-->
               
               
               
                如果property 属性确定了name 属性,则要求JavaBean 中必须有setName 和getName方法。事实上,当使用setProperty和getProperty标签时,系统将自动调用setName和getName 方法来访问Person 实例的属性。
   
     

  
        

来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/385592/viewspace-674844/ ,如需转载,请注明出处,否则将追究法律责任。

下一篇: mysql学习笔记
请登录后发表评论 登录
全部评论

注册时间:2009-03-10

  • 博文量
    12
  • 访问量
    36752