JAVA动态网页开发:框架
目标:
本文主要教会大家如何搭建一套简单的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动态网页开发:框架相关推荐
- 动态网页开发技术(三):jsp
Jsp概述 java server pages-java服务器页面,是一种动态网页技术标准,在传统的网页HTML中插入Java程序段(Scriptlet和JSP标记tag),从而形成JSP文件.JSP ...
- JSP动态网页开发技术
一.学习目标 1.JSP概述 2.JSP指令 3. JSP 隐式对象 二.重点知识 1.JSP概述:JSP是什么? 1)JSP全称Java Server Pages,是一种动态网页开发技术.它使用JS ...
- 第四本书第1章 动态网页开发基础、
一.动态网页开发基础 1.动态网页:能跟用户进行交互的网页,能够处理用户请求的网页 2.B/S架构:浏览器:客户端零维护:与操作系统平台的关系最小化:在响应速度和安全性上需要花费更多设计成本 C/S架 ...
- java 动态网页_JavaWeb01-动态网页
01.动态网页的优势 动态网页是在服务器端运行的程序!随不同用户,不同条件 返回不同的结果! 001.交互性:网页会根据用户的要求和选择而动态的改变和现实网页内容! 002.自动更新:无需改变页面的代 ...
- Java Web中动态网页开发基础重点总结
为什么学习B/S技术? 客户端 服务器 C(Client)/S(Server)有局限性,必须安装客户端 浏览器 服务器 B(Browser)/S(Server)无需安装客户端软件,也无 ...
- python动态网页开发教程_python django创建一个属于自己的动态网站
您如何开始使用Python创建网站?好吧,你可以自己完成所有工作,并编写一个在Web服务器上运行的程序,接受页面请求并以HTML和其他资源的形式提供响应.然而,这是很多工作,那么为什么在有大量现有工具 ...
- [置顶]动态网页开发基础【笔记】
一.C/S结构和B/S结构 1.C/S(Client/Server):客户端服务程序,控制台程序,window应用 2.B/S(Browser/Server):浏览器服务程序[java:j ...
- 动态网页开发基础【笔记】
一.C/S结构和B/S结构 1.C/S(Client/Server):客户端服务程序,控制台程序,window应用 2.B/S(Browser/Server):浏览器服务程序[java:jsp应用:C ...
- 动态网页开发技术(一):Servlet
1. Servlet 1.1 Servlet概述 java EE Api Servlet(Server Applet)是Java Servlet的简称,称为小服务程序或服务连接器,用Java编写的服务 ...
最新文章
- [模板][持续更新]欧拉回路与欧拉路径浅析
- mysql 5.x 安装_mysql 5.5.x zip直接解压版安装方法
- Windows server下部署php环境
- ubuntu19.04更改国内镜像源
- jedisPool.getResource()方法长时间无响应并且不报错
- jquery模拟可输入的下拉框
- mongodb地理空间索引原理阅读摘要
- 7价 半导体掺杂_天津大学封伟团队:新型半导体二维原子晶体锗硅烷材料的带隙调控...
- python中僵尸进程
- oracle 10g db_file,oracle 10g的db_file_multiblock_read_count参数
- Delphi开发Windows服务程序教程
- 百度开源的 71 个项目,你用过几个 ?
- php给页面加背景图片,html怎么添加背景图片且让图片平铺整个页面?(代码示例)...
- 前端生成二维码图片以及条形码图片
- leetcode 89
- 最新YGBOOK小说站源码/全自动采集+已修BUG
- 扩散模型探索:DDIM 笔记与思考
- 10部令人泣不成声的经典电影
- 请描述你对测试的了解, 内容可以涉及测试流程, 测试类型, 测试方法, 测试工具等。
- AtCoder Beginner Contest 203(Sponsored by Panasonic)D.Pond
热门文章
- 模板模式--servlet模板模式的应用
- Dobbo的继任者?试用微博RPC框架Motan
- 可汗学院”(Khan Academy)提出的考验智商的谜题
- restrict / __restrict / __restrict__ 关键字
- 三,天猫精灵SDK驱动开发板LED
- python爬高德地图_利用Python爬取高德地图数据
- Android音视频开发,详说PCM音频重采样、PCM编码
- 指向函数的指针 ------ 函数指针(function pointer)
- kdevelop的安装配置使用
- python-opencv学习笔记(八):判断是否雾天与图像能见度测算