巴巴运动网笔记

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)

 

你可能感兴趣的:(巴巴运动网笔记)