发表于: 2017-11-21 17:19:33
1 659
今天完成的事
【昨天的代码再完善】
将职业页面的url改了一哈。
顺便做了个并没有什么卵用的功能。
【mybatis操作语句替换】
学习了一个新的mybatis映射语句
<update id="updateLogTime" >
UPDATE user set logtime=#{logtime,jdbcType=BIGINT} WHERE username=#{username,jdbcType=VARCHAR}
</update>
DAO层的语句是这样的。
void updateLogTime(@Param("username")String username,@Param("logtime")Long logtime);
这样就可以进行多参传入。
【做一个注册账户的需求】
先是针对注册页面传入的账户名进行筛选。
有这个名字了,不允许注册。
没有,输入密码。提供注册。
对有名字进行判断这里有点问题。
我对这个名字进行数据库查询。
有这个的话返回的是一个ID。
但是没有返回的是null.....
如果是空怎么判断。。。
所以返回ID还是行不通的,我返回一个user类型吧还是。。。
//判断用户名是否存在,通过用户名返回ID。没有ID用户名不存在。
System.out.println(user);
System.out.println(user.getUsername());
User user1=userService.selectUserByName(user.getUsername());
System.out.println("进行判断之前");
if (user1 != null){
我进入注册页面,输入一个不存在的账户。
会显示注册成功。
如果输入的账户名存在。
会显示
至此注册需求简陋的达成了。
收获
其实重定向和转发是不一样的。
具体区别这个文档说的很清楚了http://blog.csdn.net/gavin_john/article/details/51262042
核心思想就是
【1】RequestDispatcher.forward方法只能将请求转发给同一个WEB应用中的组件;而HttpServletResponse.sendRedirect方法还可以重定向到同一个站点上的其他应用程序中的资源,甚至是使用绝对URL重定向到其他站点的资源。
【2】如果传递给HttpServletResponse.sendRedirect方法的相对URL以”/”开头,它是相对于整个WEB站点的根目录;如果创建RequestDispatcher对象时指定的相对URL以”/”开头,它是相对于当前WEB应用程序的根目录。
【3】调用HttpServletResponse.sendRedirect方法重定向的访问过程结束后,浏览器地址栏中显示的URL会发生变化,由初始的URL地址变成重定向的目标URL;调用RequestDispatcher.forward方法的请求转发过程结束后,浏览器地址栏保持初始的URL地址不变。
【4】HttpServletResponse.sendRedirect方法对浏览器的请求直接作出响应,响应的结果就是告诉浏览器去重新发出对另外一个URL的访问请求;RequestDispatcher.forward方法在服务器端内部将请求转发给另外一个资源,浏览器只知道发出了请求并得到了响应结果,并不知道在服务器程序内部发生了转发行为。
【5】RequestDispatcher.forward方法的调用者与被调用者之间共享相同的request对象和response对象,它们属于同一个访问请求和响应过程;而HttpServletResponse.sendRedirect方法调用者与被调用者使用各自的request对象和response对象,它们属于两个独立的访问请求和响应过程。
这个光看文档了,明天用代码跑一下试试。
遇到的问题
对servlet理解的还是不深刻。小课堂也讲的不是很清楚,看了点视频懂了个大概。。。这家伙其实就是个类。。。
明天要做的事
完成任务5学习任务6
评论