讨论:框架这样用?

         现在接手的项目是个别人已经搭好了架子的东东,在后来一段时间的开发过程中,我发现这个系统有一些缺点,总结了一下:

一、表示层

1、第一次看到,把同名的jsp放在不同的目录下,用目录名来区分。

2、同名的jsp往往主要内容相同,只是form要提交到的action不同。

二、控制层(逻辑处理层)

1、本项目大约有20个jsp页面,只用了5个ACTION,每个页面指向某个ACTION的某个处理方法:

      比方说:jsp1的form这样写:

  1. <html:form action="/netinfo.dox"  method="post" focus="domain" styleClass="form" >  
  2. <input type="hidden" name="method" value="save"/>  

有一个隐藏变量method来标示要由netinfo的save方法来处理,那看一下struts-config.xml里是怎么写的:

struts-config.xml 代码
  1. <form-beans>  
  2.       <form-bean name="NetinfoForm"  
  3.                  type="org.apache.struts.validator.LazyValidatorForm" />
  4. .....  
  5. form-beans>  
  6.   
  7. <action-mappings>  
  8.       <action path="/netinfo" name="NetinfoForm" parameter="method"  
  9.               scope="request" validate="false">  
  10.             <forward name="list" path="/pages/netinfoManager.jsp" />  
  11.             <forward name="view" path="/pages/netinfoView.jsp" />  
  12.             <forward name="regester" path="/pages/registerNetinfo.jsp" />  
  13.             <forward name="edit" path="/pages/Manager/registerNetinfo.jsp" />  
  14.             <forward name="password" path="/pages/getBackPwd.jsp" />  
  15.             <forward name="success" path="/netinfo.dox?method=manager" />  
  16.       action>
  17. .......
  18. <action-mappings> 
  19.   

这就会出现一个潜在的问题:netinfoAction类中不同的处理函数会随着业务的不断细化而迅速增加,不说代码量大,无法迅速定位到要修改的函数处(那时用搜索都慢),单说各个函数之间相互跳转并最终返回到指定页面:函数之间怎么能跳转?看上面的代码:Action返回success时,就会定位到manager方法继续执行,manager 方法还有可能再定位到这个类的其他方法继续执行,最后,很难控制我最初的方法返回的页面究竟是哪个,并且要考虑到另一个页面调用同类的manager方法时,是立即返回一个页面还是要推给另一个方法来定位最终页面。当业务多了,这个问题相当突出,而大量的精力将用在如何正确定位返回页面了。

2、使用了LazyValidatorForm,所有的form都使用这一个东东,直接将数据映射到hibernate持久化对象去了, 但这样的映射不能变通,只能在将要映射前把数据的格式转化一下,再做映射,无疑又增加了几百行代码。

3、由于页面中有URL或连接,每个连接要调用一个ACTION的处理函数,就得写成这样.../neitinfo.dox?method=方法名,这种连接返回的页面往往和form提交到的ACTION方法有不一样的返回页面,甚至还要返回到本页面,前面说过,本页面和另一个页面同名并且也有相同的连接,这就出现问题了,当这些页面的连接都要调用一个处理类的同一个方法时,就不得不使用flag之类的东西来标示是哪个页面来的请求,要回到哪个页面去。。地狱。。

虽然可以在函数中写上下面的文字来解决返回的问题,但还是感觉乱乱的,不舒服:

jsp代码
  1. <html:hidden property="source" value=""   
java 代码
  1. //返回本页   
  2. return new ActionForward(request.getParameter("sourcepage"));    

对于这些问题,不知道应不应该换一种组织形式,重新架构。

仔细考虑了一下,结合朋友们的意见,我最终决定把ACTION的数目加上来,这样每个ACTION的函数就可以少一点,不至于那么乱,还有,关于JSP的名称,我决定要改,两个文件同名,在IDE中同时打开这两个文件,将不知道正在修改的页面是哪个,容易产生错误。

好像,增加ACTION的个数就可以解决以上大部分问题了。

希望大家说说自己的意见。

 

