JSP基础

作者: 奋斗的老王 | 来源:发表于2016-09-12 11:44 被阅读32次

    Jsp基础

    1)Jsp的执行过程 :

    • tomcat服务器完成 :
      • jsp文件->翻译成java文件->编译成class字节码文件-> 构造类对象-> 调用方法

    2)Jsp语法

    • jsp表达式: <%=变量或表达式%> 向浏览器输出变量或表达式计算的结果
    • jsp脚本: <% java代码 %> 执行java代码 原理:翻译到_jspService()方法中
    • jsp声明: <%! 变量或方法 %> 声明jsp的成员变量或成员方法
    • jsp注释: <%!-- jsp注释 --%> 用于注释jsp代码, 不会翻译到java文件中, 也不会执行
    <%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>
    
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
    <html>
      <head> 
        <title>Jsp语法</title>  
      </head>
    
      <body>
        <!-- jsp表达式  -->
        <%
            //变量
            String name = "eric";
            int a = 10;
            int b =20;
         %>
        <%=name %>  
        <br/>
        <%=(a-b) %>  
        <hr/>
        <!-- jsp脚本  -->
        <%
            //生成随机数
            Random ran = new Random();
            float num = ran.nextFloat();
         %>
         随机小数:<%=num %>
         <hr/>
         <!-- 穿插html代码 -->
         <%
            for(int i=1;i<=6;i++){  
          %>
            <h<%=i %>>标题<%=i %></h<%=i %>>
         <%
          }
          %>
          <hr/>
          <!-- 练习: 使用脚本和html代码显示99乘法表 -->
         <%
            for(int i=1;i<=9;i++){//行
                for(int j=1;j<=i;j++){//公式
         %>         
                <%=i %> x <%=j %>=<%=(i*j) %> 
            <%          
                }
            %>
               <br/>
            <%  
            }
          %>
          <%
            String age = "20";
            
            /* 脚本中不能声明方法
            public String getAge(){
                return age;
            }
            */
           %>
          
          
          <!-- jsp声明 -->
          <%!
           //变量
            String name = "jacky";
            
            public String getName(){
                return name;
            }
            
            /*jsp声明中不能重复定义翻译好的一些方法
            public void _jspInit(){
            
            }
            */
           %>
           <!-- html注释 -->
          <%-- <jsp:forward page="/01.hello.jsp"></jsp:forward> --%>
           <%-- jsp注释 --%>
           
      </body>
    </html>
    

    3)jsp的三大指令

    1. include指令 : 用于包含其他页面 (原理: 先合并再翻译, 叫静态包含)
      <%@include file="common/header.jsp"%>
    
    1. page指令 : 告诉tomcat服务器如何把jsp文件翻译成java文件
    - language : 翻译的动态语言
    - import : 类导入
    - jsp文件编码问题:
       1. pageEncoding: 告诉tomcat服务器使用什么编码翻译jsp文件(jsp->java文件)
       2. contentType: tomcat服务器发送给浏览器的数据编码(tomcat服务器->浏览器)
    
    <%@ page 
                  language="java" 
                  import="java.util.*,java.text.*" 
                  pageEncoding="utf-8"
        %>
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
    <html>
                <head> 
                    <title>page指令</title>  
                </head>
                <body>
                    <%
                        new Date();
                        new SimpleDateFormat();
                    %>
                    老王
                </body>
    </html>
    
    - 异常错误相关的:
       1. errorPage:  指定当前jsp页面的错误处理页面
       2. isErorrPage:  指定当前页面是否为错误处理页面。false->不是错误处理页面,则不能使用exception内置对象; true->错误处理页面, 可以使用exception内置对象
       - 配置全局的错误处理页面 : 
    
    <!-- 全局错误处理页面配置 -->
      <error-page>
        <error-code>500</error-code>
        <location>/common/500.jsp</location>
      </error-page>
      <error-page>
        <error-code>404</error-code>
        <location>/common/404.html</location>
      </error-page>
    
    - session : 是否开启session功能。false->不能用session内置对象;true->可以使用session内置对象
    - buffer : jsp页面的缓存区大小
    - isELIgnore : 是否忽略EL表达式
    
    1. taglib指令

    Jsp最佳实践

    • Servlet技术: 开发动态资源。是一个java类,最擅长写java代码
    • jsp技术: 开发动态资源。通过java代码最擅长输出html代码。
    • 在web项目中涉及到逻辑:
      1)接收参数 servlet做
      2)处理业务逻辑,返回结果 servlet做
      3)显示数据到浏览器 jsp做
      4)跳转到其他页面 servlet做
    • servlet+jsp模式 : servlet的数据->jsp页面, 使用域对象 共享数据
      • servlet: 接收参数; 处理业务逻辑; 把结果保存到域对象中; 跳转到jsp页面
      • Jsp : 从域对象取出数据, 把数据显示到浏览器

    相关文章

      网友评论

        本文标题:JSP基础

        本文链接:https://www.haomeiwen.com/subject/xresettx.html