发表于: 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



返回列表 返回列表
评论

    分享到