发表于: 2017-12-09 13:35:23

1 740


今天完成的事情:

  1.修改Task4中的两个页面,一个设为用户不登录可以访问,一个设为用户必须登录才可以访问。要求用户必须登录才能访问的url统一增加前缀 /u/。

  2.退出登录功能

  3.任务6-下载JMeter,压测自己的JSP,查看TPS数据,调整并发数,压到程序挂掉为止。

明天计划的事情:开始任务六

遇到的问题:加上Memcache,在新建数据的时候同时维护好缓存(没有新建数据接口就自己加上,可以分成是压测JSP和Json接口两种方式) ,确定数据没问题,重新压测服务器,测出90%的线在哪里.

收获:

  1.我决定把首页设为不需登录,职业设为必须登录

把必须登录才能访问的加上/u/

修改好后,我的profession页面图片和样式找不到了,加了/u/就变成这样了

我想是因为加了/u,多了一层级,那么图片的路径应该加上一级

header和footer没变,头部尾部图片、引入css和jss路径也需要修改。因为头部和尾部是公用的,在首页时url是putaoteng/home,在职业是putaoteng/u/profession,一个是两层,一个是三层,那么图片、css和jss路径不应修改,而是添加一个三层的路径


这三个图片出来了,背景颜色css也出来了。其他的就不修改了



  2.退出登录

看到师兄日报有用到这个,我觉得有必要学一下如何清除session和cookie


a标签target属性

在header添加一个退出按钮

拦截器根据session判断。这个false卡了好久,不加false意味着默认为true,创建新的session,显然里面也不会有loginUser。如果是false则是从request中获取session

还要加一个页面判断,当session存在时,jsp显示退出按钮,不存在则显示登陆按钮

未登录时,没有退出按钮

登陆后出现



深度思考

1.什么是session?什么是cookie?session和cookie有什么区别?什么场景适用于session?什么场景适用于cookie?

感觉cookie和session很像,可是当我只用cookie没用session会报错。虽然以前用过session,就是用来跨网页传输数据的,存放数据量大,安全,网页关闭后,连接断了数据就没了,是把数据储存在服务器的,cookie则是存储在客户端的,数据量小,易被伪造,不安全。有必要百度了解一波

http://blog.csdn.net/wangbiao007/article/details/50808631

2.拦截器、过滤器、监听器各有什么作用?

https://www.cnblogs.com/CloverSH/p/4531492.html

http://blog.csdn.net/aqsunkai/article/details/51813121

 Filter也称之为过滤器,它是Servlet技术中最实用的技术,WEB开发人员通过Filter技术,对web服务器管理的所有web资源:例如Jsp, Servlet, 静态图片文件或静态 html 文件等进行拦截,从而实现一些特殊的功能。例如实现URL级别的权限访问控制、过滤敏感词汇、压缩响应信息等一些高级功能。

  它主要用于对用户请求进行预处理,也可以对HttpServletResponse 进行后处理。使用Filter 的完整流程:Filter 对用户请求进行预处理,接着将请求交给Servlet 进行处理并生成响应,最后Filter 再对服务器响应进行后处理。

  Filter功能:

  • 在HttpServletRequest 到达 Servlet 之前,拦截客户的 HttpServletRequest 。 根据需要检查 HttpServletRequest ,也可以修改HttpServletRequest 头和数据。
  • 在HttpServletResponse 到达客户端之前,拦截HttpServletResponse 。 根据需要检查 HttpServletResponse ,也可以修改HttpServletResponse头和数据。



监听器Listener的定义与作用

  监听器Listener就是在application,session,request三个对象创建、销毁或者往其中添加修改删除属性时自动执行代码的功能组件。

  Listener是Servlet的监听器,可以监听客户端的请求,服务端的操作等。


拦截器是在面向切面编程中应用的,就是在你的service或者一个方法前调用一个方法,或者在方法后调用一个方法比如动态代理就是拦截器的简单实现,在你调用方法前打印出字符串(或者做其它业务逻辑的操作),也可以在你调用方法后打印出字符串,甚至在你抛出异常的时候做业务逻辑的操作。拦截器不是在web.xml配置的,比如struts在struts.xml配置,在springMVC在spring与springMVC整合的配置文件中配置。

在springmvc中,定义拦截器要实现HandlerInterceptor接口,并实现该接口中提供的三个方法

 preHandle方法:进入Handler方法之前执行。可以用于身份认证、身份授权。比如如果认证没有通过表示用户没有登陆,需要此方法拦截不再往下执行(return false),否则就放行(return true)。
  postHandle方法:进入Handler方法之后,返回ModelAndView之前执行。可以看到该方法中有个modelAndView的形参。应用场景:从modelAndView出发:将公用的模型数据(比如菜单导航之类的)在这里传到视图,也可以在这里同一指定视图。
  afterCompletion方法:执行Handler完成之后执行。应用场景:统一异常处理,统一日志处理等。
在springmvc中,拦截器是针对具体的HandlerMapping进行配置的,也就是说如果在某个HandlerMapping中配置拦截,经过该 HandlerMapping映射成功的handler最终使用该拦截器。


  3.任务6-下载JMeter,压测自己的JSP,查看TPS数据,调整并发数,压到程序挂掉为止。

jmeter是什么?

下载jmeter

安装教程

http://blog.csdn.net/hapasm/article/details/61912902

官网 http://jmeter.apache.org/download_jmeter.cgi

注意:tgz是linux下的压缩文件,zip是window下的,在本地window下载,我选择zip

环境变量

还有一个classpath

...

按照教程来

测试教程  https://www.cnblogs.com/by-dream/p/5611555.html

创建线程组:右键测试计划

设置线程属性

那么访问次数应该在20*20=400次

然后添加http请求

然后保存,是一个jmx文件,xml格式的

添加查看结果树,点击启动按钮,都成功了

然后添加一个Aggregate Graph,在执行看看

看师兄们日报都在测服务器的项目,我也上传项目

然后测试,时间都长了很多,不过还没有error

弄成200线程循环200次就有error了

添加事务管理器管理http请求,查看请求数据

http://www.cnblogs.com/fengpingfan/p/5614562.html

新建事物控制器,在里面添加http请求

勾选事务控制器页面的【Generate parent sample】,选中该配置项,则不会看到事务控制器所包含的所有子请求;同时将文详页相关的请求放置在事务控制器之下,感觉summary report和agreegate graph差不多

添加一个集合点,设置到累积到20个线程再执行请求

集合点的概念

http://blog.csdn.net/zjq001x/article/details/53107159

似乎差不多,也许是请求数太少


今天就到这,然后准备小课堂




禅道:http://task.ptteng.com/zentao/task-view-15136.html


返回列表 返回列表
评论

    分享到