Hopfield神经网络(HNN)详解 Hopfield神经网络是一种比较特殊的网络,它不像一般的神经网络那样有输入层和输出层,并且通过训练来改变神经网络中的参数,最终实现预测、识别等功能。Hopfield网络只有一群神经元节点,所有节点之间相互连接,形式如下: 虽然有些文章会画出像深度神经网络那样有输入输出的图,并且输出后又返回输入,但本质上就是多个节点之间的全连接,也就是上面的图形。Hopfield神经网络主要有两个应用:一是起到类似储存器的作用,也就是我们把多个序列或图片输入这个网络,最终这个网络会以神经元之间连接权重的形式储存这 阅读详情

相关推荐

玩转Zabbix智能告警:降噪、排班、认领、升级、IM协同

集成Zabbix告警到FlashDuty,获得告警降噪、智能排班、IM协同等能力

n9ecommunity的博客 1041

框架的用法

框架

Mr_king138的博客 235

智能垃圾桶改造指南:树莓派+垃圾分类模型部署全记录(含数据集获取)

本文提供了一份详尽的智能垃圾桶DIY改造指南,核心是利用树莓派部署轻量化的YOLOv8垃圾分类模型。内容涵盖从数据集获取、模型训练与OpenVINO量化优化,到硬件组装、电路连接及软件集成的全流程,旨在帮助创客和爱好者以低成本实现一个能自动识别垃圾并分类的AIoT原型系统。

k6l7m8n9的博客 509

Html中框架的使用

1.框架页面 几个重要的概念:框架集和框架。 我们先了解一下上面的概念。 框架集是若干框架的集合,利用框架集可以定义框架结构,实现分割浏览器窗口的功能。 框架集用来表示 框架:每个框架就是一个区域,所有的框架组合成了框架集 框架用来表示 了解了基本概念之后,有几点是我们需要知道和注意的 a.标记可以嵌套使用。 b.frameset的cols和rows属性: co

步步拾遗 5471

手把手教你在飞牛 NAS 上部署自有图床,含Python调用接口

📸 想在飞牛 NAS 上部署图床?这篇教程超适合小白!从安装到使用,步骤清晰~

XiaoqiangClub的博客 2345

在 MATLAB/Simulink 中构建一个卫星间激光通信链路的完整仿真系统

摘要: 本文通过Simulink详细演示了卫星间激光通信系统的建模过程,重点分析其在10Gbps高速率、2000km距离下的性能。系统设计涵盖PAM-4调制、自由空间信道建模(路径损耗、指向误差、多普勒效应)、APD探测及链路预算计算,并给出典型场景下18.5dB SNR、1e-9误码率的仿真结果。针对激光通信的μrad级指向精度挑战,提出AI辅助跟踪、混合RF/激光等优化策略,为未来太空高速组网提供可扩展的仿真框架。所需工具箱包括Communications Toolbox和Aerospace Toolb

xiaoheshang_123的博客 383

Spring的理解 入门

Spring框架—控制反转(IOC) 1 Spring框架概述 1.1 什么是Spring Spring是一个开源框架,Spring是于2003 年兴起的一个轻量级的Java 开发框架,由Rod Johnson 在其著作Expert One-On-One J2EE Development and Design中阐述的部分理念和原型衍生而来。它是为了解决企业应用开发的复杂性而创建的。框架的主要优势之一就是其分层架构,分层架构允许使用者选择使用哪一个组件,同时为 J2EE 应用程序开发提供集成的框架。Sprin

weixin_46895251的博客 2610

华为OD机试 - 整型数组按照个位数排序(Python/JS/C/C++ 双机位C卷 100分)

本专栏收录于《华为OD机试真题(Python/JS/C/C++)》。刷的越多,抽中的概率越大,私信哪吒,备注华为OD,加入华为OD刷题交流群,每一题都有详细的答题思路、详细的代码注释、3个测试用例、为什么这道题采用XX算法、XX算法的适用场景,发现新题目,随时更新。给定一个非空数组(列表),其元素数据类型为整型,请按照数组元素十进制最低位从小到大进行排序,十进制最低位相同的元素,相对位置保持不变。当数组元素为负值时,十进制最低位等同于去除符号位后对应十进制值最低位。给定一个非空数组,其元素数据类型为32位有

