-
大型门户网站的表现技术25
最近在做一个门户网站,主要是1,2级的静态化,我用jsp表现,在用url,io转化成html,我想问的问题是,
在表现层(jsp),页面中有大量的模块(不同的类别为一个模块(或多个模块)),每个模块中又有小的模块,
为了方便,我每个大模块对应一个list,(小模块从大模块的list中生成,)这样我在dao中有个findAll()的方法,在findAll()中查询出每个模块的list,在把findAll()的每个list放在session中去(大量的代码),
随着模块的增加我的findAll() 越来越大,
我想有没有好解决的方法
问题的根本原因是,1,2级页面的模块太多,
解决的方向1:使findAll()的代码量减少,
2:减少jsp的表现逻辑,
我的jsp的逻辑大部分为:
<ul>
<%
//显示饮食的1-3条新闻
newss=(List<News>)application.getAttribute("msNewss");
newssT=newss.toArray();
for(int i=0;i<=newssT.length;i++){
m=(News)newssT[i];
String isDate=m.getIsDate();
String[] isDates=isDate.split("-");
String fileName=null;
fileName=request.getContextPath()+"\\Html\\"+isDates[0]+"_"+isDates[1]+"\\"
+isDates[2]+"\\"+m.getId()+".html";
%>
<li> <a href=<%=fileName %> target="_blank"><%=m.getHead() %></a></li>
<%
if(i==2) break;
}%>
</ul>
</span> </div>
<div class="food_a_b">
<ul>
<%
//显示饮食的4-12条新闻
newss=(List<News>)application.getAttribute("msNewss");
newssT=newss.toArray();
for(int i=3;i<=newssT.length;i++){
m=(News)newssT[i];
String isDate=m.getIsDate();
String[] isDates=isDate.split("-");
String fileName=null;
fileName=request.getContextPath()+"\\Html\\"+isDates[0]+"_"+isDates[1]+"\\"
+isDates[2]+"\\"+m.getId()+".html";
%>
<li> <a href=<%=fileName %> target="_blank"><%=m.getHead() %></a></li>
<%
if(i==11) break;
}%>
我的dao大部分为:
/**
* 查询出时尚的新闻
*/
hql="from News n where n.newsType.type=:type order by n.isDate desc ";
newss=(List<News>)session.createQuery(hql).setString("type", "时尚").setFirstResult(0).setMaxResults(20).list();
newssMap.put("ssNewss", newss);
/**
* 查询出时尚潮流的新闻
*/
hql="from News n where n.newsType.type=:type and n.keyy like:co order by n.isDate desc ";
newss=(List<News>)session.createQuery(hql).setString("type", "时尚").setString("co", "%潮流%").setFirstResult(0).setMaxResults(6).list();
newssMap.put("clNewss", newss);
/**
* 查询出时尚前沿的新闻
*/
hql="from News n where n.newsType.type=:type and n.keyy like:co order by n.isDate desc ";
newss=(List<News>)session.createQuery(hql).setString("type", "时尚").setString("co", "%前沿%").setFirstResult(0).setMaxResults(6).list();
newssMap.put("qyNewss", newss);
/**
* 查询出纤体的新闻
*/
hql="from News n where n.newsType.type=:type order by n.isDate desc ";
newss=(List<News>)session.createQuery(hql).setString("type", "纤体").setFirstResult(0).setMaxResults(6).list();
newssMap.put("qtNewss", newss);
我的 action为::
/**
* 查询出亲子的新闻
*/
newss=newssMap.get("qzNewss");
request.getSession().getServletContext().setAttribute("qzNewss", newss);
/**
* 查询出居家的新闻
*/
newss=newssMap.get("jjNewss");
request.getSession().getServletContext().setAttribute("jjNewss", newss);
/**
* 查询出美食的新闻
*/
newss=newssMap.get("msNewss");
request.getSession().getServletContext().setAttribute("msNewss", newss);
问题补充:
大家说的清楚些,怎样拿掉page上的<%...%>,用jsp的标签吗??我用的是struts1.2
问题补充:
这个我也考虑过,不过我放弃了,因为:jsp是用来表现的,我的那些数据就是被显示的,如果写在action中,我就要对上面的一个list划分成几个list,每个小list对应一个小模块,这样表现数据是方便了点,但这样的小list要有50多个,
放在request中就有50多个,这样的list太多了,而且action的代码就特别庞大了,
问题补充:
我的我的dao是用map 存放每一个list的,那时我为了jsp好表现,我在action
中又把map的list拿出来放在request中了,现在想想还是不分解map了,
我写了个方法,
//i开始下标
//结束下标
//数据源
public string getNewss(int i,int j,String mapNewss)
,这样应该好点,谢谢啊,
但我已经写了四个模块了,这样改太辛苦了,唉,自己开始没有规划好。
能交个朋友吗?
我的msn:kulinglei@126.com2008年12月17日 17:00
5个答案 按时间排序 按投票排序
-
采纳的答案
你不是觉得在request中放置太多得list吗
你可以写一个方法 将每一个list查询出来放在map中
再action中调用该方法在request中保存map 没有必要将
list再分开保存
还有你对每个模块的查询如果他们之间基本上操作都一样得话
你最好做一个方法传值进去 让他们有一个统一得调用方法
否则最好是 将每一个查询做成一个方法 然后在一个总的方法中
调用他们这样代码看上去也比较简练 维护也方便2008年12月18日 10:06
-
kulinglei 写道问题补充:
这个我也考虑过,不过我放弃了,因为:jsp是用来表现的,我的那些数据就是被显示的,如果写在action中,我就要对上面的一个list划分成几个list,每个小list对应一个小模块,这样表现数据是方便了点,但这样的小list要有50多个,
放在request中就有50多个,这样的list太多了,而且action的代码就特别庞大了,
50就50了呗··
1.做缓存
2.静态化,然后异步去读2008年12月18日 09:30
-
kulinglei 写道问题补充:
大家说的清楚些,怎样拿掉page上的<%...%>,用jsp的标签吗??我用的是struts1.2
先把<%...%>里做的事情封到action里2008年12月18日 09:05
相关推荐
【标题】"一个大型门户网站源代码"所涉及的知识点涵盖了多个方面,主要集中在ASP.NET框架的应用上,这是一项用于构建动态网站、Web应用程序和Web服务的技术。ASP.NET是由微软开发的,它基于.NET Framework,提供了...
除了上述提到的技术之外,大型门户网站还可能采用以下几种高级架构组件和技术: - **集群**:通过构建服务器集群,可以有效分担流量压力,提高系统的可用性和稳定性。 - **负载均衡**:利用负载均衡器智能分配请求...
随着互联网技术的快速发展与用户需求的日益增长,大型门户网站面临着前所未有的挑战。如何构建一个高效、稳定且可扩展的架构成为了众多技术人员关注的重点。本文将围绕“大型门户网站架构心得”这一主题,深入探讨其...
System z9和System z10所代表的现代大型机通过使用先进的芯片封装技术以及精密的硬件互连技术,确保了在处理大量数据和执行复杂计算任务时的高性能表现。 通过上文所述的芯片和芯片封装技术,组件封装入框架技术,...
大型网站技术架构涉及多方面的核心原理和技术实践,旨在确保网站能够应对高并发访问,提供快速且稳定的服务。本篇演讲稿详细探讨了大型网站在性能优化方面的一系列策略和手段。 首先,网站性能测试是优化的起点,它...
### 大型网站技术路线架构演化 随着互联网的飞速发展,大型网站面临的挑战日益增多,这不仅体现在用户数量的增长上,还包括业务复杂度的提升和技术需求的变化。因此,为了应对这些挑战,大型网站的技术架构也随之...
在描述中提到的"门户网站,门户技术论文下载",这暗示了我们讨论的是关于如何构建、管理和优化门户系统的研究。这些论文可能涵盖了门户架构的设计、信息检索策略、用户界面设计、数据集成、安全性和可扩展性等多个...
在当今软件开发领域,大型项目的开发已成为常态,尤其在企业级应用系统、复杂游戏引擎、大数据处理平台等方面的需求日益增长。...未来,随着技术的进一步发展和优化,Cursor有望在大型项目处理领域发挥更大的作用。
焊接技术的现状表现为自动化、智能化程度不断提升,如自动焊机的应用,提高了焊接效率和质量,减少了人工操作带来的不确定性。同时,对焊接工艺的研究也在不断深入,比如优化焊缝设计、改进焊接材料,以降低焊接应力...
HBase适合存储半结构化数据,并且在大数据分析和实时应用中表现出色。 **NoSQL** 是一种非关系型数据库的统称,旨在处理大规模数据分布式存储和处理。《Professional NoSQL》和《NoSQL-Whitepaper.pdf》可能会讨论...
Oracle数据库是全球最广泛使用的大型数据库系统之一,尤其在企业级应用中占据主导地位。它以其高效、稳定和可扩展性著称,为各种规模的企业提供了数据存储、管理和分析的解决方案。本文将深入探讨Oracle数据库的一些...
【大型塔器技术进展与技术创新】\n\n大型塔器技术是化工、炼油等领域中的关键技术,对于提升生产效率和产品质量具有重要意义。近年来,我国在大型塔器技术方面取得了显著的进步,尤其在规整填料、格栅填料和散装填料...
随着互联网技术的飞速发展,大型WEB网站已经成为现代社会信息交流和资源共享的重要平台。它们不仅承载着巨大的用户访问量,还要求在高可用性和高性能方面有出色的表现。为了满足这些需求,网站架构设计者们采用了...
本文档中提到的PUE(Power Usage Effectiveness)是一个衡量数据中心能源效率的重要指标,通过对PUE的讨论,揭示了大型数据中心节能技术的多个方面。 首先,PUE的定义是整个数据中心消耗的总功率与IT设备消耗功率之...
本文将详细介绍如何对大型网站进行有效的性能监控和故障排除,并介绍在这一过程中使用的工具和技术。 大型网站性能监控是指通过一系列的工具和技术手段,对网站的性能指标进行实时或定期的监测,以便及时发现性能...
适用业务场景涵盖了电商、门户、招聘等多类型网站,而技术实现层面涉及多种开发语言、Web服务软件、数据库系统、操作系统和物理服务器硬件,均需根据实际业务需求和场景选择合适的配置。 综上所述,中大型网站架构...
本文将详细介绍大型网站SEO策划的思路与实践,帮助读者理解如何有效地提升网站的搜索引擎表现。 #### 二、前期分析与关键词定位 **1. 定位目标关键词** 在大型网站SEO策划中,目标关键词的选择至关重要。首先,应...
在网站方案中,页面设计是根据网站的 VI 方案、网站功能,采用最新表现技术全面创意设计页面风格,充分体现购物网站品牌形象,凸显品牌文化信息。功能模块是网站建设以界面的简洁化,功能模块的灵活变通性为原则,为...
本资料“大型分布式网站架构设计与实践”深入探讨了如何利用Java技术来构建可扩展、高可用性和高性能的互联网应用。 首先,分布式系统的核心是将单一复杂的任务分解为多个小任务,分布在网络中的不同节点上执行。...