码迷,mamicode.com
首页 > 其他好文 > 详细

JPA项目的一个小模块案例

时间:2014-08-04 11:04:07      阅读:273      评论:0      收藏:0      [点我收藏+]

标签:jpa   web   struts   java   项目实例   

最近在做一个Web项目,找一个小的模块来做笔记,稍微整理下,嗯,入题了

整个项目所用框架大致如下:后台>Struts+Spring+JPA;

前台>jgGrid

下面是整个项目的后台功能逻辑部分:

bubuko.com,布布扣


下面是前台页面展示部分:

bubuko.com,布布扣

这是系统所用到的jar包:

bubuko.com,布布扣bubuko.com,布布扣bubuko.com,布布扣bubuko.com,布布扣

因为用到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页面,其内容如下:

bubuko.com,布布扣

自动跳转到login.jsp即登录界面。

Login.jsp部分内容:

bubuko.com,布布扣

登录界面用style标签定义了大部分格式,SCRIPT则定义了一些按钮所响应的function函数。

此外,前台页面主要是定义了一个与后台通信的form,用户输入用户名和密码后,点击登录按钮,首先当然是通过SCRIPT脚本校验输入的信息是否为空,不为空则将form中的username、password参数通过function函数提交到该form标签中指定的后台action处理。

 

接下里,讲解如何寻找到对应的action的。

这里要用到前面提到的配置文件struts-config.xml了,其大致内容如下:

bubuko.com,布布扣

因为前台是从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页面。

以上部分的流程图如下:

bubuko.com,布布扣 

 

JPA项目的一个小模块案例,布布扣,bubuko.com

JPA项目的一个小模块案例

标签:jpa   web   struts   java   项目实例   

原文地址:http://blog.csdn.net/woody891/article/details/38365583

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!