分享

基于Java spring MVC框架 开发初步

 大梦吾觉 2015-03-02


基于

Java spring MVC

框架

 


开发初步




                                          

——以做一个留言板为例


作者:
zccst


 


开发环境:


1

java 1.6


2: mysql 5.1


3: resin 3.1


4: eclipse 3+


 


开发环境配置:



Eclipse
里运行
resin


 


 


以做一个记事本(
guestbook
)为例,全部工作可分为三部分:


第一部分:前台
html
页面。


第二部分:
Java
程序


第三部分:配置


 


第一部分:前台

html

页面





velocity

        

编写
guestbook.vm


解释:
guestbook
是指想要实现一个在浏览器里能看到的记事本的界面,用
html
语言来编写。


其后缀
.vm
是自己在配置文件里设定的,所以,你可以设置
.jsp
等等。


 


我的
html
代码是:


<!DOCTYPE html
PUBLIC

"-//W3C//DTD

XHTML

1.0

Transitional//EN"

"http://www./TR/xhtml1/DTD/xhtml1-transitional.dtd"
>


<html xmlns=
"http://www./1999/xhtml"
>


<head>


<meta
http-equiv=

"Content-Type"
content=
"text/html;

charset=gb2312"
/>


<title>guestbook</title>


</head>


<body>


<center>


<ul>


#foreach

(
$msg
in
$!msgList
)


<table width=
"825"
height=
"43"
border=
"0"
>


 
<tr>



   
<td width=

"64"
><li>
$msg.getUsername
()</li></td>


   
<td width=

"127"
><li>
$msg.getTitle
()</li></td>


   
<td width=

"620"
>
$msg.getContent
()</td>


 
</tr>



</table>


#end



</ul>


在这里把那个留言列表

列出来就可以了



<form action=
"/Guestbook.aspx?msg=insert"
method=
"post"
name=
"loginform"
>


<table bgcolor=
"#B3B3FF"
>


<caption>
欢迎访问留言板
</caption>


<tr>


<td>
用户名:
</td>


<td><input
type=

"text"
name=
"username"
size=
"40"
></td>


</tr>


<tr>


<td>
主题:
</td>


<td><input
type=

"text"
name=
"title"
size=
"40"
></td>


</tr>


<tr>


<td>
内容:
</td>


<td>


<textarea name=
"content"
rows=
"10"
cols=
"40"
></textarea>


</td>


</tr>


<tr>


<td><input
type=

"submit"
value=
"
提交
"
></td>


<td><input
type=

"reset"
value=
"
重填
"
></td>


</tr>


</table>


</form>


</center>


</body>


</html>



1

#foreach 
.. .. #end


一段是用来显示留言,这是后话。



2
:这里深刻体会到
html
语言的重要性了。虽然公司分做前台交互页面和后台编程的,但是编程时如果你掌握了
html
,会大大加快你开发的速度。所也,还是学吧!而且是所见所得,符合我的特点。具体细节不解释了,这些标签你查了,记住了,就知道了,会用了。



3
:大学时也用
Dreamweaver
做过一段网页,后来由于感觉自己以后从事这个职业有点“大材小用”,于是放弃了(实际未必)。而
3
年后的今天,我又一次学起
html
,不知道是不是上天给我开了一个玩笑,戏谑我的尊严,不管怎么说,这三年我改变了好多。如今的妥协我相信不会遥远了。



4
:我把留言页面和留言后提交放在了同一个页面了,其实这只是页面跳转的问题,学完了
Java
编程就会觉得实现起来很简单。


 


第二部分:

Java

程序




 


第一步:登录
mysql
数据库,创建
guest_book
表。用来存放留言信息。


CREATE TABLE
`guest_book`


(


 
`id` int(10) NOT NULL AUTO_INCREMENT,


 
`title` char(50) NOT NULL,


 
`content` text NOT NULL,


 
`username` char(15) NOT NULL,


  
PRIMARY KEY (`id`)


) ENGINE=InnoDB
AUTO_INCREMENT=1 DEFAULT CHARSET=utf8;


 


第二步:写函数,按常规顺序(注:后来的调用与书写时正好相反)


GuestBook.java

 


   


成员变量与数据库中
guest_book
表中项一一对应。成员方法就
get

set
方法。可由系统根据成员变量自动实现。


 


GuestBookDAO.java

 

接口类
 

由静态成员变量和抽象方法(没有方法体)组成。


抽象方法指出该留言板实现几种功能,比如


List
getAllGusetBooks(

int

start_index,
int

end_index)
显示留言板内容


int getAllGusetBooksCount()     
                           

显示留言板内容条数


void insertGusetBook(GuestBook
guestbook)  
             

写入一条新留言


 


SqlMapGuestBookDAO.java

 

接口实现类
 

实现接口类中的抽象方法。


难点在于调用系统已经写好的类中的某些成员方法,完成操纵数据库的过程。


本例是
SqlMapGuestBookDAO
extends SqlMapClientDaoSupport

,然后调用父类的成员方法:


