JSP基础

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 : 从域对象取出数据, 把数据显示到浏览器
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 212,884评论 6 492
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 90,755评论 3 385
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 158,369评论 0 348
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 56,799评论 1 285
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 65,910评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,096评论 1 291
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,159评论 3 411
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 37,917评论 0 268
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,360评论 1 303
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,673评论 2 327
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,814评论 1 341
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,509评论 4 334
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,156评论 3 317
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,882评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,123评论 1 267
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,641评论 2 362
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,728评论 2 351

推荐阅读更多精彩内容