学Java,找哪吒 399

开始新的系列,Glide的基本用法

基本用法、源码解析、高级用法、功能扩展,所有的一切从这一篇开始。

郭霖 2177

第七天 Labview进阶(7.4 NI Vision简单使用)

NIVision机器视觉软件使用指南 摘要:NIVision是National Instruments推出的高效机器视觉软件,具有硬件无缝集成、图形化编程和工业级部署等优势。本文介绍了NIVision的安装步骤(需Vision Acquisition和Vision Development模块)及三个典型应用案例:1)实物检测通过IMAQCreate等模块实现物体识别与坐标定位;2)OCR检测利用IMAQOCR系列模块完成字符识别;3)几何模板匹配使用IMAQLearnGeometricPattern等模块实

weixin_38637405的博客 771

仿真学习系列(四十二):Sigrity仿真之走线阻抗和耦合检查

在高速电路设计中,走线的阻抗和信号线之间的耦合是影响信号完整性的重要因素。设计中可能会出现多种情况,导致阻抗变化或不匹配,例如线宽的变化、跨层分割等。传统的人工检查方法常常不够高效且易忽视细节。借助仿真软件,可以快速定位问题区域,并进行精确分析,从而有效避免或减少信号反射和串扰带来的影响。

案例文章,高速信号 425

cui组件-web前端jquery组件库

cui组件是一款免费的web前端jquery组件库,里面有很多常有的jquery的插件,极大的方便前端页面的开发与后台的嵌入,也为企业的web前端提供解决方案。 下载地址http://files.cnblogs.com/ishibin/cui%E7%BB%84%E4%BB%B6-web%E5%89%8D%E7%AB%AFjquery%E7%BB%84%E4%BB%B6%E5%BA%9...

weixin_30610755的博客 1520

IPv6之001-IPv6是什么

技术本质:IPv6(Internet Protocol version 6)是互联网工程任务组(IETF)设计的网络层核心协议,用于替代IPv4核心使命:解决IPv4地址枯竭问题,重构互联网基础架构,支撑万物互联时代革命性特征fill:#333;color:#333;color:#333;fill:none;IPv6128位地址空间无状态自动配置原生IPsec加密协议头部精简。

老韩的Linux云计算架构师进阶之路 1395

观点:讨论来讨论去,还是讨论用哪个框架。。。

刚开始我们也提到,学会怎么使用框架只是程序员的基本功,但是我们目标不应该满足于此。所以我也建议大家多看别人优秀的框架是如何实现的,请问有多少人熟悉JDK/spring等的代码,如果你熟悉了也不需要看别人写的书要怎么怎么配置了。而且那种用法比较优秀,比较容易实现也会心里有底。只会跟着设计编码,不会思考因果关系的人那是程序员。当然我本身也是个程序员。。 以前公司也有尝试自己写框架实现整个流程

大成若缺,其用不弊。 大盈若冲,其用不穷 408

Probability and Statistics - 4th edition

Probability and Statistics - 4th edition

最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版

Part-E1-SDIO-Specification-Ver4.00-Final-120220.pdf:最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版,包括SDIO 接口的外设,SDIO 接口官方协议等。

【一起来设计UI框架】讨论:UI框架富客户端的业务接口设计

我觉得往后面的富客户端走 构建UI框架是很重要的,应该是往后WEB开发的大趋势,但现在接口设计都不是太理想,可能也是现有UI框架应用的难题。 按照面向对象的思路来设计UI框架的接口的时候,自定义的业务层渲染究竟应该怎么做?? 我看现在的方式 大概是两种 总结现在的框架应用方式,大概有三类: 一是EXT模式用JS自定义类书写整个表现层。 这样和后台语言的结合是...

leecade的博客 205

IDEA的使用指南

