1.struts +spring2.5 +JPA(Hibernate)
2.编写重用高的一些类
范型/反射
注解就是配置的作用跟xml一样 ,要加上 <tx:annotation-driven transaction-manager="txManager"/>才有用
巴巴运动网用到的技术
1.div+css 网页减肥,提高用户体验
2.优化性能的技术:OSCache(缓存) /Velocity(页面静态化) /SSI(包含页面使用)
http://www.iteye.com/topic/1124111
产品模块,购物车模块,权限模块,网站性能优化
产品管理:分页查询,添加,修改,上架/下架功能
1.需要做的模块:权限模块,产品模块
1.web前段集群,应用端集群,数据库端集群
2.权限控制到按钮
3.上架,下架功能
4.实现多浏览器共享购物车技术
1.从当前会话,以前会话获取购物车,如果获取不到,就创建新的购物车
2.如果当前会话不存在就把以前会话的购物车放到当前会话中
5.implements HttpSessionListener
关闭浏览器,打开新浏览器,得不到原先购物车里的数据,session 共享
1.当关闭浏览器时,这个用于保持sessionId的cookie 随着浏览器的关闭而清除,
在新浏览器中不存在保持sessionId的cookie,当请求网站的时候,就不会把cookie存的sessionId带到
服务器,服务器不能得到这次会话的sessionId,他就无法找到之前的session ,只能创建新的sessionId
服务器为什么会创建新的session,根本原因是:
1.第一次打开浏览器,添加商品的时候,服务器会往你的浏览器写入一个cookie,cookie的值为sessionId,cookie存活周期
为会话期间(默认),只要会话结束,cookie就好被清楚
2.第二次打开新浏览器的时候,浏览器的cookie已经不存在sessionid,服务器因为无法得当客服端发送过来的sessionId
所以会创建新的session
怎么解决这个问题:(解决cookie问题,设置cookie的生命周期,有效时间设置为session的有效时间,把session的周期延长可以解决这个问题)
添加个方法
name value session的存活时间
WebUtil.addCookie(response,"JSESSIONID",request.getSession().getId(),request.getSession().getMaxInactiveInte);
3.系统性能优化(大型门户网站)
1.数据库也是一个应用,数据库瓶颈,每个数据库有最大连接数(socket),一般服务器同时处理的链接2000个,
如果超过2000个,就会处于等待
2.解决方案(软件解决方案):
1.页面静态化 --只能处理不经常改变,一些简单的网页
1.使用模板技术(velocity模板技术,主要学表达式(提供了扩展功能) / Freemarket使用(structs2使用Freemarket技术))
2.缓存技术:A.页面缓存(view,缓存html代码),缺点:不能做到实时更新,
(页面缓存(OScache)过期的时候,才会显示更新的东西,可以清除缓存)
(当数据更新较快,几秒钟更新一次,或者需要实时反映数据变化,或者页面具有多种风格,不便使用页面静态化,)
优点:比二级缓存的性能更高
1.oscache 标签:time,key,flusch(强行清除缓存) socpe,(局部缓存)
2.全局缓存:配置过滤器即可
缓存默认的有效期:1个小时
B.二级缓存(Model业务层,domain对象),业务要求必须实时更新就使用二级缓存
优点:实时更新,允许有少量的数据库访问
3.数据源,连接池放一些连接对象(省去建立socket连接),避免创建太多连接,
减轻服务器的压力,减少创建连接的时间
4.ssi技术(民户网站必懂技术),包含版头,版尾,实现页面的包含(si指令)
3.硬件解决方案(服务器越多,用钱多)
4.velocity 重要的是表达式,跟jstl表达式差不多
5.数据源 c3p0
6.compass 实现搜索
7.ssi技术,实现页面包含,主要是一些指令,表达式
8.在数据量比较大,查询字段比较多的情况下,如果采用数据库like sql查询,性能比较差,而采用lucene来查询,性能相对
like sql 语句查询要好些
9.如果采用lucene进行搜索,搜索到的结果相关度比较高,而且把匹配度高的记录排在最前面,而数据库的like 语句查询只会
查询回来含有关键字的记录,其内容相关度不高,并且不能实现把匹配度高的记录排在最前面
3.采用lucene进行搜索,能够进行高亮显示,而且数据库的sql语句查询做不到这一点
1>建立索引
2>查询索引
分词的原理:一元分词/二元分词/字典分词/(最好)
Lucene API / Compass API (Object search engine / mappng) [OSEM]
JDBC API / Hibernate APi (ORM)