读书人

5年JAVA应用系统开发想做一个网站

发布时间: 2012-03-21 13:33:15 作者: rapoo

5年JAVA应用系统开发,想做一个网站,居然不会
做JAVA开发5年了,一直从事的应用系统开发,基本上用SSH做应用系统的主要开发架构,做系统到是轻车熟路,游刃有余。但就最近做了一个网站,“大姑娘上轿头一回”,不知道采用什么方式去做(主要是前台页面数据显示的问题),而且网站也很简单,只需要做页面,然后把数据显示出来就行,因为要和应用系统嵌在一起,所以后台的开发都不存在什么问题,几天光景就给全部完成,关于前台数据显示我想Action去做,肯定不行,操作起来不是很方便,也不合理,后来我就采用JQuery+AJAX做的,网站到是做完了,自己测试一切OK,但是后来投入试运行,问题来了,人访问的多了,页面就一直处于打开等待状态,最后数据不显示,后来我在本机测试,我不停的刷新和打开页面,到一定次数,也出现同样地情况,出现这种情况我只有把我的tomcat重新启动,然后页面显示才正常。
例如我的首页(default.jsp)
要查询首页栏目(数据表:WWW_FANCE),系统公告(数据表:WWW_AFFICHE),文章(数据表:WWW_ARTICLE)....等等,总之这个首页查询的数据特别的多,如下:
<script type="text/javascript">
var dep = "40288a3925da98f90125daa35aa6000e";
$(document).ready(function(){
queryAffiche(dep);
disSysTime();
queryNewSlidesPic(dep, 4, "n");
queryWorkTask(dep, 8);
queryArticle("40288a3c3146af43013146e51b64000c", 10, "news ul", 19);
queryArticle("40288a3c3146af43013146e57aca000d", 10, "f2-1 ul", 19);
queryArticle("40288a3c326c3f9001326c7fe0e20006", 10, "f2-2 ul", 26);
queryArticle("40288a3c334868de01334ab1ec6a000e", 10, "f2-3 ul", 19);
querySafetyDays(dep);
queryMetting(dep, '0');
setLeftPosition();
queryLatestPhotoAlbum(dep, 6);
queryNavFance(dep);
queryPersonInfo();
});
</script>

我不知道是不是我这样一种方式去做是不是不可行的,,或者我出现这样的情况到底是什么原因引起的,希望JAVA搞网站开发的老大们指点一下,后来请教了一个朋友,说用DWR去做,,我现在的思路不是特别清楚,希望能指点指点,谢谢。

[解决办法]
老大你写的代码我重来没有见过!!!
我帮你顶一下吧~~!!
[解决办法]
tomcat 是一个内存连接什么的。你报错的信息有吗?
应该在你tomcat的log里头会看到报错的,我记得。
[解决办法]
代码不全呀
[解决办法]
tomcat的效能调校过了吗?
[解决办法]
谁告诉你首页不能action跳过去?你一个首页请求那么多,早晚垮。
网站访问量大,框架越简单越好,你非用最笨重的ssh。
一个页面上十几个查询,再加上用户身份什么的,一个人开二十几个数据库会话,游标估计都快到上限了

=================
首页没可能全部显示吧?都是前多少条然后给个“更多”链接吧?
数据库,把所有首页需要的数据变成物化视图。

后台,首页需要的所有查询写到一个方法里,防止每个调用都产生一个action代理,如果你struct2玩明白了就不用管这条。

前台,只有“用户读取之后做出动作才发生变化的”用ajax,其它的老老实实走跳转。

服务器,找个明白tomcat的人好好设置下参数。
[解决办法]
我们公司做的系统也出现了这个问题,最近刚刚发现。听他们说调tomcat,具体怎么我也不会,抱歉啊!
[解决办法]
我们的项目也是应用系统和web访问共存的。挑选合适的前台显示方式。你去看看velocity。
[解决办法]
打开页面等待状态,我碰到的情况就是服务器的线程满了,没有空闲的线程分配给其他用户,造成等待。
解决办法增加服务器的线程数,当然线程数是和服务器的CPU数量有关系不能随便加(我的是4个CPU,线程数定为120),同时300多人访问并操作还是够用。


