一个项目是怎样的架构,首先要分前端,后端数据库,前端一般是由html(写静态网页),javascript(写动态网页),css(页面的渲染)。后端由各种写后台的编程语言进行后台的数据逻辑编写,常见的有java,c#等。
在传统的开发方式中比如jsp,asp,他们封装了XMLHttpRequest方法,而且对于jsp来说,前后端未脱离,前后端需要进行长时间的数据的校验,必须保持同步,过分依赖java运行环境。而前后端分离是使用中间件的方式进行开发,前端与后端分离,前端只需要开发网页,不需要考虑后端的业务逻辑,只需要写好接口就可以将数据传给后端。后端也是如此。而交互的调用接口方式有很多方式,ajax是一种常见的方式。下面简单写一个demo进行测试。
首先我们写一个a.html,使用ajax写接口的调用,写好交互方式get方式还是post方式。获取后端数据。
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<title></title>
</head>
<body>
<input type="button" name="name" value="获取后台数据" id="btn" />
<div id="box">
<label>数据:</label><label id="box1"></label>
</div>
</body>
</html>
<script type="text/javascript">
window.onload = function () {
document.getElementById('btn').onclick = function () {
var xhr = new XMLHttpRequest();
xhr.open("get", 'Handler1.ashx', true);
xhr.onreadystatechange = function () {
if (xhr.readyState == 4 && xhr.status == 200) {
var txt = xhr.responseText;
document.getElementById('box1').innerHTML = txt;
}
}
xhr.send(null);
}
}
</script>
后端我们来进行数据的定义,我们不需要管前端如何展现,只管写数据即可,首先我们定义了一个类实例,并对其赋值,然后将其转化为json格式,传给前端。后端我们是使用c#来写,IHttpHandler通常用来处理一类特定的请求,具体的业务逻辑处理在ProcessRequest中写,当然我们也可以使用java来写后端,当然vs中好像不支持java,所以简单写了个类,没有编译,运行不了,至于写的对不对,自己测一下吧,类似逻辑就是继承httpservlet然后写get方式的请求方法,传输数据。
using MFS_Form.Models;
using Newtonsoft.Json;
using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Text;
using System.Web;
namespace PDA_Service.Form.demo
{
public class Handler1 : IHttpHandler
{
public void ProcessRequest(HttpContext context)
{
product p = new product();
p.enterprise = "星沙工厂";
p.area = "长沙";
p.type = "电子厂";
context.Response.Write(JsonConvert.SerializeObject(p));
//将对象转化为json格式
}
}
}
@WebServlet("/*")
public class login extends HttpServlet {
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
String head = request.getHeader("referer");
response.setContentType("text/html;charset=UTF-8");
response.getWriter().write("请阅览");
}
}
总的来说前后端分离能够将大项目进行拆分,便于开发以及维护。