发表于: 2018-03-02 23:10:54

0 613


今日完成:

1.       添加登陆web页面

<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<div class="container">
    <h1>
Welcome</h1>

    <form
action="/school/check" method="post">
        <input
name="name" type="text" placeholder="Username"><br/>
        <input
name="password" type="password" placeholder="Password"><br/><br/>
        <button
type="submit">Login</button>
        <br/>
        <br/>
        <br/>
        <br/>
    </form>
</div>

                                             

2.       tiles中添加sign_in项目,使用index模板

<!--singe_in项目-->
<definition name="tiles_index_sign_in" extends="layout">
    <put-attribute
name="title" value="登陆"/>
    <put-attribute
name="header" value="/WEB-INF/views/index_sign_in_header.jsp"/>
    <put-attribute
name="body" value="/WEB-INF/views/index_sign_in.jsp"/>
    <put-attribute
name="footer" value="/WEB-INF/views/index_footer.jsp"/>
    <put-list-attribute
name="cssPathList">
        <add-attribute
value="/css/base.css"></add-attribute>
        <add-attribute
value="/css/main.css"></add-attribute>
    </put-list-attribute>
</definition>

3.       修改数据库表和mapper,为学生表添加password

通过name查找password

<select id="findPasswordByName" resultType="java.lang.String" parameterType="java.lang.String">
 
select password
  from students
  where name = #{name, jdbcType=VARCHAR}
</select>

4.       创建一个md5类对密码进行加密

public class MD5 {
   
public static final String KEY_MD5 = "MD5";

    public static
String getResult(String inputStr) {
        BigInteger bigInteger =
null;
        try
{
            MessageDigest md = MessageDigest.getInstance(
KEY_MD5);
            byte
[] inputData = inputStr.getBytes();
           
md.update(inputData);
           
bigInteger = new BigInteger(md.digest());
       
} catch (Exception e) {
            e.printStackTrace()
;
       
}
       
return bigInteger.toString(16);
   
}
}

5.       controller里添加一个跳转到登陆界面的地址

@RequestMapping("/sign_in")
public String signIn() {
    
return "tiles_index_sign_in";
}

6.       账号密码登陆检查

@RequestMapping(value = "/check", method = RequestMethod.POST)
public ModelAndView check(@RequestParam("name") String name, @RequestParam("password") String password) {
    ModelAndView mav =
new ModelAndView();
    boolean
check = false;
    if
(null != name && null != password && "" != name && "" != null) {
        String md = MD5.getResult(password)
;
       
System.out.println(md);
       
check = schoolService.check(name, md);
   
}
    mav.addObject(
"name", name);
   
mav.addObject("check", check);
   
mav.setViewName("checking");
    return
mav;
}

排除null和空的情况,使用md5加密

7.       登陆跳转jsp

<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<%@
taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
<html>
<head>
    <title>
checking</title>
</head>
<body>
<c:if test="${true==check}">
   
<script>
       
alert("登陆成功");
       
window.location.href = "/school/index";
   
</script>
</c:if>
<
c:if test="${false==check}">
   
<script>
       
alert("登陆失败");
       
window.location.href = "/school/sign_in"
   
</script>
</c:if>
</body>
</html>

这个界面的问题在于还不知道如何进行传值,不通过form表单

明日计划:

1.       使用Token跟踪用户状态

2.       实现拦截器

遇到的问题:

1.       controller通过modelandview传值给jspjsp页面在不实用form表单的情况下将该值传给controller中的另一个jsp页面

2.       网上有多种DES实现方法,这个内容还需要加深

收获:

1.       实现通过form表单,使用md5加密,查找数据库完成登陆操作

2.       Tiles框架和jstl练习使用


任务总结:

任务名称:JAVA=TASK4

成果链接:https://github.com/IT-xzy/Task/tree/master/Java/wuyiqiang/Task4-master

任务耗时:20180212-030319天;未延期

技能脑图:附上个人和官方脑图(官方脑图在个人任务统计中可以看到)

                                             

任务总结:

 

a.     任务进度符合预期,国内放假回家耽误一些时间

b.    知识点基本都能涵盖到,json-taglib也有实现,脑图中漏掉了;

任务中遇到哪些疑难问题,最终是如何解决的,有哪些值得分享的收获
a.
任务没有延时,感觉任务四挺简单的,需要做的东西相对前三个任务来说比较少,但是网页这块的知识其实很多,以后需要多学习。

b. tiles框架这一块耽误时间很多,没问师兄,第二天才问,然后一个小时之内就解决了,少了两个jar包依赖。以后还是多问问题吧。

c. 脑图中画绿色的其实都只是使用过很简单的功能,并没有深入了解。需要学习的很多





返回列表 返回列表
评论

    分享到