前言:
本案例是一个简单,但是完整的javaweb小项目。
1,主要功能:实现注册和登陆功能。功能截图如下:
图1:主页
图2:登录页面
图3:注册页面
2,用到的web知识:jsp,servlet,javabean等。并没有用到比较高级的框架,因为这些技术也是从基础到高级的必经之路,有必要扎实掌握。
源码详见本人的github:https://github.com/jimmyguo505/SimpleWebDemo
一,搭建开发环境
1,win10下安装jdk,配置好路径。请自行百度,本文不关注。
2,下载解压myeclipse10。详见本人上传的资源:点击打开链接
3,下载安装tomcat,并与myeclipse集成。详见本人博客:点击打开链接
4,下载安装mysql。详见本人博客:点击打开链接
5,下载JDBC的jar包,详见本人上传的资源:点击打开链接,解压后将mysql-connector-java-xxx-bin.jar文件复制到tomcat 安装路径下的lib文件夹下。
二,MVC模式和AOP分层思想
1,MVC模式
当然了,servlet一个人就能把所有的事干完,如图5。但是,这样做的缺点显而易见,在servlet(java类)中写网页标签是一件极其痛苦的事。
所以,引入jsp和javabean,来为servlet分担职责,大家各司其职,就形成了经典的MVC模式。如图4
M:Model 模型,封装数据。javabean
V:view 视图,展示界面。jsp
C:Controller 控制器,控制程序流程,传递数据。Servlet
图4:MVC结构图
2,分层思想
我们知道,浏览器form表单的数据会提交给servlet,servlet自己就可以实现所有的功能,然后把结果返回给浏览器。如下图所示:
图5:不分层的系统结构图
不分层的缺点很明显,对于每一个特定的功能(登录或者注册),都需要编写一个特定的函数来实现该功能。但是,每个函数中都会出现相同的数据库操作(比如登录 和 注册都需要查询数据库表),这就造成了代码冗余。而且代码都写在同一个servlet中,可维护性和可扩展性极差。于是乎,分层思想应运而生,其结构图如下:
图6:分层的系统结构图
三层结构将servlet中的方法进行了2次抽取,那么,servlet将不再关注业务的具体实现,只负责数据的传递。servlet将业务函数抽取到业务层,又将业务函数中的jdbc操作抽取到DAO层。这样,代码间的耦合度降低了,代码的冗余也降低了,易于维护,可扩展性也增强了。
将MVC和AOP相结合就形成了目前主流的web架构,如下图所示:
图7:mvc和AOP结合后的完整结构图
三,导入并运行项目
1,导入步骤:打开myeclipse--File--Import--General--Existing Project into Workspace--Next--Select root directory--Browser--选择项目的根目录--确定--Copy projects into workspace--Finish。
2,将项目添加到tomcat服务器中,并开启tomcat,之后即可在浏览器进行登录和注册。
四,相关技术说明
1,servlet/JSP技术部分请参见本人博客:点击查看博客
2,jdbc技术部分请参见本人博客:点击查看博客