zoukankan      html  css  js  c++  java
  • 13-Java-JSP知识梳理

    一、JSP了解

          JSP(java server pages,服务器页面),可理解为HTML+ Java = = JSP,它可生成动态的HTML(拼标签)。是以.jsp为后缀的文件,

       内容是以标签为主体,可以内联java代码,本质上是servlet。

    二、JSP文件创建

      第一步:创建一个web项目,步骤见https://www.cnblogs.com/qinqin-me/p/12256095.html

        第二步:在项目文件夹下的webRoot下创建.jsp结尾的文件

        第三步:jsp文件的默认编码为:ISO-8859-1,需修改为utf-8,步骤如下:

            点击Window->点击Preference->在搜索框中输入jsp->找到JSP并点击->在右侧的Encoding下拉框中向上翻选中UTF-8

    三、JSP引擎

      大概了解

          JSP引擎和JSP容器指的同一样东西,他们都指用来统一管理和允许Web应用程序的软件,常见的JSP引擎有Tomcat、JRun等,最常用的就是Tomcat。

       安装JSP引擎的计算机,其实就是Web服务器。当浏览器要访问一个JSP文件时,JSP文件会经过JSP引擎转换为一个Servlet,被编译成class,然后通过class

       生成的的对象给用户进行响应。

        JSP执行流程

          首先请求JSP引擎,将文件生成java文件,再将java文件编译成class文件,再通过class创建对象,然后给用户响应

    四、JSP页面组成部分

      1.静态内容

      2.指令

        JSP指令用来设置整个JSP页面相关的属性,指令可以有多个属性,以键值对的形式表示,并用空格隔开

        1)与页面相关的page指令:设置页面相关的属性

          <%@page 属性1 = "属性值1"  属性2 = "属性值2"  属性3 = "属性值3" ...%>

          

        2)与文件引入相关的include指令:将一个外部文件嵌入到另一个JSP或HTML文件,同时解析这个页面中的JSP语句

          <%@include file = "hh.html"%>

        3)与标签相关的taglib指令:使用标签库定义新的自定义标签

          <%@taglib url = "tablibburl" prefix = "tagpre"%>

          

          这里对于以JSTL标签库为例的使用可看:https://www.cnblogs.com/qinqin-me/p/12339977.html

      3.表达式

        提供的是一种特殊的JSP语法格式,用来将java中的变量输出到页面上,是出现在__jspService方法中的

        在Servlet中所生成的代码为:

          out.print(变量名);

        在JSP文件中使用如下:

           <%=变量名或是有返回值的方法%>

      4.小脚本

        在JSP文件中编写的java代码,在引擎解析后,也是出现在__jspService方法中的

        在JSP文件中使用如下:

          <%

            <%--写任何的java代码(可以是定义的变量,编写的java语句,不能定义方法)--%>

            show();

            System.out.println("这就是小脚本的作用");

          %>

      5.声明

        其实就是Java程序中的成员声明,可以用来声明成员变量、成员方法。此处的声明都是出现在类体中的而不是出现在方法体中的

        在JSP文件中使用如下:

          <%!

             private Integer num = 10;

             public void show(){

               System.out.println(num);

             }

          %>

      6.注释

         JSP注释分三种:

            HTML注释:(客户端可见)

              <!--html注释-->

            JSP注释:(客户端不可见)

              <%--JSP注释--%>

            JSP脚本注释:

              //单行注释

              /*多行注释*/

    五、案例

      1.JSP代码

     1   <body>
     2           <%
     3               List<order> list = DealWithorder.findAll();
     4           %>
     5           <input type = "text">
     6         <input type = "button" value = "搜索">
     7         <table>
     8             <tr>
     9                 <th>订单表
    10                     <input type = "button" value = "全删">
    11                     <input type = "button" value = "添加">
    12                 </th>
    13             </tr>
    14             <tr>
    15                 <td>下单时间</td>
    16                 <td>姓名</td>
    17                 <td>详细地址</td>
    18                 <td>预留电话</td>
    19                 <td>车牌号码</td>
    20                 <td>故障描述</td>
    21                 <td>预约时间</td>
    22                 
    23             </tr>
    24             <%
    25                 for(order o : list){ 
    26                     System.out.println(o);
    27             %>    
    28             <tr>
    29                 <td><%= o.getTime() %></td>
    30                 <td><%= o.getName() %></td>
    31                 <td><%= o.getAddress() %></td>
    32                 <td><%= o.getPhonenum() %></td>
    33                 <td><%= o.getCarnum() %></td>
    34                 <td><%= o.getProblem() %></td>
    35                 <td><%= o.getDatetime() %></td>
    36                 <td>
    37                     <input type = "button" value = "删除">
    38                     <input type = "button" value = "修改">
    39                 </td>
    40             </tr>
    41             <%
    42                 }
    43              %>
    44              <tr>
    45                  <td colspan = "8">
    46                      当前 页/共   页     首页   上一页  1 2 3 ... 下一页    尾页
    47                  </td> 
    48              </tr>
    49         </table>
    50   </body>

      2.页面效果

          

    六、JSP九大内置对象

      大概了解

          内置对象(又称隐含对象),在JSP中不需要创建(由服务器/容器创建),可以直接使用的对象

      内置对象

          out:

            out对象是JSPWriter类的实现,是向客户端输出内容常用的对象

            类型:JSPWriter

            作用:向客户端进行响应字符打印流

          request(四大作用域对象之一,important):

            类型:HttpServletRequest

            作用:请求对象,包含了请求信息

            getParameter("key");获取用户提交的表单信息

            setCharcterEncoding("字符集");设置请求编码格式,防止乱码

            setAtrribute("key","value");将数据保存到Request范围内的变量

            forward(String url);转发

            getParametersValues(String name);返回包含参数name所有值的数组

          response(important):

            类型:HttpServletResponse

            作用:响应对象,用来给用户进行响应

              addCookie();将一个Cookie对象发送到客户端

              sendRedirect(String url);重定向

          session(四大作用域对象之一,important):

            类型:HttpSession

            作用:会话对象,用来进行数据的共享和会话的跟踪

            setMaxInactiveInterval(int num);设置session对象的有效活动时间

            invalidate();销毁当前的session

          application(四大作用域对象之一,important):

            类型:ServletContext

            作用:全局的Servlet上下文对象,每个应用只有一个,从应用启动,就创建了,直到应用消亡,对象才被释放。

          config:

            类型:ServletConfig

            作用:Servlet配置对象,较少使用

          page:

            类型:Object

            作用:指的当前JSP页面对象

          pageContext(四大作用域对象之一,important):

            类型:pageContext

            作用:页面的上下文,用来在一个页面中进行数据的共享与通信

          exception:    

            类型:Throwable

            作用:常用于错误处理的页面,用来收集其他页面产生的错误信息,只有isErrorpage="true"时,才会产生这个对象

    七、JSP四大作用域

      大概了解

            为了页面、请求和用户之间传递和共享数据,JSP提供了四个不同的作用域:pageContext(页面作用域)、request(请求作用域)、

          session(会话作用域)、application(应用程序作用域),这些作用域规定了数据可以传递和共享的范围以及数据的存活时间。

        四大作用域(由上向下,作用域范围由小到大)

          pageContext:一个页面

          request:一个请求(可能包含多个页面)  

          session:一次会话(可能包含多次请求,默认数据存储时间30分钟)

          application:一次服务(包含多次会话)

          常用方法:

            setAtrribute("key","value");将数据保存在对应作用域范围内的变量

            Object val = getAtrribute("key");将数据从对应作用域范围内取出来

            removeAtrribute("key");将指定数据从对应作用域范围内的删除

         1.添加数据到对应的作用域

          

          2.将数据从对应的作用域取出来

          

        3.方式二取值结果(从作用域小的先取值)

          

        4.将数据转发到页面

          

          

          

         5.将数据重定向到页面

          

          

          

        6.请求转发和请求重定向的区别

          请求重定向:客户端行为,response.sendRedirection("redirect.jsp");从本质上等于两次请求,前一次的请求对象不会保存,地址栏的url地址会改变

          请求转发:服务器行为,request.getRequestDispatcher("forward.jsp").forward(request,response);是一次请求,转发后请求对象会保存,地址栏和url地址不会改变

    八、EL表达式

         用于快速从域对象中取出信息,并输出至网页

         格式:

           取出基本数据类型的格式:${key}

           取出对象的属性的格式:

                ${对象的key.属性名}

           取出数组/集合中对象的属性值:

                  方式1:${数组的key[下标].属性名称}

                  方式2:${数组的key[下标]["属性名"]}

                  方式3:${数组的key[下标][属性名的key]}

            EL表达式获取数据流程:

            采用就近原则,按照四大作用域由小到大的顺序依次取数据。

    九、JSP的六大动作

      include动作

        用于引入jsp文件,在转换时期,是没有引入的,只有当执行到include代码的时候才会被动态的编译载入

        <jsp:include page = "引用文件的地址" flush = "false"></jsp:include>

        

        include动作与include指令区别:

           include指令是JSP程序的转换时期,将引入的文件嵌入,然后容易进行编译 

      userbean、setProperty、getProperty动作

        用于给实体对象赋值

        <jsp:userbean id = "别名"  class = "全限定名" scope = "作用范围" />

        <jsp:setProperty property = "属性名称" name = "别名" value = "值"/>

        <jsp:getProperty property = "属性名称" name = "别名" />

      forward动作、param动作

        <jsp:forward page = "转发目标文件的地址">

          <jsp:param value = "值" name = "别名"/>

          <jsp:param value = "值" name = "别名"/>

        </jsp:forward>

      

  • 相关阅读:
    Discuz安装(centos+宝塔)
    宝塔面板安装
    Java中设置classpath、path、JAVA_HOME的作用
    【JDK和Open JDK】平常使用的JDK和Open JDK有什么区别
    提取Chrome插件为crx文件
    Python 01
    Java 01
    HTML5学习之FileReader接口
    formidable上传图片
    Mac系统下brew安装指定版本的nodejs小笔记
  • 原文地址:https://www.cnblogs.com/qinqin-me/p/12339946.html
Copyright © 2011-2022 走看看