分析和学习Spring中的jpetstore用户管理
来源:互联网 发布:windows电脑管理工具 编辑:程序博客网 时间:2024/05/16 08:17
1、首先从注册用户开始,先看看jpetstore-servlet.xml中关于注册用户的bean定义,从定义命名中就可以看出下面这段就是注册用户的:
<bean name="/shop/newAccount.do" class="org.springframework.samples.jpetstore.web.spring.AccountFormController">
<property name="petStore"><ref bean="petStore"/></property>
<property name="validator"><ref bean="accountValidator"/></property>
<property name="successView"><value>index</value></property>
</bean>
1). formView呢?从AccountFormController的构造函数中得到,原来为EditAccountForm;
2). EditoAccountForm.jsp中显得非常乱,其实没有多少难理解的地方,最主要的是这个form既是添加新用户的,又是编辑用户信息的,所以显得有点乱糟糟的。
2、添加好了新用户,接下来看看如何登录,在jpetstore-servlet中发现这两个相关bean定义,如下:
<bean name="/shop/signon.do" class="org.springframework.samples.jpetstore.web.spring.SignonController">
<property name="petStore"><ref bean="petStore"/></property>
</bean>
<bean name="/shop/signonForm.do" class="org.springframework.web.servlet.mvc.ParameterizableViewController">
<property name="viewName"><value>SignonForm</value></property>
</bean>
1). 第二个bean是在运行时用户输入用户名和密码的form,叫做SignonForm,对于这个 ParameterizableViewController,用文档里的话说这是最简单的Controller,其作用就是在运行中指向 Controller而不是直接指向jsp文件,仅此而已。
2). SignonForm.jsp,里面就是一个简单的form,其action就是第一个bean,即/shop/signon.do,最需要注意的是 signonForwardAction,其主要作用是forward到需要输入用户名和密码的那个页面上去,这个变量哪里来的呢?看看下面:
<bean id="secureHandlerMapping" class="org.springframework.web.servlet.handler.SimpleUrlHandlerMapping">
<property name="interceptors">
<list>
<ref bean="signonInterceptor"/>
</list>
</property>
<property name="urlMap">
<map>
<entry key="/shop/editAccount.do"><ref local="secure_editAccount"/></entry>
<entry key="/shop/listOrders.do"><ref local="secure_listOrders"/></entry>
<entry key="/shop/newOrder.do"><ref local="secure_newOrder"/></entry>
<entry key="/shop/viewOrder.do"><ref local="secure_viewOrder"/></entry>
</map>
</property>
</bean>
原来,上面的signonInterceptor实现了preHandle,因此在请求上面的map页面时,首先要经过这个Interceptor,看看 SignonInterceptor的源码,原来在其中为signon.jsp赋予一个signonForwardAction对象,呵呵,总算明白了。
3). 接下来去学习一下SignonController,其主体部分中可以看出,首先取出用户输入的username和password,然后到数据库中验证 有没有这个用户,如果没有这个用户,返回各错误页面;如果成功,首先生成一个UserSession对象,在request的session加入这个 userSession,注意这部分代码中给出了PagedListHolder分页的简单使用方法,关于分页显示,以后再学习吧。
3、登录成功后,就可以根据不同的用户设施不同的行为了,取得用户信息,无非就是从session取出userSession即可。
- 分析和学习Spring中的jpetstore用户管理
- 分析和学习Spring中的jpetstore用户管理
- spring 学习jpetstore整理(-)
- spring-jpetstore学习
- spring-jpetstore学习
- read-JpetStore-3-用户管理
- Spring JPetStore学习(一)配置JPetStore
- Spring 版的 JpetStore 中的 AccountFormController 学习笔记
- Spring例子JPetStore分析---------1
- Spring例子JPetStore分析---------2
- spring JpetStore学习笔记(一)
- spring JpetStore学习笔记(二)
- spring JpetStore学习笔记(三)
- spring JpetStore学习笔记(四)
- spring-jpetstore 学习整理(二)
- spring-jpetstore学习之(一)jpetstore 安装篇
- 基于Spring例子的JPetStore分析
- 学习Spring附带源码jpetstore安装配置
- 取汉字拼音首字母的存储过程
- Web Sites Created Using ASP.NET
- SpringFramework中的AOP简单使用
- 20050907
- 浮点数的比较 ( 转载自 "顾问团 寻开心" 的 Blog )
- 分析和学习Spring中的jpetstore用户管理
- 简单说说SpringFramework
- 利用JSF、SpringFramework和Hibernate构建Web应用的实例讲述
- 用Acegi为你的Spring应用加把锁!
- 使用JavaScript定时取得脚本(不刷新网页,可更新内容)
- ASP小偷偷取地址并生成html
- 浮点数的比较 ( 转载自 "顾问团 寻开心" 的 Blog )
- 页面loading
- 页面loading(二)