一、基础回顾
response.sendRedirect是通过浏览器来做转向的。
假设在A.jsp页面设置request.setAttribute("username","admin");
那么在 request.sendredirect 转向的B.jsp页面中是不能通过request.getAttribute("username"); 来得到admin的。
这是因为上个页面请求已经结束,也就是 request这个对象已经消亡了。所以也就得不到admin了。
可以使用request.getDispatcherHeader(B.jsp").forward(request,response);在B.jsp页面就可以得到admin了。
此外要说明:如果你的jsp页面是在webroot目录下,那么在response.sendRedirect(参数);参数中的路径是不同的。
response.sendRedirect(参数);应该是:response.sendRedirect(request.getContextPath() + "/B.jsp");
而在request.getDispatcherHeader(参数).forward(request,response);应该使用request.getDispatcherHeader("B.jsp").forward(request,response);
二、mybatis学习
MyBatis是支持普通SQL查询,存储过程和高级映射的优秀持久层框架。MyBatis消除了几乎所有的JDBC代码和参数的手工设置以及结果集的检索。MyBatis使用简单的XML或注解用于配置和原始映射,将接口和Java的POJOs(Plan Old Java Objects,普通的Java对象)映射成数据库中的记录
实体类
entity User
Mapper文件
<mapper namespace="dao.UserDao">
</mapper>
其中,为该配置文件的命名空间,而所有对User表的所有操作都在这里完成,需要保证在整个项目下命名空间唯一
<select id="selectByUsername" parameterType="string" resultType="User">
select <include refid="userColumn"></include>
from t_user
where username=#{username}
</select>
select标签中有四个参数,分别是id、parameterType、resultMap,表示操作标识,参数类型、返回值类型。
其中操作标识需要在同一命名空间下唯一,可以任意取
返回值类型就是要返回的模型,也可以说是javabean,当然,这个是自己定义的