[解决办法]
生成静态文件保险点。
[解决办法]
水深啊,我初学就更难了
[解决办法]
我觉得这个跟设计有关吧。。。。

请问楼主是否一直从事编码。。。。比较少干设计的事情啊。。。

如果你有经验设计过一个比较完整的系统的话,我觉得遇到这种题的可能性小

也比较容易解决。。。

技术很重要。。。。但如果设计的不好,可能会出现很多瓶颈。。。


[解决办法]
而且好的设计能使开发更加简单~~
[解决办法]
5年JAVA应用系统开发,想做一个网站,居然不会
==============================================
你以为你会做系统开发,直接就能上手做网站啊,现在的网站程序比你们的所谓系统开发复杂多了
[解决办法]
数据库设计是否合理,服务器配置是否合理,弄个监控软件看看哪里出现瓶颈了


[解决办法]
要查询首页栏目(数据表:WWW_FANCE),系统公告(数据表:WWW_AFFICHE),文章(数据表:WWW_ARTICLE)....等等,总之这个首页查询的数据特别的多,如下
首页数据必须缓存起来,后台数据没修改时候才去刷新缓存。
[解决办法]
ssh?数据源用了什么?
[解决办法]
jquery
[解决办法]
网站分很多种,有资讯类网站,有实时信息类网站,有交互类网站。
资讯类需要静态化,cdn加速。 实时信息类网站需要查询数据库,要求信息及时可靠,如证券信息,这个需要用到一些推技术后者socket技术实现。交互类网站(大型社区)这个架构最复杂。主从数据库,数据缓存,分流。
根据楼主的问题,可以获取的信息不是很多,初步估计是请求有阻塞。具体问题具体分析看是http阻塞还是数据库阻塞。
[解决办法]
貌似也遇到过 忘了怎么解决的...加个数据库连接池?
[解决办法]
网站跟企业级应用肯定不一样了,网站的特点是访问用户多,而访问用户多,常规架构的企业应用就顶不住了。考虑一些页面用静态化技术,系统架构方面考虑加一台或多台(用做负载均衡,分散访问量)Web服务器,避免频繁访问数据库如用缓存技术,还可以用gzip压缩。多试试,会有好转的。
[解决办法]
你们网站不做集群吗?
[解决办法]
碰到过类似的问题,我们这是数据库连接问题,连接占满了,不过我们用的是mysql数据库,还有一次是数据库有死锁了,楼主可以试试先不连接数据库进行刷新,看是不tomcat的事,有时tomcat线程不够用了也会出现等待
[解决办法]
有点悲催。。。。平常多积累一些优化知识。。。数据库的。。应用程序的。。。

网站的确有难度。。。对我来说 估计也是难事啊。。。。。。。
[解决办法]
我觉得,一方面首页除了在进行用户访问需要的时候才用jquery来做异步,其他时候不要那样。同时,同一个页面的查询使用一个数据库连接,连接资源相当宝贵,不要查一个表建一个连接,一方面数据库连接太多可能拒绝,另一方面等待时间长.第二个加上缓存系统,减少连接,比如连接池,使用上肯定比用纯JDBC好,而且你不是用了Hibernate么,把它的缓存好好利用.注意不要太多的jquery异步ajax,没实际作用的只会带来麻烦...也许说得不对,看哪个对你有作用吧!
[解决办法]

探讨

要查询首页栏目(数据表:WWW_FANCE),系统公告(数据表:WWW_AFFICHE),文章(数据表:WWW_ARTICLE)....等等,总之这个首页查询的数据特别的多,如下
首页数据必须缓存起来,后台数据没修改时候才去刷新缓存。

[解决办法]
探讨

首先要确保的有:
1.数据库连接一定要释放,当你访问人多了卡住时,去检查一……

