Edgar后端学习-由最近的jsp想到的乱七八糟,假如bootstrap、cookie合并service层等

写在前面

小yao昨天我们视频了下,他最近又回到javaSE上面的内存困惑了,但是他这个问题,我突然就觉得jsp这块没有相过这个方面的问题。感触最多的是初级的数据流、业务流和工程思维,包括对大学课程设置的吐槽。。。

因为我自己有些点还没有动手写,所以写在下面做一个记录,后面自己再回头来看来补充。自渡自渡

jsp阶段总结

  • 前后端交互一定要注意的点:input表单里面的name的属性一定要跟request存取对应上
  • 另外关于这块的前端你从bootstrap上拿下的代码,要主要他的前端自带的验证要去掉,比如说一些上面只能写邮件地址的,你应该上去就把type属性删除掉,这块说下理解英语还是很重要的。不至于你再背代码,而是理解代码。
  • 数据流问题一定要清晰,跳来跳去的转发和重定向。
  • 另外,拦截器一定要设置的明白,/* 不能用啊,可以/.do 或者 emp/ 之类的 不然所有请求都进到service层,你让过滤器的脸往哪里放。
  • cookie&&session cookie要 注意中文的编码和解码 编码是UrlEncode 解码是 UrlDecode
  • 然后cookie里面基本存的是SessionId 不会是全部内容,因为全部内容存到客户端这样不安全。用这个ID登录的时候再去取回来全部内容。
  • cookie的生命周期:正数:代表存活 秒数 负数:关闭浏览器就会消失的cookie 零是删除当前cookie
  • 还有cookie路径的问题,cookie只能接受到上节或者本级目录下发的cookie,所以这边的小技巧就是设置路径的时候这样写(注意其实实际获取转发处理cookie和session的是过滤器,所以你也可以整精确了,只能让过滤器拿到cookie)当然我本人比较懒就是像下面那么写的
 - cookie.setPath("/");
  • 过滤器的设置 不要跟servlet拦截器器冲突(其实这部分我觉得是数据流的问题)–吐槽一下你像我们的大学系统分析与设计开在大二,jsp开在大三。然后os设计里买呢就有数据流图,纯纯的本末倒置,没做过项目的人让他去做系统分析与设计。去画数据流图,当然了我大一c语言还没学明白的时候,还学过软件工程过程呢(不过已经改到大二了,相信过几年就能改到大三了,,像创新设计啥的你对着大一吹就好了呀,这个阶段还聊想法没啥意思了吧,现在我不缺想法,我缺动手实践)

  • 不过最近有一门课还是很有感触的-软件工程质量保证与测试。因为现在经常调bug,真的感觉工程性思维太重要了,尤其像我现在学的这种量级不大,但是前后端所有层都要自己写的程序。这块记下一句话:
    - 软件质量不能靠测试保证,一定要从前期、从设计、从规划就开始保证。

  • 简单说下jstl和EL表达式
    -为快速开发而生的el表达式,直接${username}==request.getA~~()取数据。

  • jstl也内置很多简化开发的语句。 然后jstl两个哥们一块使用可以输出一写,会被前端当做标签之类的符号。

 - request.setAttribute("name","<hello word!>");
 - <c:out value="${name}"></c:out>

像下一步我这边就要做一个jsp的商城项目,那从一开始写的时候,每个单元的测试,然后早早就预埋好打到后端的打桩输入,(不要期望你的代码一次跑成功,然后不成功的时候,你再重启服务很耽误时间的)整个数据流的清晰。因为现在写好了以后再去改的话 真比重写还要痛苦。
那些能携带数据的对象,然后他们的作用域

  • servlet上下文
  • cookie
  • session
  • request
  • response
  • 这样就能有不同作用域的长短数据流来回跑了,其实我觉得就是他们搞的前后端太耦合了。。。
    重构service层,把之前的合并
    我觉得这块的知识比较简单,基本就是一个substring取出你真正核心的业务地址(url的最后我们一般就是crud或者login啊) 然后我自己再写一个switch里面去放好每一个查询的功能一坨代码(这块其实应该封装一下最好了)这块最核心的就是,web.xml和你每一个提交动作的路径配合(比如说 拦截的是 emp/* 那么action=“emp/index” 然后过滤器的配置 啊,也是 emp/*)你要让过滤器在你所有service层前面,因为实际来讲所有的增删改查都应该在登录状态下。然后登录的话,你可以单独写个层,不来走这个 就不emp/login了 直接login 因为登录没有理由要求客户有session吧。
    监听器
    -未完待续 暂时 只是知道,他是在特殊对象的创建和销毁的时候进行监听。

那些快速测试的小技巧分享

  • 我觉得第一点就是心态了,还是那句话,别觉得自己一次能成。一定要预埋打桩点 idea下的技巧
    1.serr-带颜色的输出 2.soutm-直接输出这个类名 清晰知道你到底哪个类有毛病–建议配合使用

  • 第二就是在学习或者这种单元点测试的时候cookie、session、request总之涉及到这种一次请求的时候,我最开始是非得去写一个超链接 或者 写一个表单的。后期学到了一手直接去配置web.xml里面的拦截器就好了,然后记住拦截器要拦截的url就可以了 不用有实际的前端页面,然后测试的数据,直接扔到后台输出就好了呀。

<form class="form-horizontal" action="emp/login" method="post">
 - <td><a href="updataperson.jsp?id=<%=persons.getId()%>">编辑</a></td>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值