• Java Server Pages----JSP


     1、jsp(实质上就是一个servlet)
    (1)jsp脚本:
       1)<% java代码 %>--相当于写在方法里;所以不能定义方法;
       2)<%= java变量或表达式%>---相当于写在out.print()里面
       3)<%!java代码%>---相当于成员变量;所以能定义方法;
    (2)jsp注释:
       1)//java单行注释    jsp源码、翻译后的servlet、
       2)/*java多行注释*/   jsp源码、翻译后的servlet、
       3)<!--html注释-->     jsp源码、翻译后的servlet、html源代码
       4)<%--jsp注释--%>     jsp源码、
    (3)jsp运行原理
       第一次访问index.jsp --> index_jsp.java [Tomcat下的work目录下] --> 编译运行;
    (4)jsp三大指令
      1)page指令:
          language:jsp脚本可以嵌套的代码,但是只能是java;
          pageEncoding:当前jsp脚本的编码
          contentType:"text/html; charset=UTF-8"相当于响应的中文乱码问题解决;
          session:"true","false";
          import:导包;
          errorPage:当前页面出错跳转到其他页面;
          isErrorPage:当前页面是一个处理错误的页面;
      2)include指令:
          静态:<%@ include file="被包含的文件地址"%>;动态:<jsp:include page="被包含的页面"/>;
          静态包含:被包含文件不编译,直接以Html进入文件;动态包含:被包含文件编译,指向被包含文件地址,进行编译;
      3)taglib指令;
    (5)九大内置对象:out、request、response、config、session、application、page、pagecontext、exception、
    (6)out对象:out缓冲区的内容添加到response缓冲区、默认为buffer="8kb",设置"0kb"时直接进入response缓冲区;
    (7)pageContext对象:pageContext可以向指定的其他域中存取数据;
                findAttribute(String name)依次从pageContext域,request域,session域,application域中获取属性,
                在某个域中获取后将不在向后寻找
        pageContext.getRequest();可以获得其他8大隐式对象
    (8)jsp标签(动作):
        1)页面包含(动态包含):<jsp:include page="被包含的页面"/>
        2)请求转发:<jsp:forward page="要转发的资源" />

    静态包含与动态包含的区别?

    静态包含在翻译的时候,将多个JSP合并翻译成了一个Servlert。
    动态包含在翻译的时候,每个JSP文件都翻译成了对应Servlet,在程序运行加载到JVM中的时候动态合并
    动态包含可以传递参数。

    <%@ page language="java" contentType="text/html; charset=utf-8"
        pageEncoding="utf-8"%>
    <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    <html>
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
    <title>Insert title here</title>
    </head>
    
    <body>
    <!-- include的静态包含 -->>
    <%@ include file="/Header.jsp"%>
    <h1>这是内容页!!!</h1>
    <%@ include file="/Footer.jsp"%>
    </body>
    
    </html>
    <%@ page language="java" contentType="text/html; charset=utf-8"
        pageEncoding="utf-8"%>
    <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    <html>
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
    <title>Insert title here</title>
    </head>
    <body>
    <h1>这是include1</h1>
    </body>
    </html>
    <%@ page language="java" contentType="text/html; charset=utf-8"
        pageEncoding="utf-8"%>
    <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    <html>
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
    <title>Insert title here</title>
    </head>
    <body>
    <!--include的动态包含--> <jsp:include page ="/include1.jsp"/> <h1>这是include2</h1> </body> </html>
    <%@ page language="java" contentType="text/html; charset=utf-8"
        pageEncoding="utf-8"%>
    <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    <html>
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
    <title>Insert title here</title>
    </head>
    <body>
    这是forward1.jsp
    <!--include的动态转发-->
    <jsp:forward page="/forward2"></jsp:forward> </body> </html>
    <%@ page language="java" contentType="text/html; charset=utf-8"
        pageEncoding="utf-8"%>
    <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    <html>
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
    <title>Insert title here</title>
    </head>
    <body>
    这是forward2.jsp
    </body>
    </html>
  • 相关阅读:
    搭建Jumpserver
    支付功能流程图
    我是如何招聘程序员的
    从问题域看hadoop的各种技术
    转一篇做BI项目的好文
    关于数据倾斜的问题
    技能的十一个级别
    企业计划体系的变迁:从ERP到APS再到SCP
    别浪费自己的高学历
    一个CTO谈自己的技术架构体系
  • 原文地址:https://www.cnblogs.com/time-to-despair/p/9856941.html
Copyright © 2020-2023  润新知