7.13 Java项目总结

第一天项目内容请看:
7.11 上午:http://www.jianshu.com/p/c64dcabb299e
7.11 下午:http://www.jianshu.com/p/0bc090495213

之前的成果:


7.13 Java项目总结_第1张图片
1.png

今天的成果:

7.13 Java项目总结_第2张图片
登陆.png
7.13 Java项目总结_第3张图片
注册界面.png
7.13 Java项目总结_第4张图片
登陆跳转界面.png
7.13 Java项目总结_第5张图片
登陆成功.png

当然还有登陆错误界面... 就不上图了

代码请参见:
https://github.com/hongXkeX/small_web_7.13

下面来总结老师讲的重点:

7.13 Java项目总结_第6张图片
index.jsp.png

此处关键是:
1.把 onclick 从表单处移“进入”submit处
2.进入用submit 注册用普通的button
(button和submit区别请参考:http://blog.csdn.net/x_fledgling/article/details/53842684 )
3.注意一句的作用。

关键代码:


    
    ![](zt.jpg) 

星辰聊天室登陆界面

用户名:


密码:

然后讲解的重点是jsp页面延时跳转到另一个页面:

实现方法一:


7.13 Java项目总结_第7张图片
跳转关键语句.png

关键语句:

  

其中3为延时秒数 ulr后为跳转目标jsp文件。

实现方法二:

7.13 Java项目总结_第8张图片
跳转关键语句2.png
  
    <% response.setHeader("refresh", "2;url=index.jsp"); %>
  

其中2为延时秒数 ulr后为跳转目标jsp文件。

再来看后台关键代码:


7.13 Java项目总结_第9张图片
后台传输显示.png
   message = "登陆成功";
   req.setAttribute("mess", message);  
   // 将页面转发到login_ok.jsp,并且携带request和response对象
   req.getRequestDispatcher("login_ok.jsp").forward(req, resp);  

此语言将提示字符串信息发送给login_ok.jsp文件:

7.13 Java项目总结_第10张图片
login_ok.jsp.png

login_ok.jsp文件关键代码:

   
      
${ mess }
正在进入聊天室...

其中
换行为格式化, ${ mess } 对应后台语句req.setAttribute("mess", message); 中的mess参数。

后台和jsp文件结合产生的效果:


7.13 Java项目总结_第11张图片
效果.png

另外说明实现代码的关键几点:
1.注册没用数据库,使用的是Map容器,这就需要我们把注册数据后台处理文件和登陆数据处理文件放到到一起(即Message.java一个文件),分成两个文件无法一边注册map.put() 和 登陆遍历验证存在性!如:

7.13 Java项目总结_第12张图片
一个文件.png

2.相关验证字符串要用的方式:

  String message = "";
  String name = req.getParameter("username") == null?"":req.getParameter("username");

不用此方式会发生空指针异常!!! 也要求我们需要采用try catch 异常处理机制:

3.采用异常处理:

7.13 Java项目总结_第13张图片
try.png
7.13 Java项目总结_第14张图片
catch.png

4.容器Map要采用public static 修饰:

7.13 Java项目总结_第15张图片
static map.png

若不采用static修饰(即不变成类成员变量) 会出现容器无法存储账号-密码 数据! 原因貌似是产生了多线程,每进入一次方法都会产生新的Map,当然也要注意生命周期的问题!!!
感觉加static 也是一种妥协且简单处理之法,学习到后面再用更好的方法解决之。

5. 之用:

7.13 Java项目总结_第16张图片
a.png
7.13 Java项目总结_第17张图片
b.png

登陆表单提交所在index.jsp文件:


7.13 Java项目总结_第18张图片
index.jsp.png

注册表单提交所在register.jsp文件:


7.13 Java项目总结_第19张图片
register.jsp.png

type="hidden" 使类似input等元素不可见,并且给两个文件的代码name属性赋相同的值("method"), value属性赋不同的值, 后台依fs.equals()方法判断是登陆表单提交还是注册表单提交,此法以把两部分逻辑代码早早区分开以不混乱(因为没用数据库,导致一个文件代码逻辑混乱,所以必须用if判断早早分开!)

今天的不足之处是密码的正则表达式不太清楚,等的和大家交流下如何实现老师要求的密码格式:非空 大小写字母 数字 _ , !@#$% 密码长度8到16位,(密码必须包含数字以及大小写字母)
有会的小伙伴可以留言。

有不足之处还请批评指正,不胜感激。

先写这些把,后续有想起来的再来补...

你可能感兴趣的:(7.13 Java项目总结)