最近在做一个Web项目,找一个小的模块来做笔记,稍微整理下,嗯,入题了
整个项目所用框架大致如下:后台>Struts+Spring+JPA;
前台>jgGrid
下面是整个项目的后台功能逻辑部分:
下面是前台页面展示部分:
这是系统所用到的jar包:
因为用到struts标签所以需要引入一下文件(前面为路径):
1、 b/WebRoot/WEB-INF/struts-bean.tld
2、 b/WebRoot/WEB-INF/struts-html.tld
3、 b/WebRoot/WEB-INF/struts-logic.tld
配置文件主要有一下几个:
1、 b/src/META-INF/persistence.xml
2、 b/src/log4j.properties
3、 b/src/save.properties
4、 b/WebRoot/WEB-INF/applicationContext.xml
5、 b/WebRoot/WEB-INF/config.properties
6、 b/WebRoot/WEB-INF/struts-config
7、 b/WebRoot/WEB-INF/web.xml
下面由登录界面开始依次讲解:
首先系统自动加载index.jsp页面,其内容如下:
自动跳转到login.jsp即登录界面。
Login.jsp部分内容:
登录界面用style标签定义了大部分格式,SCRIPT则定义了一些按钮所响应的function函数。
此外,前台页面主要是定义了一个与后台通信的form,用户输入用户名和密码后,点击登录按钮,首先当然是通过SCRIPT脚本校验输入的信息是否为空,不为空则将form中的username、password参数通过function函数提交到该form标签中指定的后台action处理。
接下里,讲解如何寻找到对应的action的。
这里要用到前面提到的配置文件struts-config.xml了,其大致内容如下:
因为前台是从login.jsp传过来的参数,以及前台指定了传参数到loginAction,在此配置文件中我们可以很简单的找到在该action所对应的后台java类文件即com.b包中的LoginAction java文件。
然后我们进入LoginAction.java文件查看,这里呢又会发现首先创建了一个MyProperties类的对象,好,接下来我们进到这个MyProperties.java文件中看看都发生了什么。
1、 在这个类中,首先调用了loadProperties()方法,进入这个方法看一下,这个方法首先将前面提到的配置文件config.properties文件中的内容读取到输入stream中,然后加载到该文件开始定义的properties中,之后根据properties的name找到对应的value并且赋给系统System。
2、 加载完之后,将connection.JNDI_NAME、connection.usePool、connection.user等值赋给数据库连接池。
然后通过request.getParameter()获得前台传来的username\password参数,然后会发现创建了一个LoginUser的类对象,并且将该对象的ID赋值为空(这里为什么设为空,稍后讲解)、并通过request.getRemoteAddr()获取到登录者的IP赋值给该对象。
1、 我们来看一下LoginUser类中都有些什么:
主要就是定义了User的一些属性:用户名、用户ID、用户密码等及对应的get\set方法。
继续向下看,发现又创建了一个UserBO的类对象,并且调用了该类的setLoginUser方法。
1、 来看一下UserBO类:
这个类中先创建一个数据库连接池的实例,用到了前面配置文件applicationContext.xml中的bean>id=”dataSource”这个bean,读取相应信息。
2、 调用setLoginUser方法,继而调用ConnectionPool中的getConnection方法,返回之前建立的数据库连接。
3、 setLoginUser方法又创建一个UserDAO对象,然后调用UserDAO的setLoginUser方法,这个方法就开始写sql获取当前用户的相关信息,并且赋值给loginUser对象。
回到大主干LoginAction.java中,这时要进行if判断了,如果ID还是为空的话,则要重新登录了,因为如果登录成功的话刚才的UserDAO的setLoginUser方法已经得到了ID,此时就不应该为空了。如果登录成功了,则将刚才的loginUser的属性呢通过SpringUtils调用com.b.system.vo的LoginUser创建的loginUserSpring对象中。
然后通过request.getSession().setAttribute(),将loginUser的部分属性赋值给request。
这一系列的操作完成之后,即登录并且通过认证之后,及返回success。
接下来又到了查看struts-config.xml页面的时候了,当forward=”success”时跳转到welcome.jsp页面。
以上部分的流程图如下:
原文地址:http://blog.csdn.net/woody891/article/details/38365583