IDEA基于java的使用手册,可以最快速的上手,在使用中不断的丰富自己的使用技巧.

设计讨论:设计什么样的框架?

今天跟同事们聊到要给我们的系统设计一套框架。我问他想要个做什么的框架,他给了我一张图: 我第一感觉是:这不就是SpringMvc的Dispatch Servlet么?第二感觉是:这位同志哥好像没想清楚自己想要什么样的框架。 好的框架至少要有两个功能。 第一个功能是减少重复工作、提高开发效率。例如SpringMvc/Struts,减少了Http的重复...

weixin_33774883的博客 104

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

快速上手Laravel框架讨论区:替代Laravel Ideas的最佳实践

Laravel框架讨论区(原Laravel Ideas)是一个专为Laravel内部讨论设计的Issues看板,现已迁移至Laravel框架仓库的讨论区,为开发者提供了更集中的交流平台。本文将为你介绍如何快速上手这一讨论区,掌握参与Laravel框架讨论的最佳实践。 ## 认识Laravel框架讨论区 Laravel框架讨论区是Laravel官方为收集社区创意、讨论框架发展方向而设立的平台。在

gitblog_01195的博客 170

推荐开源项目:ReConcile - 团队讨论与说服框架

推荐开源项目:ReConcile - 团队讨论与说服框架 1、项目介绍 ReConcile 是一个创新的框架,它利用多元化的大型语言模型进行多轮讨论,以达成共识并提升推理能力。该框架的灵感来源于圆桌会议的概念,通过模拟人与人之间的交流过程,让AI在解决问题时展现出更强的逻辑性和准确性。这个开源项目由Justin Chen、Swarnadeep Saha和Mohit Bansal共同创建,并已在学术...

gitblog_00093的博客 428

Harness Engineering 在讨论什么:三个 Scaling 维度的统一框架

OpenAI 的 harness engineering 讲的是环境设计:文档体系、架构约束、可观测性基础设施,让 agent 在一个被精心设计过的工作环境里可靠地生产代码。这三篇文章的读者群高度重叠,用的术语高度一致,但各自回答的工程问题截然不同。这正是 harness engineering 这个词在当前讨论中造成混乱的根源:人们用同一个词在讨论不同层面的问题,而大量二手解读甚至还停留在两年前的 multi-agent 虚拟团队概念里,离这三篇文章的实际内容更远。三家各自解了其中一个。

十年互联网开发老兵,陪你一起学技术 149

科研伦理与学术规范:从原则到实践的讨论框架与行动指南

科研伦理与学术规范是保障学术研究可信度与可重复性的基石,其核心在于将抽象的诚信原则转化为具体的研究行为准则。其原理在于通过系统性的规则设计,预防学术不端,维护知识生产的公正性。这一体系的技术价值在于为研究者提供了可操作的行为框架,如作者署名标准(ICMJE)、数据管理规范(3-2-1备份原则)等,能有效规避无意识的抄袭、数据选择性使用等常见风险。其应用场景贯穿研究全生命周期,从课题设计、数据收集到论文发表与成果评审。本文聚焦于如何通过精心设计的课后讨论,将上述规范内化为研究者的思维习惯与操作清单,从而构建坚

weixin_29224309的博客 368

2024高考数学压轴题第22题解析:导数零点分类讨论的通用解题框架

导数作为高中数学的核心工具,不仅是研究函数单调性、极值与零点分布的基础,也是高考压轴题中区分考生能力的关键考点。理解导数的本质——刻画函数变化趋势——能够帮助学习者将陌生问题翻译为熟悉的模型。含参函数的零点个数问题,往往需要依据参数对临界点位置的影响进行分类讨论,并通过构造、等价变形与规范表达完成完整推理。这一能力在高考数学中具有显著的选拔价值,尤其在压轴题中,掌握分类讨论的边界划分与步骤书写,是获取高分的重要保障。从日常的函数分析到考场实战,导数与零点问题的求解策略广泛适用于各类综合题型。2024年高考数

weixin_30702441的博客 85