[解决办法]
在catalina.bat里设置初始内存和最大内存:
set CATALINA_OPTS="-Xms30m -Xmx512m"
检查一下在每Catalina.bat文件,个“%_RUNJAVA%”后面都应该有“%CATALINA_OPTS%”
有的Catalina.bat文件在“%_RUNJAVA%”后面跟着“%JAVA_OPTS%”,
如果是这样,应该设置:
set JAVA_OPTS=-Xms30m -Xmx512m
或者在每个“%_RUNJAVA%”后面加上“%CATALINA_OPTS%”

[解决办法]
tomcat不熟悉,weblogic10有监视线程情况的页面(console控制台),可以查看当前空闲线程多少,当前访问网站的用户有多少。我一般都是根据这些情况调配线程。

还有你要查看你服务器当前的线程数量是多少,默认的一般不会很大也就15左右。
[解决办法]
现在做网站的基本上都用PHP或者.net做网站,还有的就是全站是flash,用java做网站的比较少,而且调整BUG也比较繁琐,好像是有一些做网站的框架一套网站就出来了。。
[解决办法]
你做了5年开发 一直忽视 性能方面的问题 说真的 这5年 你等于干了2年的水平。

你可以从 分布式开发 如EJB3的技术 集群 页面静态化 页面模版出发
[解决办法]
啊 来这里的都是大牛!小弟路过!
[解决办法]


啥米网站啊,用个开源的CMS建个好了!
[解决办法]
额,LZ要创业当老板了,很不错了,加油(^ω^)
[解决办法]
ssh 的时候 hibernate的sessionfactory 自动管理事务的。
我最近也做了个ssh的网站 不过没有遇到这样的问题~


[解决办法]
人访问多了,不知道是不是tomcat内存溢出了,把内存调大些,

[解决办法]
我觉得 可能是你的Session没有管理好,我也遇到过类似的情况,一个列表页面多刷新几次就没反应了。
只有重启tomcat才好用,要是这种情况可以看看spring的配置方式,我用的注释型事务。
而且dwr 也可以用spring的依赖注入模式,说的不对见谅
[解决办法]
数据库连接关闭没,建议别用spring的事务
[解决办法]

探讨

引用:

ssh?数据源用了什么?


数据源配置文件:
<bean id="dataSource"
class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close">
<property name="driverClassName">
<value>or……

[解决办法]
加内存;调优tomcat ;加入memcache等cache以减轻数据库访问压力、
[解决办法]
奉劝lz,尽量不要使用ajax进行大数据操作,能用servlet、action解决的就不要用ajax。个人感觉ajax做个漂亮的ui还行,其它真的都是浮云
[解决办法]
应该就是连接数过多ajax 每调用一次开一个连接.你直接用action 的话调用一次就一个。这样可以省多少连接,楼主自己评估下要麻烦还是要打不开吧。
[解决办法]
[size=24px]一次性请求14个!!为什么不分开来呢?
第一个请求完了,等100毫秒再去请求下一个!
setTimeOut('fun',100);
服务器压力大大减少![/size]

[解决办法]
用weblogic发布网站,一切就搞定!!
[解决办法]
连接数量不够用,我之前也是,刷20次页面就不显示了,配置个连接池。
[解决办法]
这还真悲剧.
[解决办法]
探讨
引用:

生成静态文件保险点。


这位兄弟, 生成静态页面,这个是不错,,但我当时考虑到因为这个网站不是一个对外的,一个内部网站,访问速度可以考虑首选,,而且局域网访问不会太大影响。。后来就没有用这种方案, 而且我当时考虑到很多页面的数据经常动态更新,每次打开这个静态页面还是要检测一下数据有没有更新,如果有又重新生成页面,,所以觉得麻烦。。

[解决办法]
估计是数据连接不够,一个页面查数据库太多了,刷新多几下页面就很容易出问题了。可考虑使用连接池、生成静态页面或页面进行缓存处理
[解决办法]
Java做网站,性能确实是个棘手问题

之前也见过一些用Java开发网站的,也有用SSH的,处理好了应该也可以解决

