发表于: 2017-11-22 16:22:22
1 697
今天完成的事
【servlet的生命周期】
void init(ServletConfig config):初始化
* 初始化方法
* 执行者:服务器
* 执行次数:一次
* 执行时机:默认第一次访问的时候
void service(ServletRequest request,ServletResponse response):服务 处理业务逻辑
* 服务
* 执行者:服务器
* 执行次数:请求一次执行一次
* 执行时机:请求来的时候
void destroy():销毁
* 销毁
* 执行者:服务器
* 执行次数:只执行一次
* 执行时机:当servlet被移除的时候或者服务器正常关闭的时候
serlvet是单实例多线程
默认第一次访问的时候,服务器创建servlet,并调用init实现初始化操作.并调用一次service方法
每当请求来的时候,服务器创建一个线程,调用service方法执行自己的业务逻辑
当serlvet被移除的时候服务器正常关闭的时候,服务器调用servlet的destroy方法实现销毁操作
【MD5 的不可逆性】
师兄问这个问题的时候脑癌了。
其实一定是不可逆的。。
因为可逆代表着一一映射。。。但是MD5的范围是32个16进制的数。。。
只要长度超过16位的字符串,变数就超过MD5的范围了。。
看见一位知乎大神的表述更形象。数据哈希之后就变成浆糊了,你能把浆糊变成馍馍吗
【做一个拦截成功的页面】
其实就做一个跳转。这里用一些昨天学到的知识。
跳转和重定向哪里不一样。
我先用重定向来完成这件事。
这是一个跳转语句。拦截成功之后跳转到登陆页面。
会是这样的。
注意,跳转过程相当于response.sendRedirect(url)跳转到指定的URL地址,产生一个新的request。
redirect 会首先发一个response给浏览器, 然后浏览器收到这个response后再发一个requeset给服务器。
我再用跳转完成这件事。
会发现。域名没有变。
其实不止域名没有变。
forword换到登陆页面这件事,浏览器都是不知情的。
用来传递request的,可以一个Servlet接收request请求,另一个Servlet用这个request请求来产生response。request传递的请求,response是客户端返回的信息
【做一个登出的操作】
其实就是一个清楚cookies的操作。。
还挺简单的。。
改一下前端页面
@RequestMapping(value = "/logout" ,method =RequestMethod.GET)
public String logOut(HttpServletRequest httpServletRequest,HttpServletResponse httpServletResponse){
Cookie cookie = new Cookie("Token",null);
cookie.setMaxAge(0);
cookie.setPath("/");
httpServletResponse.addCookie(cookie);
System.out.println("登出清空cookies");
return "12";
【修复一个task2任务中的乱码问题】
首先要排查是哪里的错误导致乱码了。
我打了无数个日志。(才追到出问题的地方)
数据都是正常的,但是进入数据库的一刹那。
就已经变成乱码了。
那么就是数据的问题。
经百度。
默认的数据库编码有问题。
解决的办法,要么改数据库默认编码。
要么在数据库链接后面加
?useUnicode=true&characterEncoding=UTF-8
。更新搞定。
有个感想就是,如果你做任务的时候遇到一个恶心的问题。
你放在那里让它冷静一下。
过了一阵你回头看。可能简单很多。。。
【开始任务六】
这个JMeter的启动方式也是挺非主流的。
为啥不能直接建一个exe...
摸清了一下页面。
添加被测页面
右击“线程组” > “添加” > “Sampler” > “HTTP请求”。
这是我自己的程序~
但是跑完之后我都不知道测没测就结束了,一脸懵逼。
查了一下,主要还是看日志。
选项” > “Log Viewer”看看运行的日志。
看到一个文档介绍了一个更牛逼的展示。。。。
然后
什么头信息体信息都有~
是不是很秀!!
最简单的JMeter的性能测试~
睡觉~
明天起来接着搞~
收获
【一个前端的知识点?(也和后端沾点边)】
jsp的4个作用域 pageScope、requestScope、sessionScope、applicationScope的区别
1.page指当前页面有效。在一个jsp页面里有效
2.request 指在一次请求的全过程中有效,即从http请求到服务器处理结束,返回响应的整个过程,存放在HttpServletRequest对象中。在这个过程中可以使用forward方式跳转多个jsp。在这些页面里你都可以使用这个变量。
3.Session是用户全局变量,在整个会话期间都有效。只要页面不关闭就一直有效(或者直到用户一直未活动导致会话过期,默认session过期时间为30分钟,或调用HttpSession的invalidate()方法)。存放在HttpSession对象中
4.application是程序全局变量,对每个用户每个页面都有效。存放在ServletContext对象中。它的存活时间是最长的,如果不进行手工删除,它们就一直可以使用
总结:当数据只需要在下一个forward有用时,用request就够了;
若数据不只是在下一个forward有用时,就用session。
上下文,环境信息之类的,用application。
【另一个关于request的知识点】
任务二的时候用到一个
requestScope
那request和requestScope区别是什么呢?
pageContext.request是一个具体的对象,在你的http请求过程中存在。
requestScope是一个定义, 表明一个http请求的整个声明周期,它只是一个定义而已,不是一个对象。 EL中你可以在这个周期中放置、获取对象。(当然,其实真正的操作也是针对request对象的)。 比如${requestScope.a.b},其实就是要表明我告诉jsp要到requestScope这个声明周期中获取对象a.b.而背后的实现就是从request.getAttribute("a",然后根据表达式得到相应的a.b对象。
JSP内置对象
request的主要方法
getAttribute
这个方法可以取出指定名称的这个属性的值。这个属性可以用(Stirng name,Object o)方法进行赋值,如果没有对这个属性赋值,则取值得操作返回null
另外
request.getParameter("QworkId");
这个方法可以获得客户端提交到服务器的参数
遇到的问题
服务器的nginx老宕机。。。一晚上宕机三次了,
明天查看日志调一下。。。
明天计划的事
完成任务6(吹牛逼
评论