目标:

本文主要教会大家如何搭建一套简单的Eclipse开发框架,为快速开发网页项目做准备。

学习前提:

安装好Eclipse开发环境,懂得简单的配置,新建和发布项目。

学习案例:

开发一个登录功能,前端HTML页面发送数据到后端,后端收到数据,并验证返回结果。

(蚂蚁虽小,五脏俱全,这样一个简单实现,可以让你快速了解什么是架构。本文的所有源码包含库,都在附件云盘资料中,可提前下载,同步实践,学习更快!)

架构示意图:

系统架构:MVC分层架构(Model数据模型层,Control业务处理层,View视图层)

(1)Model数据模型层:model.User.java

说明:简单的数据型类对象,包含数据字段及Get/Set方法,俗称:javabean。因为我们要做用户登录功能,那么显然,用户字段包括:用户名、密码。

(2)Control业务处理层:control.User.java

说明:业务逻辑处理对象,它会使用模型层的数据,你可以在这里进行数据判断,数据转换等,并将结果返回给视图层。

(3)View视图层:Login.html

说明:视图层很好理解了,就是用户看到的交互界面,通常是前端HTML页面,包含标签、脚本、样式,动态网页与静态网页不同,动态网页是在不重新加载页面的情况下,实现网页的局部变化。目前,主流网页与后台异步通信的主要方式是ajax(post或get),数据的主要格式是json。

本文中,我们将从登陆页面发送以下数据给后台,并简单判断返回结果:

(1)发送的格式:

{"ask":"login","UserName":"tangbin","PassWord":"123"}

ask—指令,UserName—用户名,PassWord—密码

(2)返回的格式:

{"json":"ResultJson","ask":"login","code":"0","message":"密码错误!","data":null}

ask—指令,code—指令

实践:

一、新建项目(bin-test)

New—》Web—》Dynamic Web Project

项目命名,本文命名bin-test

项目新建后自动生成项目结构

二、后端搭建(JsonServlet、control.User.java、model.User.java)

1、拷贝jar包

jar文件包含了已编译的java的可执行程序,请将本文附件中获取本框架的核心bin.jar,以及本框架依赖的相关jar包,需要一并拷贝到WEB-INF下的lib文件夹中,建议直接将整个lib文件夹拷贝过来。

2、新建包

在src源码文件夹中新建package包:

(1)control:放置业务控制类

(2)model:放置数据模型类

(3)servlet:服务

3、新建类

控制层:control.User类(继承类:BaseJsonHandler,在bin.jar包中),代码如下:

其中:

(1)GetParamStr(参数名):获取前端传过来的参数;

(2)ResultJson:是一个结果类,可以设置code、message等字段给前端;

(3)WriteResult(返回数据包):把操作结果数据返回给前端;

模型层:新建model.User类(继承类:BaseJson,在bin.jar包中),代码如下:

 服务层:需要右键servlet包,New新建——》Other——》Web——》Servlet

为服务命名,本文用:JsonServlet

Finish完成后,Eclipse会自动生成代码,包含get和post请求处理方法:

我们主要使用post方法,请参照修改post方法

这两句与框架有关,复制粘贴即可,这里的xml与框架有关,后续会说明,建议按本文命名。

这便是后端的所有内容。

三、前端搭建(Login.html)

前端的WebContent文件夹中添加js文件夹,用于放置框架所需的js文件,并新建login.htm前端页面,把js引入html文件中。

前端html代码如下:

前端js代码如下:

四、配置XML

前端的指令如何映射到后端呢?如:ask为login的指令传给User的Login方法并返回

我们注意到,后台服务层JsonServlet使用了一个XML文件,C://XML/bin-test.xml

这个XML文件中包含了前端到后端的访问路径,通过前端指令,定向调用后端的制定方法,配置方法如下所示:

(1)code:代表ajax发送的ask指令,本文中前端发送了login指令;

(2)class:指向后台的某个控制类,本文中为conrol.User;

(3)method:需要调用的方法名称;

五、运行效果:

右键项目,RunAs——》Server,输入用户名密码,效果如下。

输入了正确的用户名和密码,后端发送了code=1结果包,前端收到后显示出ok。

六、附加说明

这就是框架使用的主要内容,可以看出,本框架使用了MVC进行分层,并使用了映射实现了前后端的关联。

这套框架使用很简单,为了让您快速了解该框架使用,control.User控制类中并没有操作数据库,Login.html中只用了最简单的标签和脚本。

基于本框架使用的其他应用,会在后续中持续介绍,包括:

(1)如何基于本框架开发一套完整系统,包括基础数据设计,权限控制;

(2)如何结合VUE、Element-UI控件开发前端页面;

(3)如何结合Hibernate操作数据库;

(4)如何设置获取Session,可以调用BaseJsonHandler基类的GetSession、SetSession方法;

(5)如何将对象(数组)按需进行JSON序列化(toString),并在前端ajax.GetData()获取;

