JavaWeb---JSP + 三个指令 + 九个对象 + 四个作用域

JSP:(Java Server Pages)是JavaWeb服务器端的动态资源

作用:显示数据和获取数据,简化书写
原理:本身是一个servlet
组成:html + JSP脚本(java代码片段)+ JSP动态标签
JSP脚本:Java代码片段,它分为三种:

<%....%>:  Java代码    ==  service()可以写的内容
<%=...%>: 输出语句  输出到页面上
<%!...%>:  Java类成员定义,例如成员变量,方法等(不用)


       

 

 

    输出变量:     

           <%=s1 %><br/>
            向客户端输出: <%out.print("你好!");%>
            <%! 成员变量,成员方法 %>

JSP注释
    <!-- -->,Html注释:它会出现在JSP编译中,并发送到客户端,但客户端浏览器不会显示它。
    <%----%>,JSP注释:它不会出现在JSP编译中(跳过),不发送到客户端浏览器


JSP指令:作用:用于配置JSP页面,导入资源文件

1.page:页面指令:
        * 格式:
                <%@ 指令名称 属性名1=属性值1 属性名2=属性值2 ... %>
        page指令的常用属性:
                import:等同与import语句
                        <%@ page import="java.util." %>
                        <%@ page import="java.util., java.net." %>
                        在一个JSP页面中可以给出多个page指令,而且import是可以重复出现的
                pageEncoding:指定当前页面的编码
                        默认为contentType的值;
                        如果pageEncoding和contentType都没指定,默认值为iso-8859-1
                contentType:置响应体的mime类型以及字符集
                        等同与调用response.setContentType("text/html;charset=xxx");
                        默认为pageEncoding的值;
                errorPage:错误页面
                        如果当前页面出现异常,则跳转到errorPage指定的jsp页面。
                        例如:<%@ page errorPage="a.jsp" %>
                isErrorPage:错误页面跳转开关
                        isErrorPage="true",可以使用内置对象exception,能跳转到错误页面
                autoFlush:自动刷新
                        当autoFlush为true时,表示out流缓冲区满时会自动刷新。默认为true
                buffer:指定out流的缓冲区大小,默认为8KB
                isELIgnored:当前JSP页面是否忽略EL表达式,
                            默认为false,即支持EL表达式
        page指令不常用的属性:
                language:当前JSP编译后的语言!默认为java
                info:当前JSP的说明信息
                isThreadSafe:当前JSP是否执行只能单线程访问,默认为false,表示支持并发访问
                session:当前页面是否可以使用session,默认为false,表示支持session的使用。
                extends:指定JSP真身的父类!

2.include:静态包含指令
        格式:  <%@include file="页面"%>  
        作用:    包含指定的页面
        静态包含和动态包含:
            1.静态包含:在jsp被编译成java文件之前会把两/多个jsp文件合并,然后再编译成一个java文件。
              <%@include%>在jsp编译成Java文件时完成包含:共同生成一个class(servlet)文件
            2.动态包含:RequestDispatcher的include()(动态包含)
                 是一个方法,包含两/多个servlet,即两/多个class文件,只是把响应的内容在运行时合并了!
        注意:
            <%@include file="<%=myfile%>" %> 这是不能通过编译的,因为myfile是一个变量,它的值只有在java编译成class后执行时才能确定。
            而include指令需要在jsp编译java时就要确定包含的是哪个页面,<%@include file="a.jsp页面"%>

3.taglib指令:导入(第三方)标签库指令
        * 格式
            <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
            prefix:指定标签前缀,这个可以随意命名
            uri:指定第三方标签库的uri(唯一标识)
                    <%@taglib prefix="s" uri="/struts-tags"%>   前缀的用法<s:text>
            需要先把第三方标签库所需jar包放到类路径中。


JSP九个内置对象

jsp页面中不需要创建,直接使用的对象

    對象名                 真实类型                                          作用
* pageContext    PageContext                  当前页面共享数据,还可以获取其他八个内置对象
* request             HttpServletRequest     一次请求访问的多个资源(转发)
* session             HttpSession             一次会话的多个请求间
* application       ServletContext            所有用户间共享数据
* response          HttpServletResponse       响应对象
* page                 Object                当前页面(Servlet)的对象  this
* out                    JspWriter            输出对象,数据输出到页面上
* config               ServletConfig          Servlet的配置对象
* exception         Throwable                异常对象

* response.getWriter()和out.write()的区别:
                    * 在tomcat服务器真正给客户端做出响应之前,会先找response缓冲区数据,再找out缓冲区数据。
                    * response.getWriter()数据输出永远在out.write()之前


JSP四个作用域

域名对应域对象对象的类型作用范围
pagepageContextPageContext本页
requestrequestHttpServletRequest一次请求
sessionsessionHttpSession一次会话
applicationapplicationServletContextweb应用

补充知识:

JSP动作标签
   动作标签由tomcat(服务器)来解释执行!在服务器端执行
   html由浏览器来执行!
         <jsp:forward>:转发: +  <jsp:include>:包含:  (动态包含:多个class文件)
         它们与RequestDispatcher的include方法一样,前者在Servlet中使用,后者是在jsp中使用!
         <jsp:param>:它用来作为forward和include的子标签!用来给转发或包含的页面传递参数!


JavaBean:java小豆子
        JavaBean对类的规范要求。必须为成员变量提供getter/setter方法和无参默认构造器
        JavaBean属性名要求:前两个字母要么都大写,要么都小写
        属性名称就是getter/setter方法去除get/set方法后,然后小写,  (决定)
    内省:得到/设置bean信息
          内省类 --> Bean信息 --> 属性描述符 --> 属性的get/set对应的Method!
          利用commons-beanutils更快完成,需要导包
   jsp中与javaBean相关的标签:
        <jsp:useBean>创建或查询bean
             <jsp:useBean id="user1" class="domain.User" scope="session"/> 在session域中查找名为user1的bean,如果不存在,创建        
        <jsp:setProperty>
            <jsp:setProperty property="username" name="user1" value="admin"/> 设置名为user1的这个javabean的username属性值为admin
        <jsp:getProperty>
            <jsp:getProperty property="username" name="user1"/> 获取名为user1的javabean的名为username属性值

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值