Java Web开发Model1(Jsp+JavaBean)

Jsp页面元素构成

静态内容

Jsp指令

  • page指令:指明页面的语言,编码,引用的类

        <%@page [属性="属性值"]... %>
    
        常用属性:language:指定JSP页面脚本语言,默认java
              import:引用脚本语言中用到的类文件
              contentType:jsp页面的编码方式,默认:text/html,ISO-8859-1
    
  • include指令:嵌入外部文件

       <%@include file="URL" %>
    
  • taglib指令:使用标签库定义新的自定义标签

       <%@ taglib uri="URIToTagLibrary" prefix="tagPrefix" %>
        属性
        uri(Uniform Resource Identifier ):根据标签的前缀对自定义的标签进行唯一的命名,
        URI可以是以下的内容:
                Uniform Resource Locator (URL), 由 RFC 2396 定义
                Uniform Resource Name (URN), 由 RFC 2396定义
        prefix="tagPrefix":在自定义标签之前的前缀
    

注释

  • <!- -html注释- -> //客户端可见

  • <%- -jsp注释- -%> //客户端不可见

  • //单行注释 客户端不可见

  • /**/多行注释 客户端不可见

声明:在Jsp页面中定义变量或方法

<%!Java代码%>

表达式:在JSP页面中执行的表达式

<%=表达式%>//注意:表达式不以分号结束

脚本:在JSP页面中执行的Java代码

<%Java代码%>

Javabean

Javabean就是符合某种特定规范的Java类。解决代码重复编写问题,减少代码冗余;功能区分明确,提高代码可维护性。
原则:公有类(public class),无参构造函数,属性私有(private attribute),get&set方法

Javabean的四个作用域范围(scope属性):

  • page 仅当前页面有效

  • request 一次请求有效,可通过HttpRequest.getAttribute()方法获取JavaBean对象

  • session 一次会话有效,可通过HttpSession.getAttribute()方法获取JavaBean对象

  • application 整个服务器一次运行期间全局有效,可通过application.getAttribute()方法获取JavaBean对象

Jsp动作:为请求处理阶段提供信息,遵循xml元素语法(5大类)

第一类:与存取JavaBean有关:

  • <jsp:useBean> 用法:

            <jsp:useBean id="标示符" class="java类名" scope="作用范围"/>
    
  • <jsp:setProperty> 用法:

            <jsp:setProperty name="JavaBean实例名" property="*"/>//自动匹配所有class属性(表单绑定)
            <jsp:setProperty name="JavaBean实例名" property="JavaBean属性名"/>//匹配指定属性(表单绑定)
            <jsp:setProperty name="JavaBean实例名" property="JavaBean属性名" value="BeanValue"/>//直接指定属性值(如果同时与表单绑定,覆盖表单)
            <jsp:setProperty name="JavaBean实例名" property="JavaBean属性名" param="request对象中的参数名"/>//与request参数绑定
    
  • <jsp:getProperty> 用法:

            <jsp:getProperty name="JavaBean实例名" property="JavaBean属性名"/>
    

第二类:Jsp1.2增添:

  • <jsp:include> 用法:

            <jsp:include page="URL" flush="true|false"/>
                page:要包含的页面
                flush:被包含的页面是否从缓冲区读取
    
  • <jsp:forward> 用法:

            <jsp:forward page="URL"/>//等同于 request.getRequestDispatcher("/url").forward(request,response);
    
  • <jsp:param> 用法:

            <jsp:param name="参数名" value="参数值"/>
    
  • <jsp:plugin>

  • <jsp:params>

  • <jsp:fallback>:当不能启动Applet 或Bean 时,那么浏览器会有一段错误信息。

第三类:Jsp2.0增添,与Document有关:

  • <jsp:root>

  • <jsp:declaration>

  • <jsp:scriptlet>

  • <jsp:expression>

  • <jsp:text>

  • <jsp:output>

第四类:Jsp2.0增添,用于动态生成XML元素标签的值

  • <jsp:attribute>

  • <jsp:body>

  • <jsp:element>

第五类:Jsp2.0增添,用于Tag File中

  • <jsp:invoke>

  • <jsp:dobody>

Jsp状态管理

http协议无状态性:协议对于事务处理没有记忆能力.缺少状态意味着如果后续处理需要前面的信息,则它必须重传,这样可能导致每次连接传送的数据量增大。

保存用户状态的两大机制

Cookie:保存在客户端的交互数据,保存String类型

    使用:
        Cookie cookie=new Cookie(String key,Object value);//新建Cookie
        response.addCookie(cookie);//向客户端写入Cookie
        Cookie[] cookies=request.getCookies();//获取客户端发送来的Cookie
    常用方法:
        void setMaxAge(int expiry)设置cookie有效期,单位:秒
        int getMaxAge()返回cookie有效时间
        void setValue(String value)对cookie赋值
        String getName()返回cookie名称
        String getValue()返回cookie的值

Session:保存在服务器端,保存Object类型对象

include指令和jsp:include动作的区别

include指令jsp:include动作
语法格式<%@ include file=”“%><jsp:include page=”” flush=”true|false”/>
发生作用的时间页面转换期间(转换成Servlet)请求期间
包含的内容被包含文件的实际内容被包含文件的输出结果
转换成的Servlet主页面和被包含页面转换为一个Servlet主页面和被包含页面分别转换成两个相对独立的Servlet
编译时间较慢—解析被包含文件较快
执行时间稍快较慢—执行主页面时间+被包含文件时间
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值