高中数学集合难点突破:含参集合空集讨论与分类解题框架

集合论是数学的基础概念,它通过定义元素与集合的从属关系,构建了现代数学的表述体系。其核心原理在于集合的运算(交、并、补)与关系(包含、相等),这些构成了处理数量关系的逻辑基础。掌握集合论的技术价值在于,它能将复杂的实际问题抽象为清晰的数学模型,是学习函数、概率等高级数学分支的基石。在工程实践与算法设计中,集合思想常用于数据去重、状态空间描述等场景。本文聚焦于集合论中一个关键且易错的概念——空集,特别是其在含参集合问题中的隐蔽性。通过剖析方程型与不等式型描述下集合何时为空的核心判断逻辑,并结合子集关系、集合运

weixin_34023982的博客 335

高效小组讨论实战:从议题失控到行动落地的领导力框架

在团队协作中,会议管理往往被视作事务性工作,但真正影响组织效率的恰恰是小组讨论这一高频场景。其底层原理并非简单的发言与倾听,而是通过结构化流程(如目标钉死、角色分工、冲突分级)将混沌的多方观点转化为清晰的决策与行动承诺。技术价值体现于:用提问、复述、收敛等可训练动作,降低沉默螺旋与议题漂移带来的信息损耗,让每一次讨论都能沉淀出负责人、时限与验收标准。在跨部门协作、项目复盘、方案评审等典型场景中,这套方法论能显著提升决策效率与团队信任度。本文不空谈领导力理论,而是聚焦可立即套用的操作手册,帮助主持者与参与者共

weixin_33846508的博客 130

对话本体论:用数学工具重构哲学讨论的认知框架

本体论作为哲学核心分支,研究存在的本质与关系。传统方法难以刻画动态对话中的认知建构过程,而结合范畴论、非标准分析和博弈论的数学框架,为解决这一难题提供了新思路。该技术通过形式化建模对话空间(参与者、语言符号、时间轴和认知关系网),并借助张量网络模拟语义流形变化,实现了哲学讨论的可计算化。核心算法运用持续同调检测认知结构演变,结合黎曼几何评估语义形变,显著提升了跨文化概念翻译和学术研讨的效率。这套方法不仅为分析哲学提供了新的数学工具,也在EEG神经信号分析、强化学习对话系统等领域展现出工程应用价值。

weixin_33507732的博客 224

框架复习笔记-Java-案例:牛客网讨论社区

文章目录搭建开发环境Spring入门Spring IoC实例分析Spring MVC入门请求响应Mybatis入门案例:开发者社区首页调试技巧日志版本控制-Git发送邮件开发注册功能登录之会话管理登录之生成验证码登录退出登录注册之拦截器账号设置检查登录状态过滤敏感词-前缀树发布帖子及帖子详情事务管理-(重点:需要理解记忆) 搭建开发环境 mvn cmpile 编译 mvn clean test 清理后测试 浏览器访问: Spring入门 Spring IoC实例分析

小猴子的博客 956

AI对话式综述框架:把上百篇文献变成一场学术讨论

面对海量学术文献,如何将其高效梳理为清晰的知识脉络,是论文写作中的常见难题。文献超载的本质并非阅读量不足,而是认知负荷超出大脑处理上限,传统主题式归档又难以承载观点间的支持、反驳与修正关系。大语言模型的信息提取、观点聚类与关系标注能力,恰好能在这一环节发挥关键作用:将散落文献组织成包含支持、补充、反驳逻辑的论证网络,显著降低作者的结构搭建负担。在系统文献回顾、硕博开题等场景中,借助AI辅助对研究议题进行子议题拆分与对话轮次生成,可让综述具备真正的学术张力,避免沦为文献流水账。文章围绕一套可操作的AI辅助综述

weixin_29054195的博客 310
上一篇: 开篇:在项目中学习和锻炼,摸索前进......
下一篇: char,varchar,text,nchar,nvarchar,ntext的区别
flash59
博客等级 码龄20年 1粉丝 1原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值