jsp动作元素、jsp对象

本文深入解析JSP动作元素的功能与使用,包括useBean、setProperty、getProperty等元素的代码实现,以及forward、include动态包含的区别与应用。同时,介绍了JSP页面的9个内置对象及其作用范围。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

3.jsp的动作元素

       <jsp:useBean id="s" class="com.briup.bean.Student" scope="page"></jsp:useBean>
       相当于代码:
       <%
        Student s = null;
        s = (Student)pageContext.getAttribute("s");
        if(s==null){
            s = new Student();
            pageContext.setAttribute("s",s);
        }
       
       %>


       <jsp:setProperty property="name" value="tom" name="s"/>
       相当于代码:
       <%
        Student s = (Student)pageContext.setAttribute("s");
        s.setName("tom");
       %>

       <jsp:getProperty property="name" name="s"/>
       相当于代码:
       <%
        Student s = (Student)pageContext.getAttribute("s");
        out.write(s.getName());
       %>
        
       
       //页面跳转
       <jsp:forward page="target.jsp"></jsp:forward>
       
       //跳转的同时还可以传参数
       <jsp:forward page="target.jsp?name=tom"></jsp:forward>
       或者
       <jsp:forward page="target.jsp">
          <jsp:param value="tom" name="name"/>
         </jsp:forward>
       

       //这个动作元素专门是传参数使用的
       <jsp:param value="tom" name="name"/>

       //动态包含
       <jsp:include page="foot2.jsp?name=tom"></jsp:include>
       
       动态包含特点:在把jsp文件翻译成java文件的期间,
动态包含并不会去把被包含的页面原封不动的拿过来,而是会把
动态包含这个标签翻译成一个方法的调用,将来运行页面调用到这
个方法的时候才会去拿被包含页面的内容.同时还可以给动态包含
的页面传参数.静态包含是不能传参数的。

       注意:总结和对比后,分析出动态包含和静态包含各自的特点,
以及哪一个执行的效率更快一些.


       //使用jsp的动作元素向浏览器输出一个标签
       <jsp:element name="font">
              <jsp:attribute name="color">blue</jsp:attribute>
              <jsp:body>hello world</jsp:body>
         </jsp:element>
       
       这个效果相当于在页面代码中直接写上<font color="blue">hello world</font>
       或者:
       <%
       out.println("<font color='blue'>hello world</font>");
       %>
        
    

    5.在jsp页面代码中可以直接使用的对象     
    一共有9个内置对象可以直接使用.
          类型           名字
    PageContext         pageContext
    HttpServletRequest  request
    HttpSession        session
    ServletContext        application
    Object            page
    HttpServletResponse response
    JspWriter        out
    ServletConfig        config
    Throwable        exception

    注意:为什么这个写对象可以直接使用,因为他们都是在
_jspService这个方法中默认声明了出来.而我们在表达式和
脚本中所写的java代码将来是要翻译到_jspService方法中的,所以我们在表达式和脚本中写java代码的时候可以直接使用这些对象.

    四个范围对象,在一定范围内可以存取数据:
    //页面范围(只能在同一个页面中起作用)
    pageContext    
    request
    session
    application

    //虽然名字叫page,但是这个并不是页面范围对象,
它是Object类型的对象,表示当前这个页面本身.
    page
    response
    //用于向浏览器输出内容的输出流.
    out
    //用于获得和servlet相关的信息.
    config
    //这个对象其实我们并不能直接使用,需要相关设置后
才能使用,这个可以算是一个隐藏对象.这个对象表示将来这个jsp
页面运行出错的时候所抛出的异常对象.
    exception

    6.jsp页面中的注释
    第一种:
    <!-- html/xml中的注释方式 -->
        特点:
    1.用户在浏览器中右键查看源代码 [能] 看到这个注释。
    2.在服务器端,这个jsp页面被翻译成的java中 [能] 看到这个注释.
    注意: jsp动作元素 放在这种注释里面是不起作用(注释不起作用,失效了)

    第二种:
    <%-- 
      jsp中的注释方式(隐藏注释)
      --%>
    特点:
    1.用户在浏览器中右键查看源代码 [不能] 看到这个注释。
    2.在服务器端,这个jsp页面被翻译成的java中 [不能] 看到这个注释.
    
    第三种:
    java中的注释方式,但是这种注释方式只能在jsp的脚本或者声明中使用。
    //String name = "tom";

    /* 
        int b = 40;
    */
               
    /**
        int a = 20;
    */
    特点:
    1.用户在浏览器中右键查看源代码 [不能] 看到这个注释。
    2.在服务器端,这个jsp页面被翻译成的java中 [能] 看到这个注释.
 

1. 用户与身体信息管理模块 用户信息管理: 注册登录:支持手机号 / 邮箱注册,密码加密存储,提供第三方快捷登录(模拟) 个人资料:记录基本信息(姓名、年龄、性别、身高、体重、职业) 健康目标:用户设置目标(如 “减重 5kg”“增肌”“维持健康”)及期望周期 身体状态跟踪: 体重记录:定期录入体重数据,生成体重变化曲线(折线图) 身体指标:记录 BMI(自动计算)、体脂率(可选)、基础代谢率(根据身高体重估算) 健康状况:用户可填写特殊情况(如糖尿病、过敏食物、素食偏好),系统据此调整推荐 2. 膳食记录与食物数据库模块 食物数据库: 基础信息:包含常见食物(如米饭、鸡蛋、牛肉)的名称、类别(主食 / 肉类 / 蔬菜等)、每份重量 营养成分:记录每 100g 食物的热量(kcal)、蛋白质、脂肪、碳水化合物、维生素、矿物质含量 数据库维护:管理员可添加新食物、更新营养数据,支持按名称 / 类别检索 膳食记录功能: 快速记录:用户选择食物、输入食用量(克 / 份),系统自动计算摄入的营养成分 餐次分类:按早餐 / 午餐 / 晚餐 / 加餐分类记录,支持上传餐食照片(可选) 批量操作:提供常见套餐模板(如 “三明治 + 牛奶”),一键添加到记录 历史记录:按日期查看过往膳食记录,支持编辑 / 删除错误记录 3. 营养分析模块 每日营养摄入分析: 核心指标计算:统计当日摄入的总热量、蛋白质 / 脂肪 / 碳水化合物占比(按每日推荐量对比) 微量营养素分析:检查维生素(如维生素 C、钙、铁)的摄入是否达标 平衡评估:生成 “营养平衡度” 评分(0-100 分),指出摄入过剩或不足的营养素 趋势分析: 周 / 月营养趋势:用折线图展示近 7 天 / 30 天的热量、三大营养素摄入变化 对比分析:将实际摄入与推荐量对比(如 “蛋白质摄入仅达到推荐量的 70%”) 目标达成率:针对健
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值