黑马程序员技术交流社区

标题: jsp学习笔记 [打印本页]

作者: vipzh    时间: 2012-12-4 14:32
标题: jsp学习笔记
1:什么是Jsp
             Jsp(Java Server Page)是一种Java服务器端技术。一个Jsp页面包括三个方面的内容
             Html,JavaScript,Jsp程序片断
           2:如何写Jsp脚本
               把Jsp脚本写在<%      %>里面
                把Js脚本写在<script>代码</script>里面
            3:可见Jsp实际上就是在Html语言中嵌入Jsp脚本
                  4:编写第一个Jsp应用程序
           Jsp的执行过程:
            浏览器--->请求-------->Web服务器---->找到Jsp页面---->编译
                                                                  |
                                                                  |
                                  浏览器<-------响应<------Serverlet     
            从该执行过程不难看出Jsp在最后实际上要变成Serverlet之后才能发给客户端
           Jsp与Servelet的区别:
            1)Jsp是在Serverlet的基础上发展起来的
            2)Serverlet一般用于处理没有界面的业务逻辑,如果处理有界面的程序,就显示比较笨拙
              Serverlet用out.println一句一句的输出Html标记(界面),当整个网页非常多且复杂的时候
              就会有很多的out.println来输出html标记
            3)Jsp很好的解决了这个问题,对于Html标记可以直接书写,只有需要写程序代码时才以
              <%     %>的方式加入
            4)Jsp把界面部分与代码部分分离,这样可以在开发网站时实现分工。美工只管界面部分,而
              程序员只管代码部分
                                                         
            Jsp的语法:
              A)Jsp的输出:out.println用来输出
                 1)输出字符串:out.println("字符串")
                 2)输出Java脚本:out.println("<script>alert('我是真的爱你');</script>");
                 3)输出Html标记:out.println("<a href=http://www.sina.com>新浪网</a>");
                    链接到QQ对话:out.println("<a target=blank href=http://wpa.qq.com/msgrd?v=1&uin=16663755&site=walmart&menu=yes>留言</a>");
             B)表达式。<%=Java表达式%>。表达式后面不要加分号
                 例如:<%=Math.max(100,90)%>,<%=3+4*5%>等
             C)Scriptlet:
                Scriptlet就是在<%.....%>里面嵌入Java代码。它在形式上与表达式的区别就是在
                <%...%>里面没有"=",而且中间是一段Java代码,不是表达式,每条语句要以分号
                结尾。举例说明
             D)声明:<% ! Java变量,方法 %>
                1):声明变量:  <%! int a=3,b=4 %>
                              
                2)声明类:
                       <%!
    public class stud
     {
            public String GetId()
          {
                                                   return "W1";
                                                 }
                                 }
                        %>     
                3)声明函数:                        
                    <%!
    public  int sum(int a,int b)
    {
            return a+b;
                        }
                    %>
             说明:
              1)声明变量即可以在<%!     %>只能够声明,不能实现
                比如:<%! int a=3,b=4,c; c=a+b;%>错误<%! int a=3,b=4,int c=a+b;%>正确
              2)声明变量既可以<%! %>中声明,也可以在<%中声明%>。
                 <%! %>中声明的变量:servlet(Jsp最终要转换成Serverlet)的实例变量。
                 根据Servlet的原理,所以的客户端只共享一个Serlvet的实例,所以在此处定义的
                 变量可以其它的页面来共享,也就是具备有继承性
                 <%   %>中声明的变量:是局部变量,只能够给本页面使用,不具备继承性
                         <%!
      int i=0; //实例变量,有继承性
   %>
   <%
                  i++;
                             out.println(i);
                         %>
                         与的区别
                           <%
                             int i=0; //局部变量,无继承性
                  i++;
                             out.println(i);
                         %>
              3)但是声明函数与类只能够在<%! %>中声明,而不能在<%  %>
              4)一般声明变量都在<% %>中声明,而声明函数与类都在<%!中声明%>
              5)为了代码的可读性一般都把类用一个单独的Java文件来保存,而不会在一个
                 Jsp页面中去定义

          E)Jsp指令:
             1)Jsp指令控制对整个页面的处理。
             2)Page指令:
                 1:导入Java包,与自定义的类
                   格式:<%@ page import="aspproject.Student,java.util.*"%>
                    说明:自定义的类一定要放在WEB-INF下面的classes下面,不过只要引用了一个类,
                          Jbulider会自动的创建一个classes文件夹,并放入相应的类
             3)include指令:
               1:该指令用于把一个Jsp页面包含到另外一个Jsp页面中
               2:格式:<%@ include file="HeadPic.jsp" %>
                 说明:嵌入一个页面是为了重用这个页面,而不必在每一个页面上写一些相同的代码。
                       例如:在很多的Jsp页面中都要在顶部显示同样的图片,这时就不必在每个页面
                       都去包含这些图片,而是单独写一个文件来完成此任务,然后在其它的Jsp页面中
                       利用include包含即可

作者: 睡中忘了的睡    时间: 2012-12-4 14:49
{:soso_e179:}占个座




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2