发表于: 2017-06-01 23:54:01

2 1148


今日完成

1、给密码进行md5加密,直接把用户名当盐,md5算法用的是org.apache.commons.codec.digest.DigestUtils工具类。

2、用RedirectAttributes 给重定向后的页面传参

完成了任务5


DES算法

DES算法是米国某公司发明被随后军方推广应用的高级对称密钥加密算法,其开创性的数据链加密方式使破译更加困难。

但是其密钥位数过低,现阶段计算能力好像只要不到一天就爆破了,所以被淘汰,简单项目可用。


在Java中实现DES算法

1)得到一个可信的随机数,作为Cipher对象的随机数源

2)将传入的key通过SecretKeyFactory转化为Cipher对象可用的key

3)Cipher.getInstance并初始化cipher


深度思考

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

Session是服务器上保存的会话状态,唯一session_id

cookie是保存在客户端的一些数据,在发送请求时交给服务器验证。

主要区别一个是服务器保存,一个是客户端保存

session可用于保存少量机密的数据如用户验证,权限

良好加密的cookie也能完成session的所有事情(存疑?),而且不需要占用服务器空间

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

过滤器相当于servlet的一次拦截,常可用于比如编码过滤

拦截器使用java的反射方式,可以被执行在action前后中各处

监听器在整个servlet生命周期存在,监听某件事情的发生,并可以在事情发生前,为其初始化参数之类,没用过,暂


明日计划

任务6 JMeter压测


问题

如果可以的话,其实我需要被提出问题


收获

尝试写一下http request发给服务器 ----- 服务器给回response这个过程,基于nginx,tomcat,SSM

1、http请求,请求前3次握手,http请求method URI [参数] 请求头 body

2、监听80端口的nginx upstream--server--location--静态页面或proxy的tomcat server

3、tomcat的层层结构(Catalina/localhost/server)下运行的servlet。

一般在webapp/WEB-INF/web.xml中配置servlet,若无,tomcat自带default-servlet,提供对静态文件的处理,处理路径吾暂不明

4、SSM框架下一般会配置spring的DispatcherServlet并引入所有的spring配置文件。

DispatcherServlet提供了对spring所有bean的初始化,及对spring控制流程的支持

5、这时候假设请求在servlet门口,servlet做好了所有准备工作。

a.过滤器在门口过滤一遍,不符合条件(怎么办,自定40x?自定跳转页面?mark1),true则继续往下 

b.request正常的话会被一个符合URL的Controller层方法捕获,Controller层的action将使用[调用其下层service层][其他工具类][自身代码],最后将返回一个ModelAndView,即视图模型[并传递参数]。

在这里还可以为response附加cookie,session等其他对象或是值mark2),当然可以先得到request包含的各属性。

也可以进行再次转发到另一个URL,或是直接返回40x(没试过mark4

c.在b过程中,拦截器HandlerInterceptor将符合URL的request进行“处理”,当其preHandle方法返回true时,postHandle继续操作,afterCompletion最后完成时被调用类似finally(mark3

d.request“变为ModelAndView交给viewResolver处理,一般在spring-web.xml中配置视图解析器,例如这样:

或是

或是添加tiles的视图解析

e.各视图解析器按优先级接到要返回的page名。有配置直接转发应该会直接转发掉。

优先级高的tiles解析器找符合其definition name的视图组合,布局+组件。

优先级低的默认解析器会直接找对应的jsp文件。

如果都没有,将返回404

f.这样或返回解析好的页面,或返回http状态码,或者是根据状态码写的页面(雾),[response中也被加入了服务器认为客户端需要的信息如cookie],在依次通过tomcat,nginx推出去,他们也纷纷记下该记下的日志。

g.异常处理这个不太懂mark5,catch到并记下日志,返回给用户一个状态码页面包含错误原因(这里能写return???),根据异常里不写业务代码原则,用正常代码修复,应该是往后catch越少越好??


最后,以上是现阶段理解,肯定有很多疏漏,应该还有不少错误,希望没有什么大的错误。


返回列表 返回列表
评论

    分享到