(6)其他;

本文的所有源码附件,您可下载获取,请尊重知识版权,复制和使用注明出处。

下载

==================================================================

百度云盘下载地址:

链接: https://pan.baidu.com/s/1uByiOqCQZI4JNejmFSiDZQ

提取码: uqch

CSDN下载地址:

https://download.csdn.net/download/tangbinflash/86240279

==================================================================

(架构可能会更新,请及时关注)

JAVA动态网页开发:框架相关推荐

  1. 动态网页开发技术(三):jsp

    Jsp概述 java server pages-java服务器页面,是一种动态网页技术标准,在传统的网页HTML中插入Java程序段(Scriptlet和JSP标记tag),从而形成JSP文件.JSP ...

  2. JSP动态网页开发技术

    一.学习目标 1.JSP概述 2.JSP指令 3. JSP 隐式对象 二.重点知识 1.JSP概述:JSP是什么? 1)JSP全称Java Server Pages,是一种动态网页开发技术.它使用JS ...

  3. 第四本书第1章 动态网页开发基础、

    一.动态网页开发基础 1.动态网页:能跟用户进行交互的网页,能够处理用户请求的网页 2.B/S架构:浏览器:客户端零维护:与操作系统平台的关系最小化:在响应速度和安全性上需要花费更多设计成本 C/S架 ...

  4. java 动态网页_JavaWeb01-动态网页

    01.动态网页的优势 动态网页是在服务器端运行的程序!随不同用户,不同条件 返回不同的结果! 001.交互性:网页会根据用户的要求和选择而动态的改变和现实网页内容! 002.自动更新:无需改变页面的代 ...

  5. Java Web中动态网页开发基础重点总结

    为什么学习B/S技术? 客户端   服务器   C(Client)/S(Server)有局限性,必须安装客户端 浏览器   服务器   B(Browser)/S(Server)无需安装客户端软件,也无 ...

  6. python动态网页开发教程_python django创建一个属于自己的动态网站

    您如何开始使用Python创建网站?好吧,你可以自己完成所有工作,并编写一个在Web服务器上运行的程序,接受页面请求并以HTML和其他资源的形式提供响应.然而,这是很多工作,那么为什么在有大量现有工具 ...

  7. [置顶]动态网页开发基础【笔记】

    一.C/S结构和B/S结构    1.C/S(Client/Server):客户端服务程序,控制台程序,window应用    2.B/S(Browser/Server):浏览器服务程序[java:j ...

  8. 动态网页开发基础【笔记】

    一.C/S结构和B/S结构 1.C/S(Client/Server):客户端服务程序,控制台程序,window应用 2.B/S(Browser/Server):浏览器服务程序[java:jsp应用:C ...

  9. 动态网页开发技术(一):Servlet

    1. Servlet 1.1 Servlet概述 java EE Api Servlet(Server Applet)是Java Servlet的简称,称为小服务程序或服务连接器,用Java编写的服务 ...

最新文章

  1. [模板][持续更新]欧拉回路与欧拉路径浅析
  2. mysql 5.x 安装_mysql 5.5.x zip直接解压版安装方法
  3. Windows server下部署php环境
  4. ubuntu19.04更改国内镜像源
  5. jedisPool.getResource()方法长时间无响应并且不报错
  6. jquery模拟可输入的下拉框
  7. mongodb地理空间索引原理阅读摘要
  8. 7价 半导体掺杂_天津大学封伟团队:新型半导体二维原子晶体锗硅烷材料的带隙调控...
  9. python中僵尸进程
  10. oracle 10g db_file,oracle 10g的db_file_multiblock_read_count参数
  11. Delphi开发Windows服务程序教程
  12. 百度开源的 71 个项目,你用过几个 ?
  13. php给页面加背景图片,html怎么添加背景图片且让图片平铺整个页面?(代码示例)...
  14. 前端生成二维码图片以及条形码图片
  15. leetcode 89
  16. 最新YGBOOK小说站源码/全自动采集+已修BUG
  17. 扩散模型探索:DDIM 笔记与思考
  18. 10部令人泣不成声的经典电影
  19. 请描述你对测试的了解, 内容可以涉及测试流程, 测试类型, 测试方法, 测试工具等。
  20. AtCoder Beginner Contest 203(Sponsored by Panasonic)D.Pond

热门文章

  1. 模板模式--servlet模板模式的应用
  2. Dobbo的继任者?试用微博RPC框架Motan
  3. 可汗学院”(Khan Academy)提出的考验智商的谜题
  4. restrict / __restrict / __restrict__ 关键字
  5. 三,天猫精灵SDK驱动开发板LED
  6. python爬高德地图_利用Python爬取高德地图数据
  7. Android音视频开发,详说PCM音频重采样、PCM编码
  8. 指向函数的指针 ------ 函数指针(function pointer)
  9. kdevelop的安装配置使用
  10. python-opencv学习笔记(八):判断是否雾天与图像能见度测算