用静态化的比较多,具体怎么回事儿,自己也没做过,关注中。。。
[解决办法]
仔细分析下后台的错误堆栈,或者借助下工具,比如jprofiler或者jdk自带的jconsole,确定问题出在哪里是关键。

lz做了多年的企业级应用,应该不会载到数据库连接池上吧。主要看看内存,tomcat的响应能力


[解决办法]
首先,要定位瓶颈在哪里,是数据库、应用层、还是服务器线程数、tomcat内存分配或者其他问题。
其次,可以考虑多个tomcat做个简单的负载均衡。
网站类系统,页面静态化是必须的。
[解决办法]
探讨
引用:

生成静态文件保险点。


这位兄弟, 生成静态页面,这个是不错,,但我当时考虑到因为这个网站不是一个对外的,一个内部网站,访问速度可以考虑首选,,而且局域网访问不会太大影响。。后来就没有用这种方案, 而且我当时考虑到很多页面的数据经常动态更新,每次打开这个静态页面还是要检测一下数据有没有更新,如果有又重新生成页面,,所以觉得麻烦。。

[解决办法]
软件行业也是一个很庞大的行业,也存在隔行如隔山的情况。
虽然基础原理大家都明白,但是不一定对最新的技术熟悉,对自己工作范围外的技术学习。
java也是一个用途很广的语言,
不会做网站也无可厚非啊。

就好象我们部门一直是做服务器开发的,重来不用数据库,对数据库不熟悉又有什么错。
那么多知识,那么多技巧,吾生也有涯,而知无涯。
能精通一门就很不错了。
[解决办法]
有些能改变不大的,比如一些文章,就让他缓存在客户端那边。。弄个响应头得了。。
------解决方案--------------------


哥..sessio.close() 啊 切记切记。
[解决办法]
搞了一年的网站开发,想换工作了。开发网站不需要用到ssh框架,用太多的框架反而会很慢。我们公司都是只用一个struts(MVC模式)。都是用Action跳转的,我觉得网站要注意的是在Action和页面上要注意释放资源,这样响应的比较快。o()o 唉搞网站开发没前途啊,学不到什么东西!想做更深一点的程序。
[解决办法]
要查询的时候再AJAX,不要一上来初始化就全查询,这样AJAX还有啥用
[解决办法]
如果首页要加载的数据量太大,又不是太经常变动的话,考虑下Hibernate的二级缓存吧!
[解决办法]
可以做个数据缓存,把栏目下的资源放入内存中,做个线程设个时间不停的刷新内存,数据库连接可以采用c3p0
[解决办法]
访问时间一长页面就卡住,肯能是数据库连接没有释放,不知道你有没有用到流,看看有没有close掉
[解决办法]
话说,楼主说了是局域网内用户访问的网站,所以从用户数量角度来说应该是不大的,那么造成服务器挂掉的原因基本上也就是数据的请求压力大了。人不多,但是每个人的访问可能都造成了比较大的请求压力。

其实从个人经验来讲,也提不出什么更好的办法了,相关的解决方案上面的兄弟们都说的差不多了。我加上个人经验帮你总结总结:
1、首页尽量做成静态的,其他页做不做还好。从你的描述来讲,貌似也就首页压力会很大。
2、你说程序用了SSH,那个Hibernate要做优化的。像上面那位兄弟说的,可以启用二级缓存。另外对于前台来讲,可能有一些数据查询挺麻烦的,建议你查这些数据时候可以直接用Spring的JdbcTemplate,而不是直接用Hibernate的查询。
3、加大连接池的最大连接数。建议不要增加JVM的内存。
4、连接池可以换成proxool试试。我以前做的项目遇到过使用dbcp和c3p0无法自动关闭连接的情况。另外proxool提供了监视功能,你可以查看是否有长时间的连接被占用。

我本来还想写5来着,但是忘了…… 真纠结

求指正,勿喷
[解决办法]
关注!,没开发过网站!LS的一些建议都可以值得去考虑下!
现在主要是找不到根本原因?
[解决办法]
检查数据库连接是否都已关闭呢?




---------------------
http://www.mowker.com/view/

读书人网 >Java Web开发

热点推荐