getSqlMapClientTemplate().queryForList
(

"getAllGuestBooks"
,map)


getSqlMapClientTemplate().queryForObject
(

"getAllGuestBookCount"
)


 


GuestBook.xml

  
xml

文件
  


(1)
,实现
Java
程序与数据库的链接,完成增删改查。


(2)
,其里面的项数与接口实现类中的成员方法个数是一一对应的。传递是通过接口实现类中成员方法的返回值(函数参数)。


 


后面几个
Java
程序的顺序可由颠倒,但一般顺序是:


GuestbookController.java


控制层是客户端与服务器端直接的连接入口,所以肯定会在两者之间传一些参数。


此处既是重点又是难点。


1,


定义容器,存放数据,用来接收页面发来的数据。同时,也负责再显示到页面上。


2,


页面访问时的做何处理


3,


其具体实现调用服务层(
service
)的函数


4,


返回值(跳转)


 


 


GuestBookService.java
 
  




与接口实现类
SqlMapGuestBookDAO
的成员方法对应。


 


注:贯穿始终的是:


1,


异常处理。比如
DataAccessException



2,


实现系统已经写好的接口。如,在
GuestBook.java



public class GuestBook implements Serialzable{}



3,


重写系统已经写好的类中的部分成员方法。比如控制层。如,


4,


调用系统已经写好的类中的某一个成员方法。如在
SqlMapGuestBookDAO.java



当然前提是继承该方法所在的类:新类

extends

SqlMapClientDaoSupport



5,


haha


 


不难看出,系统已经写好了很多接口和类,这些为我们提供了方便,但是你最好记住常见的系统已经写好的接口和类。


 


 


现在总结一下:


当一个页面请求来临时,首先通过配置文件找到控制层(
Controller
),在控制层经过处理后,调用服务层(
Service
),服务层又调用接口实现类(),接口实现类调用系统函数进行处理,于是通过
.xml
配置文件,找到数据库指令,完成数据库的增删查改功能。


 


 


 


写好函数后,就可以开始配置了。


第三部分:配置




一、数据库配置




数据库映射客户端配置。




applicationContext-jdbc.xml 



——接口类

(.DAO)

与接口实现类映射

(SqlMap**DAO)


guestBookDAO  


映射到

 
SqlMapGuestBookDAO





源码:


<
bean
id
=
"sqlMapClient"

class
=
"org.springframework.orm.ibatis.SqlMapClientFactoryBean"

>



<
property
name
=
"dataSource"

><
ref
local
=
"dataSource"

/>


</
property
>


<
property
name
=
"configLocation"

><
value
>
WEB-INF/sql
-map-config.xml

</
value
>


</
property
>


</
bean
>


增添:


   

<
bean
name
=
"guestBookDAO"

class
=
"com.sg.xiyou.dao.ibatis.SqlMapGuestBookDAO"

>


       

<
property
name
=
"sqlMapClient"

>

<
ref
local
=
"sqlMapClient"

/>

</
property
>


</
bean
>


 


 


sql-map-config.xml 


——与实现增删查改数据库


(.xml)

相关联




实现接口类

SqlMapGuestBookDAO

里的几个函数与

GuestBook.xml

里的几个数据库操作一一对应。凭借的手段是通过

SqlMapGuestBookDAO

里的几个函数的参数分别传递。




注意每个函数里的参数都大于或等于一个。




<
sqlMap
resource
=
"com/sg/xiyou/dao/ibatis/maps/GuestBook.xml"

/>


 


 


二、服务层配置




对象

guestBookService 


属于

 




GuestBookService

,这样的好处是不再以定义类的对象的方式进行调用,目的是提高效率。




applicationContext-services.xml


<
bean
name
=
"guestBookService"



class
=
"com.sg.xiyou.service.GuestBookService"

 
autowire
=
"byName"

></
bean
>


 


 


三、前台页面与后台【控制层】函数链接配置




点击页面,跳转到

xiyou-servlet.xml






<prop key="/Guestbook.aspx"
>Guestbook
</prop>



通过关键字

Guestbook

,找到其相关定义。如上




通过定义,找到其所在控制层函数,通过名字(

autowire = byName

)。里面的属性及其对应值是函数在执行完后的返回值与跳转到此处指定的页面。(一一对应)




 


xiyou-servlet.xml   


——后台控制层函数





<
prop
key
=
"/Guestbook.aspx"

>
Guestbook

</
prop
>


 


<
bean
id
=
"Guestbook"

class
=
"com.sg.xiyou.action.GuestbookController"

autowire
=
"byName"

>


      

<
property
name
=
"commandClass"

><
value
>
com.sg.xiyou.domain.Guestbook
</
value
></
property
>


      

<
property
name
=
"formView"

><
value
>
/login
</
value
></
property
>


      

<
property
name
=
"successView"

><
value
>
/guestbook

</
value
></
property
>


   

</
bean
>


 


guestbook.vm      


——前台页面




<form action=
"/Guestbook.aspx?msg=insert"
method=
"post"
name=
"loginform"
>


 


 


 

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多