zoukankan      html  css  js  c++  java
  • Jsp技术入门

    1.jsp脚本和注释

      jsp脚本

          1)<%java 代码%> -------- 内部的java代码翻译到server方法的内部

       2)<%= java 变量表达式%> ---- 会被翻译成server内部out.print()

       3)<%! java 代码%>-- 会被翻译成servlet的成员的内容

      jsp注释

       1)Html注释<!--注释内容 -->

         -------可见范围jsp源码、翻译后的servlet、页面

       2)java注释 //单行注释 /*多行注释*/

        -------可见范围jsp源码 翻译后servlet

       3)jsp注释<%--注释内容--%>

        -------可见范围jsp源码可见

    2.jsp运行运行原理 -- jsp的本质就是servlet

      jsp 第一次访问/文件被修改 会被Web容器翻译成servlet,

         在执行(在servlet在Tconcat服务器work文件夹中)过程:

       第一次访问/文件被修改 --->helloServlet.jsp -->helloServlet_.java->编译运行

    3.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个)

      

    还有一个是exception,错误处理

    名称

    类型

    描述

    out

    javax.servlet.jsp.JspWriter

    用于页面输出

    request

    javax.servlet.http.HttpServletRequest

    得到用户请求信息,

    response

    javax.servlet.http.HttpServletResponse

    服务器向客户端的回应信息

    config

    javax.servlet.ServletConfig

    服务器配置,可以取得初始化参数

    session

    javax.servlet.http.HttpSession

    用来保存用户的信息

    application

    javax.servlet.ServletContext

    所有用户的共享信息

    page

    java.lang.Object

    指当前页面转换后的Servlet类的实例

    pageContext

    javax.servlet.jsp.PageContext

    JSP的页面容器

    exception

    java.lang.Throwable

    表示JSP页面所发生的异常,在错误页中才起作用

      1)out对象
              out 的类型 jspWriter

          作用就是想客服端输出内容

          ---->out.write();

            out的缓冲区默认是8kb可以设成0

          ---->-buffer=“0kb”,关闭后直接写到response缓冲区器中

      2)pageContext对象(小重要)

        1.pageContext对象的作用和性质

          jsp页面的上下文对象,作用如下

          page对象与pageContext对象不是一回事

          pageContext是一个域对象

        2.pageContext对象的常用方法

           1.存取数据

          setAttribute(String name,Object obj)

          getAttribute(String name)

          removeAttrbute(String name)

          向其他域中写入/读取数据  

          setAttribute(String name,Object obj,int scope)

          getAttribute(String name,int scope)

          removeAttrbute(String name,int scope)

          findAttribute(String name)

          ---在所有域中查找该名称的数据

          ---找到则返回,不再继续寻找,域从小到大

          ---依次pageContext域->request域->session域->application域

        2.pageContext可以获得其他8大隐式对象

            用于传参的封装

            调用例子:

              pageContext.getRequest()

              pageContext.getSession()

    5.jsp标签(动作)

           1.页面包含(动态包含):<jsp:include page ="被包含的页面">

        2.请求转发<jsp:forward page ="要转发的资源">

    6.补充

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

          静态包含:

    <%@include file ="name.jsp" %>
    

            动态包含

    <jsp:include page = "name.jsp"></jsp:include>
    

          静态页面文件是两个文件翻译后只有一个java文件,合并

          动态的页面文件是两个翻译后还是两个java文件

      

      2.四大作用域的总结: 

           1.page域:当前jsp页面范围

          2.request域:一次请求

          3.session域:一次会话

          4.application域:整个web应用 

      3.JSP行为

    jsp:include 用于在当前页面中包含静态或动态资源
    jsp:useBean 寻找和初始化一个JavaBean组件
    jsp:setProperty 设置 JavaBean组件的值
    jsp:getProperty 将 JavaBean组件的值插入到 output中
    jsp:forward 从一个JSP文件向另一个文件传递一个包含用户请求的request对象
    jsp:plugin 用于在生成的HTML页面中包含Applet和JavaBean对象
    jsp:element 动态创建一个XML元素
    jsp:attribute 定义动态创建的XML元素的属性
    jsp:body 定义动态创建的XML元素的主体
    jsp:text 用于封装模板数据
  • 相关阅读:
    宽度高度sizeWithFont:constrainedToSize:lineBreakMode的使用
    端口错误安卓模拟器不能启动:The connection to adb is down, and a severe error has occurred的解决办法
    树磁盘[HBase] LSM树 VS B+树
    请求方法Jsp&servlet面试题
    数组最小(百度面试题目)对升序数组,求数组中绝对值最小的元素
    类代理java设计模式动态代理(简单笔记)
    数据插入difference between count(*) and count(col) in the query
    跟踪查看oracle 执行计划获取的几种方式
    类型字节oracle 增强型时间类型以及postgresql时间类型
    类方法[笔记]Java基础加强(57天)2010年Java高新技术_张孝祥
  • 原文地址:https://www.cnblogs.com/FlyBlueSky/p/8979290.html
Copyright © 2011-2022 走看看