zoukankan      html  css  js  c++  java
  • javaweb

    1. 基本元素

    • 1.jsp注释:是对web服务器的注释
    • 2.声明:(不要忘记加分好)

    定义成员变量或方法
    <%! ; %>     <%! private String name; %>


    <% String name="bob"; %>   方法级别代码

        <%!
          //成员变量,成员方法
          private String name;
          public void fun(){
              
          }
        %>
        <%
          //局部变量
          String name = "中国";
          out.print(name);
          fun();
        %>
      <%=this.name%>
      <%= 表达式 %>
    • 3.表达式:(动态的输出信息)不要加分号

    <%= %>
    e.g <%= name %>

    • 4.脚本元素(scriptlet)

    <% Java代码 %>
    e.g
    <%
    String name="bob";
    for(int i=0;i<5;i++){
    System.out.print("");
    }
    %>

    • 5.配置欢迎界面:web.xml

    <welcome-file-list>
    <welcome-file>
    index.jsp(添加)
    </welcome-file>
    </welcome-file-list>

    • 6.引入tomcat服务器

    new-server-add

    • 7.include指令

    可以在一个jsp页面中包含另一个jsp页面,而且这两个页面的代码是共有的,
    因此这两个jsp页面里的脚本不能重复定变量

    在开发中,如果一些jsp页面要用到一个jsp页面的功能,比较适合采用该指令
    例如,系统有很多模块,每个模块又有很多jsp,每个jsp都要验证用户的权限,权限验证就可以做成一个jsp

    • 8.page指令:用来定义页面的全局属性,如页面的编码方式、语言等

    为页面引用额外的类包引用时
    <%@ page import="java.sql.Statement" %>

    此外,我们为页面指定脚本语言时,也会用到该指令,包含汉字 通常使用utf-9或GBK编码

    作用域:
    整个jsp页面和使用include包含进来的jsp页面---整个jsp页面和这些被包含文件被称为“平移单元”

     2. 作用域,生命周期,原理

    e.g 

    <%
        int a = 10;
    %>
    <%=a%>
    <%!
        private int a = 100;
        public void fun(){
            
        }
    %>
    <%=this.a++ %>

      不断刷新页面,发现访问的是同一个jsp对象。a被加一

      当jsp内容发生变化,再次请求时,会被重新翻译成.java文件,并且编译成.class文件。下次访问的jsp[servlet]其实是同一个对象。一般情况下,第一次访问jsp文件比较慢

      jsp实例化过程:

    • 访问jsp文件
    • 服务器将jsp翻译成.java文件
    • 编译成.class文件
    • 实例化对象
    • 调用service方法
    • 响应浏览器

      servlet原理与此类似

    3.jsp三大指令标签

      指令标签:<%@ 指令名 prop1="" prop2="" %>

      3.1 page指令

    • 指定jsp页面  【后台编码】
      <%@ page contentType="text/html;charset=UTF-8" language="java" %>
    • 导包   
      <%@ page import="java.io.FileInputStream,java.util.*,.." %>
    • errorPage,isErrorPage  
      error.jsp

      <%@ page contentType="text/html;charset=UTF-8" language="java" isErrorPage="true" %> <html> <head> <title>Error</title> </head> <body> 这是错误信息 </body> </html>

       errorPage:如果页面中出现错误,则跳转【转发】到指定的错误页面

      <%@ page contentType="text/html;charset=UTF-8" language="java" errorPage="/error.jsp" %>
      返回的状态码为500

     使用web.xml配置errorPage:  

        
    <!-- 发生500错误 -->
      <error-page> <error-code>500</error-code> <location>/error.jsp</location> </error-page> <!--发生运行时异常,就转发到xxx--> <error-page> <exception-type>java.lang.RuntimeException</exception-type> <location>/error.jsp</location> </error-page>
    • autoFlush : true | false  用于指定当输出流满了后,是否自动输出 【基本不用】
    • buffer : 8Kb  【基本不用指定】
    • extends:用于指定jsp继承的父类,【基本不用】
    • isELIgnored :默认为false
    • session:是否使用session
    • isThreadSave:指定当前jsp是否为线程安全,默认为false【支持并发访问,基本废弃】

    3.2 include指令 

      静态包含:相当于将file中的文件直接放在该位置,include指令告诉容器:复制被包含文件汇总的所有内容,再把它粘贴到这个文件中【注意web容器采用读取文件的访问将被include的内容读取,读取时是根据被include的文件的pageEncoding编码来读取的,然后将整个内容整合成一个java文件,因此需要在该文件中设置编码】

    <body>
    <%@ include file="included.jsp" %>
    <div class="div1">
    </div>
    <%@ include file="included.jsp" %>
    </body>

      静态包含:jsp在被编译之前已经合并成了一个jsp,然后在被编译成一个.class文件

      

    注意:<jsp:include page = "">  这是动态包含

      

    3.3 tablib:引入标签库

      格式:<%@ taglib prefix="" uri="" %>

      使用时要加上前缀。

      URI:用于指定标签库的位置。

      使用jstl:

    • 导入jar包:jstl.jar,stardard.jar
    • <%@taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>

     end

  • 相关阅读:
    希尔排序-Python
    顺序表为什么要在定义时分配空间大小
    pip install -r requirements.txt安装问题
    python小白系列2—python常用工具:pycharm
    python小白系列1—python安装,初识Anaconda
    Python Traceback模块:捕获更详细的异常报错信息
    pycharm项目中的.idea文件夹是干什么用的?可以删除吗?
    python多线程使用
    《统计学习方法》自学笔记—1.概论
    JAVA项目中的常用的异常处理情况
  • 原文地址:https://www.cnblogs.com/zhuxiang1633/p/9604397.html
Copyright © 2011-2022 走看看