总结
- jsp给我们的ControllerServlet.java,ControllerServlet.java获取参数,信息封装给
- RegisterFormBean.java的对象看是否符合格式,
- 符合格式再信息封装给UserBean对象,调用Dbutil插入方法查重.]]要创建一个user集合
- 成功跳哪个界面,打印信息注意什么时候要加getsession
- 失败跳哪个界面.主要在RegisterFormBean.java,创建一个集合errors用来插入错误信息
RegisterFormBean和ControllerServlet里面进行定义以下
errors.put("name", "请输入姓名.");name就是 "请输入姓名"
request.getSession().setAttribute("userBean", userBean);userBean就是输入的信息
request.setAttribute("DBMes", "你注册的用户已存在");
register.jsp输出:
正确formBean.name输出
错误formBean.errors.password输出,对象的集合的属性,
为什么能使用formBean.errors....formbean本来就是 RegisterFormBean类里面的
1在哪看到我们的数据呢,,userbean?
2什么时候用了session,有什么用
需要文件:
ControllerServlet.java
RegisterFormBean.java
UserBean.java
Dbutil.java
register.jsp
loginSuccess.jsp
gitee仓库:
gitee仓库 mvc经典实例注册表单: mvc经典实例注册表单介绍
以下页面
register.jsp
获取表单的name,email
formBean.name是怎么定义的
3为什么就可以formbean访问
要使用的jsp对象都在servlet里面用setAttribute定义的
request.getSession().setAttribute("userBean", userBean);给到用户的当然要确定一下域再来调用
setAttribute(key, value)
:这个方法将一个值(value)与一个键(key)关联,然后存储在当前的会话(session)中。在这个例子中,键是"userBean",值是userBean
对象
ControllerServlet.java
为什么不写在doGet里面,传的是POST方法
用formBean把东西封装给RegisterFormBean里面
不符合要求重定向
4为什么用getRequestDispatcher
符合要求用userBean把东西封装给UserBean里面]作为数据库
又要用Dbutil到数据库了查重,判断有没有重,调用1
DBUtil里的insertUser方法
5为什么要有getInstance
用对象间接给DBUtil,
response.setHeader("refresh","3;url=loginSuccess.jsp");3秒跳转
DBUtil.java
为什么要有getInstance
首先创建几个用户判断是不是重命名了
getInstance干嘛的
这个传入一个用户的引用对吧
6为什么要用创建对象的另一种方法
String userName = user.getName();
users.get(userName) != null这个集合里面要得到我的名字能不能得到能得到说明重名了false
不重true
创建集合存数据库
RegisterFormBean.java
errors.put("name", "请输入姓名.");设置name了name就是 请输入姓名
诊断
为什么RegisterFormBean里面不能用这个呢
xxxxxx request.setAttribute("RegisterFormBean", formBean);xxxxxx
因为发出去的是在session域里面,所以要加一个getsession
为什么要用两个bean...RegisterFormBean与userBean可以写到一块去吧