zoukankan      html  css  js  c++  java
  • jsp学习

    1.jsp的脚本和注释
    jsp脚本:
    1)<% java代码 %> ------------------- 内部的java代码翻译到Service方法的内部
    2)<%= java 变量或表达式%> ------ 会被翻译成Service方法内部的out.print()
    3)<%!java代码%> --------------------- 会被翻译成Servlet的成员的内容

    jsp的注释:不同注释的可见范围是不同的
    1)Html注释:<!-- -->
    可见范围:Html源码,Jsp源码,翻译后的Servlet页面

    2)java注释 : // /**/
    可见范围:jsp源码 ,翻译后的Servlet

    3)jsp注释:<%-- --%>
    可见范围:jsp源码

    2.jsp的运行原理------jsp的本质就是Servlet
    jsp在第一次被访问时会被Web容器翻译成servlet,再执行

    过程:
    第一次访问---->helloServlet.jsp---->helloServlet_jsp.java---->编译运行
    PS:被翻译后的servlet在Tomcat的work目录中可以找到

    3.jsp的指令
    jsp的指令是指导jsp翻译和运行的命令,jsp包括三大指令:
    1)page指令 --- 属性最多的指令(实际开发中page指令默认)
    属性最多的一个指令,根据不同的属性,指导整个页面特性
    格式:<%@ page 属性名1= "属性值1" 属性名2= "属性值2" ...%>
    常用属性如下:
    language:jsp脚本中可以嵌入的语言种类
    pageEncoding:当前jsp文件的本身编码---内部可以包含contentType
    contentType:response.setContentType(text/html;charset=UTF-8)
    session:是否jsp在翻译时自动创建session
    import:导入java的包
    errorPage:当当前页面出错后跳转到哪个页面
    isErrorPage:当前页面是一个处理错误的页面

    2)include指令
    页面包含(静态包含)指令,可以将一个jsp页面包含到另一个jsp页面中
    格式:<%@ include file="被包含的文件地址"%>

    3)taglib指令
    在jsp页面中引入标签库(jstl标签库、struts2标签库)
    格式:<%@ taglib uri="标签库地址" prefix="前缀"%>

    4.jsp内置/隐式对象(9个)----- 笔试
    jsp被翻译成servlet后,service方法中有9个对象定义并初始化完成,我们在jsp

     

    脚本中可以直接使用这9个对象

    1)out对象
    out的类型:JspWriter
    out作用就是向客户端输出内容----out.write()
    out缓冲区默认为8kb,可以设置为0,表示关闭out缓冲区,内容直接写到response
    缓冲器

    2)PageContext对象
    jsp页面的上下文对象,作用如下:
    a.pageContext是一个域对象
    setAttribute(String name,Object obj)
    getAttribute(String name)
    removeAttrbute(String name)

    pageContext可以向指定的其他域中存取数据
    setAttribute(String name,Object obj,int scope)
    getAttribute(String name,int scope)
    removeAttrbute(String name,int scope)
    findAttribute(String name)
    ---依次从pageContext域,request域,session域,application域中获 取属性,在某个域中 获取后将不在向后寻找

    四大作用域的总结:
    page域:当前jsp页面范围
    request域:一次请求
    session域:一次会话
    application域:整个web应用

    b.可以获得其他8大隐式对象
    例如: pageContext.getRequest()
    pageContext.getSession()


    5.jsp标签(动作)
    1)页面包含(动态包含):<jsp:include page="被包含的页面"/>
    2)请求转发:<jsp:forward page="要转发的资源" />

    jsp静态包含和动态包含的区别
    静态包含:<%@ include file="xxx.jsp"> ----编译指定
    动态包含:<jsp:include file="xxx.jsp"/> ----动作
    区别:
    1.<%@ include file="xxx.jsp">为jsp的编译指令,其文件的包含发生在jsp向servlet转换的时期。
    <jsp:include file="xxx.jsp"/>为jsp的动作指令,其文件的包含发生在编译时期,也就是将java
    文件编译成class文件的时候

    2. 使用静态包含,包含页面与被包含页面的request对象为同一对象,因为静态包含只是将被包含的页面复制到包含的页面中;
    动态包含中 包含页面与被包含页面 不是同一个页面,被包含页面的request对象可以取到的参数范围要大一些,不仅可以取到传递到包含页面的参数,同样也能取得在包含页面向下传递的参数

    3、使用静态包含只会产生一个class文件,使用动态包含会产生多个class文件

  • 相关阅读:
    codeforces C. Cows and Sequence 解题报告
    codeforces A. Point on Spiral 解题报告
    codeforces C. New Year Ratings Change 解题报告
    codeforces A. Fox and Box Accumulation 解题报告
    codeforces B. Multitasking 解题报告
    git命令使用
    shell简单使用
    知识束缚
    php 调用系统命令
    数据传输方式(前端与后台 ,后台与后台)
  • 原文地址:https://www.cnblogs.com/houchen/p/11722609.html
Copyright © 2011-2022 走看看