从今天开始本人陆续在博客上发表,学习java web框架的过程,诚邀大家发表看法。
本文主要介绍 java web框架模型,需要学习的java技术范围,及开发环境搭建。
二、JavaWeb简介
2.1、JavaWeb架构模型
2.1.1、一层模型
最简单实现方式就是所有的功能都是通过JSP来实现,使用JSP页面来用请求,响应结果也是JSP页面。
模型描述:所有技术使用JSP来实现的,页面展示及业务逻辑处理使用jsp+JDBC。
涉及技术:JSP、JDBC
一层缺点:代码耦合性高,不适合实际的应用,其代码可读性及可维护性差。
一层用途:实际中不会使用这种模型,应用在JSP学习。比较适合初学者,逻辑简单,容易理解,开发快。
参考源码:JSP.Zip
2.1.2、二层模型
将业务处理逻辑代码,从JSP抽出来交由JavaBean完成。用户的请求和响应还是通过JSP页面来交互。
模型描述:业务逻辑通过JavaBean来实现动作的触发,页面展示还是通过JSP来实现的。比一层模块好处在实现页面和数据层处理的分离。
涉及技术:JSP、JavaBean、JDBC
二层缺点:代码耦合性还是高,功能模块还未独立出来,不能功能调用。
二层用途:比较适合初学者,逻辑简单,容易理解,开发快。也可以作一些功能简单的系统,比如留言板。
参考源码: JSP_JavaBean.Zip
2.1.3、三层模型
将用户请求交由控制器,然后由控制选择要处理的业务逻辑,及响应要展示的JSP页面。
模型描述:简单模型的缺陷,实现MVC的结构。将控制层及数据处理逻辑及页面展示独立出来,已经实现极大的解耦;框架可灵活变化。
涉及技术: servlet、JSP、JavaBean、JDBC
三层缺点: 使用基本技术上搭建的,费力,开发代码周期比较长,可以引入其他框架来实现比如struts。
三层用途:引进可以搭建中小型网站开发。
参考源码: Servlet_JavaBean_JSP.Zip
2.1.4、四层模型
按三层架构模型已经很经典了,但是在实际项目中会对三层架构扩展,做成四层架构,增加对象持久层使对数据的操作变成对对象的操作。
模型描述:控制层底层技术使用servlet,展示层使用jsp,逻辑处理层使用javabean+加上数据持久化来实现。非常完整的技术框架。
涉及技术:
控制层:struts、spring、webwork、JSF等
显示层:struts、 Tiler、JSTL等
数据持久层: Hibernate等
四层缺点:
四层用途:引进可以搭建大、中、小型网站开发。
参考源码: struct+hibernate.Zip 等等
2.2、涉及到Java-web技术
2.2.1、JSP
JSP技术是在servlet之后产生的
JSP基本语法:
两个注释、三个脚本元素、三个指令元素及八个指令动作。
JSP九大内置对象:
request对象
response对象
pageContext页面上下文对象、
Session对象、
Application对象、
out输出对象、
config配置对象、
page页面对象、
exception对象。
2.2.2、JavaBean
JavaBean封装业务逻辑,以便JSP或其他类调用。JavaBean是由一些属性和操作这些属性的方法。
2.2.3、Servlet
Servlet是基于线程的,而传统的CGI和Apache都是基于进程,每个servlet的请求都会产生一个线程。这对系统的利用率来说是一场革命。
Servlet可用于MVC开发技术中控制器,用系统的初始化,服务拦截、过滤等等。
2.2.4、Struts1.x 和Struts2.x
Struts是一个基于J2EE平台的MVC框架,是开发Web应用程序的开发的开源框架。
Struts把servlet、jsp、自定义标签和信息资源(information resource)整合到一个框架中。
Struts1.x目前版本有: struts1.0、struts1.1、struts1.2、struts1.3
目前稳定版struts1.2
Struts2.x 目前已经发布Struts2.0,它其实就是WebWork2.2
Struts1.x和Struts2.x完成没有关系。
两个版本都在更新
2.2.5、Hibernate
Hibernate是一个开放源代码的对象关系映射(ORM)框架,它对JDBC进行了非常轻量级的对象封装。是我们非常方便的操作对象来操作数据库。因此只要JDBC连接,我们都可以是Hibernate来操作对象。
Hibernate版本有:4.*、3.3、3.2、3.1、3.0、2.x、1.x
这里选用稳定4.3.9版本
2.2.6、Spring
Spring是一个轻型容器(light-weight container),其核心是Bean工厂,用以构造我们所有需要的model。
目前最新的版本Spring4.1.6
2.3、集成环境搭建
2.3.1、安装目录
文件目录管理如下:
2_javaIde: 存放是javaIde 工具,比如eclipse, netbeans等等
3_ArcheTool:存放是用于java项目建构的工具,比如ant,grace,maven
4_workspace:存放是eclipse的工作空间
这个按照开发工具及版本或项目来制定的。
5_javaJar:存放是java的jar包
6_webcontainer:c存放web容器,比如tomcat及oc4j和webservice
7_javaStudy:存放java学习资料
2.3.2、开发工具及安装目录
JDK1.7/JDK1.8
Tomcat 7.0/8.0+
Mysql5.6 +
Eclipse(Version: Luna Release (4.4.0))
1、JDK
1、下载安装
安装路径:C:\ProgramFiles\Java\jdk1.8.0_45
安装路径:C:\ProgramFiles\Java\jdk1.7
2、配置
配置环境变量
java主目录
JAVA_HOME=C:\ProgramFiles\Java\jdk1.7.0_05;
PATH变量设定
PATH= C:\ProgramFiles\Java\jdk1.7.0_05\bin;
验证查看版本
Java –version
Javac –help
表明JDK配置成功。
2、MySQL
以后启动这个bat就可以。
1、安装
下载:MySQL_5.6.22_win32_XiaZaiBa.zip
安装指定路径:C:\Program Files\MySQL
2、启动服务
Bin目录下其他服务
启动服务
Cmd –> 输入mysqld –console
停止服务
关闭cmd窗口就可以
可以下一个批处理bat脚本来启动
bat文件名 amysql_startup.bat
内容:mysqld–console
以后启动这个bat就可以。
3、配置
使用默认配置就可以
数据库工具-NavicatPremium11.0
建立数据库链接
创建数据库 – demo
新增用户表 – user
3、Tomcat
1、安装
下载: apache-tomcat-7.0.61-windows-x86.zip
apache-tomcat-8.0.21-windows-x86.zip
解压到:
E:\6_Java\6_webcontainer\apache-tomcat\apache-tomcat-8.0.21
E:\6_Java\6_webcontainer\apache-tomcat\apache-tomcat-7.0.61
C:\ProgramFiles\apache-tomcat-6.0.41
2、配置
配置环境变量
Tomcat主目录
TOMCAT_HOME= C:\ProgramFiles\apache-tomcat-6.0.41
配置监听端口
打开文件C:\ProgramFiles\apache-tomcat-6.0.41\conf\server.xml
这里还可以设置最大线程数,及空闲最小线程数和空闲最大线程数。
点击“startup.bat”启动服务
表明启动成功。
配置一个站点
新增Context节点
<Contextpath="/myapp" reloadable="true"
docBase="E:\myAppWeb"workDir="E:\myAppWeb\work" />
HelloWorld.jsp代码
访问网站:
访问成功
4、Eclipse
1、下载
使用版本:Version:Luna Release (4.4.0)
官网下载:eclipse-jee-luna-R-win32.zip
2、安装
解压到:E:\6_Java\2_JavaIde\Eclipse\Luna44
3、配置
主要配置JDK和Tomcat
打开【Window->Preference】
集成JDK
集成Tomcat
配置更多的版本
4、验证
2.3.3、验证集成开发环境
1、新建一个项目
新建一个项目web project
使用Tomcat运行服务
2、运行项目
右击项目test选择Run As
自动生成一个Server
并且多了个Server目录
新建一个Jsp文件
就说明成功。
实例代码:test.war
2.5、开发目标
使用不同架构模型开发各种Demo(X)程序,也作为以后系统开发原型。
项目路径:E:\6_Java\4_workspace\wp_eclipseluna44\demo
源代码后续会上传上来。
1、JSP
2、JSP_JavaBean
3、JSP_JavaBean_Servlet
4、Struts
5、Struts_Hibernate
6、Spring
7、Spring_Hibernate
8、Struts_Spring
9、Struts_Spring_Hibernate
10、Struts2_Spring_Hibernate
11、Struts_Spring_Hibernate_ForOA
12、Struts2_Spring_Hibernate_ForOA
接下来,我们将通过使用一个实例来讲解,不同模型的技术实现。(请看下回的博文)