Jsp—02—项目:某某某管理系统--登录注册退出模块


 

一、开发文档编写

项目名称:

  • 后台管理系统

项目需求:

  • 实现用户登录
  • 实现用户退出
  • 实现用户注册

功能分析

  • 用户登录: 根据用户名和密码查询用户信息。查到则登录成功,查不到则登录失败。
  • 用户退出: 销毁session
  • 用户注册: 将用户注册信息插入数据库

数据库设计:

  • 用户表:t_user
  • 用户id uid
  • 用户名 uname
  • 用户密码 pwd
  • 用户性别 sex
  • 用户年龄 age
  • 出生日期 birthday

SQL语句设计:

  • 用户登录: select * from t_user where uname=? and pwd=?
  • 用户注册: insert into t_user values(default,?,?,?,?,?)

-----------------------------------------------------
问题:
现在我们一个请求或者一个独立的业务逻辑都单独进行一个Servlet的创建进行请求处理。
但是一个网站的功能是非常的多,如果每个都创建单独的Servlet进行处理,这样造成Servlet过多。造成资源浪费。

解决:
服务器在接收到浏览器发送的请求后,会调用对应的Servlet进行请求处理。
然后调用Servlet中的Service方法进行处理。
我们将不同功能的处理封装成对应的方法。
在service方法中调用其对应的功能处理方法进行请求处理。
这样Servlet我们只需要一个。
新的问题:
如何在service方法中实现根据请求动态的调用其功能处理方法呢?
解决:
使用反射。
注意:
请求中需要附带要执行的方法名称。

 

 

 

MVC分层开发:

 

二、开发步骤:

  • 登录模块

1.  我们开发一般用uname  和  pwd,所以把login.jsp中的这部分属性改成uname和pwd;

 2.  在login.jsp中,  他的form表单会提交到index.html, 我们让他提交到main.jsp;  

 3.  更改css和js的动态绝对路径;  要知道,  jsp中,路径的第一个/表示什么!  (表示已经进入到了服务器根目录)

 4.  login.jsp中, 让form表单提交到控制层的Employees Servlet中;   

5.在控制层的EmployeesServlet中,  调用model层的service方法;

然后根据登录成功还是失败, 重定向到不同位置; 

成功则重定向到main.jdp; 失败则重定向到login.jsp;  

6.我们再回到login.jsp;

获取session, 如果sessin的flag是false, 说明登录失败了; 我们要在login.jsp中打印这句话---用户名或密码错误!

 7.在mian.jsp中, 我们添加一个新功能, 即在主页上显示------欢迎 '用户名' ,登录成功;      这句话;

我们该怎么做呢 ?

利用session, 获取uname标签里的值即可;

  •  退出模块

1.在main.jsp中, 把href标签的路径, 改成控制层的OutServlet, 这个servlet主要用来处理用户的退出请求;

2.创建OutServlet, 在销毁当前登录对象的session, 重定向到login.jsp

 

  •  注册模块

1.在login.jsp中,添加一个注册标签, 点击此标签, 将会跳转到 register.jsp注册页面中;

2.在register.jsp页面中, 填写好个人信息后, 点击提交, 页面会将form表单发送到RegisterServlet中;

3.控制层的Register Servlet, 在调用service层的方法, 执行insert语句后, 会重定向到login.jsp;

4.login.jsp根据session里的信息, 跳出"注册成功"的表示语;

 

posted @ 2019-09-15 21:14  Eric-Shen  阅读(506)  评论(0编辑  收藏  举报