发表于: 2017-12-09 13:35:23
1 741
今天完成的事情:
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
评论