JavaEE基础三之JSP入门

本文深入探讨了JSP与Servlet的工作原理,解析了动态网页的执行流程,从JSP的功能特性到Servlet的角色,再到两者之间的交互方式,如响应重定向与请求转发的区别,以及如何在JSP与Servlet间传递数据。
  • 概述

    • 动态网页的执行原理
    • JSP功能与特性
      • JavaEE规范的web组件,编写动态页面
      • 运行在服务端,本质是Servlet
      • 以.jsp为后缀,放在WebContent目录下
    • JSP执行流程解析
      • 翻译->编译->实例化->提供服务
  • 页面元素及内置对象

    • 页面元素 pass,有兴趣去看之前的那个资料
    • 内置对象: JSP中直接使用的对象,不需要声明,使用固定名字进行使用
      • 对象哪儿来?-----服务器翻译编译jsp时默认声明创建。在jsp的Service方法的参数和方法体中
      • 为什么可以直接用?—写的jsp中的所有内容,都在服务器翻译在内置对象创建后。
      • 有哪些内置对象?—request、response、out、session、等
    • 内置对象 的 详细----------已经在jsp的java类中变量或作为参数已经初始化好的
      1. HttpServletRequest request请求
      2. HttpServletResponse response响应
      3. Httpsession session 会话
      4. ServletContext application 应用(你的网站项目)
      5. Object page this当前jsp java类
      6. PageContext pageContext----注意源码,你会发现其他对象基本是由它获取的
      7. exception
      8. JspWriter out
      9. ServletConfig config
  • jsp生命周期

    • <%=request.getServletContext().getRealPath(".") %> --真实文件目录
      • 找到work文件夹那儿查看编译后的文件 /Catalina/localhost/
    • jsp翻译成java
      • 表达式元素<%= %> out.print(表达式代码) =>_jspService
      • 脚本元素<% %> 直接java代码运行=>_jspService
      • 静态部分(HTML或文字) out.write(静态代码)=>_jspService
      • 声明元素<%! %> 在类中作为属性或者方法存在
      • 静态注释 out.write(静态代码),保留在原处/动态,直接不翻译
    • jsp编译成class文件
    • 执行
  • Serlvet与JSP作用总结

    • Servlet与JSP作用总结

      • Servlet接受来自JSP请求,处理后,跳转到JSP页面显示结果
    • Servlet与JSP之间跳转的方式–当然是可以互相跳转的

      • 响应重定向 响应接口中提供该方法

        • void sendRedirect(String location) 响应重定向到location,相当于重新请求
        重定向:reponse.sendRedirect("show.jsp")//注意可以重定向到另一个servlet中去。
        
      • 请求转发 RequestDispatcher接口中定义请求转发方法

        • forward(ServletRequest request,ServletResponse response) 将请求转发到服务器上的其他资源,包括其他的Servlet、JSP等
        • 获取RequestDispatcher对象
          • getRequestDistpatcher(String path) 返回一个RequestDispatcher对象
        请求转发:response.getRequestDispatcher("showl.jsp").forward(request,response);
        
      • 区别:

        • 响应重定向:2次请求 请求转发:1次 请求
        • Url地址会变 ; Url地址不会更改
        • 通过浏览器跳转(对用户不透明) ;服务器跳转(对用户透明)
        • 得不到原始请求参数 ;携带原始请求参数
      • 两种方式的使用场景

        • 响应重定向:业务处理结束,进入一个新的界面或跳到外部网页
        • 请求转发:多用于服务器内部的多个处理阶段之间的衔接:
          • Jsp:编写动态网页,本质上是Servlet
          • Servlet处理业务逻辑->jsp渲染页面
      • 注意:在使用请求转发时,记得return,否则后面仍然要执行。

    • 请求属性的使用

      • 如果需要在Servlet、JSP之间跳转,同时将自定义的,或通过数据库查询、调用其它资源获得的数据传递到下一个资源时,可以设置为请求的属性即可
      • 请求接口中定义一系列与属性相关方法
        • setAttribute(String name,Object o) 将任意类型对象设置为请求属性
        • getAttribute(String name) 获取属性值
        • removeAttribute(String name) 删除属性
  • 登陆案例

MATLAB代码实现了一个基于多种智能优化算法优化RBF神经网络的回归预测模型,其核心是通过智能优化算法自动寻找最优的RBF扩展参数(spread),以提升预测精度。 1.主要功能 多算法优化RBF网络:使用多种智能优化算法优化RBF神经网络的核心参数spread。 回归预测:对输入特征进行回归预测,适用于连续值输出问题。 性能对比:对比不同优化算法在训练集和测试集上的预测性能,绘制适应度曲线、预测对比图、误差指标柱状图等。 2.算法步骤 数据准备:导入数据,随机打乱,划分训练集和测试集(默认7:3)。 数据归一化:使用mapminmax将输入和输出归一化到[0,1]区间。 标准RBF建模:使用固定spread=100建立基准RBF模型。 智能优化循环: 调用优化算法(从指定文件夹中读取算法文件)优化spread参数。 使用优化后的spread重新训练RBF网络。 评估预测结果,保存性能指标。 结果可视化: 绘制适应度曲线、训练集/测试集预测对比图。 绘制误差指标(MAE、RMSE、MAPE、MBE)柱状图。 十种智能优化算法分别是: GWO:灰狼算法 HBA:蜜獾算法 IAO:改进天鹰优化算法,改进①:Tent混沌映射种群初始化,改进②:自适应权重 MFO:飞蛾扑火算法 MPA:海洋捕食者算法 NGO:北方苍鹰算法 OOA:鱼鹰优化算法 RTH:红尾鹰算法 WOA:鲸鱼算法 ZOA:斑马算法
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值