基于Android的民族特色农产品电子商务平台设计,设计模式初步

中图分分类配号:TP399 文献标志码:A 小说编号:1003-908201-0004-01

中图分分类配号:TP393 文献标志码:A 文章编号:1009-304411-0282-02

一、概念

MVC
把应用程序分成多少个部分,即模型、视图、调控器,每一种部分实行本身的任务。
模型是应用程序的关键性部分,模型代表工作数据和作业逻辑。二个模型能为多少个视图提供数据,进而加强了代码的重用性。
视图只担任与客户人机联作,不开展实际的事体管理。
调整器接受央浼并调节调用哪个模型组件去管理央浼,然后决定调用哪个视图来展现模型再次回到的数额。

一、引言

近期,大家的活着已经离不开移动互连网,移动器械也经成为大家至关重要的生活用品。
Android是由谷歌(GoogleState of Qatar公司和开花手提式无线话机联盟领导及支出的,是一种基于Linux的随机及开放源代码的操作系统,首要使用在智能手机和三星GALAXY Tab等运动器具上。Android平台最闻明的少数正是它的开放性,开辟的阳台对别的活动终端厂家都不曾节制,允许别的活动终端厂家参加到Android
缔盟中来,那样一来,平台能够有所越来越多的开垦者,随着客户和平运动用的逐步加多,平台火速从新手走向成熟。随着全世界经济欧洲经济共同体的稳步前进和长远,对于古板商品基于Android
移动电商平台已改为需要的了。近些日子,电商平台能够完结从最基本的新闻体现、在线顾客服务、在线网址管理等成效,在国际互联互连网商务作用能够落到实处多种化,能够说,古板商品大约具备的功效都能够在互联网络拓宽电商的超快运行,尽管与古板商品的层面有所不相同,然而今后是叁个互连网与电商迅速前行的时代,它将变为退换现成公司竞争的形式的不战而胜助手,让公司在其后的升华空间能够在低本钱的还要全部高作用[1]。

二、MVC 轻巧示例

一经以后有三个数据库,里面有一张记录了学子新闻的表,大家必要利用 MVC
的规划理念编写程序将富有音信彰显出来。

图片 1

学员音信数据表.png

全部的次第应该有诸有此类的成效:
在第三个 jsp 分界面点击 “突显音信” 的链接后,调用 Servlet 的 doGet(卡塔尔(قطر‎方法,doGet(卡塔尔国会调用 DAO(负担操作数据库的类)中的方法取得具有学员的音讯,最后呈现在视图中。
此处的 Servlet 便是调控器,DAO 正是模型,分界面正是视图。

当前,浏览分界面包车型地铁多语言展现有二种缓和措施。静态:就是为每个语言分别筹划一套页面文件,要么通过文件后缀名来分别分裂语言,要么通过子目录来区分分歧语言[1]。动态:全数页面文件都是动态页面文件实际不是静态页面文件,在需求输出语言文字的地点联合采取言语变量来表示,那个语言变量能够依据客商采纳差别的言语授予差别的值,进而可以实现在区别的语言情况下输出差异的文字[2]。不过动态多语言页面技能的服务器管理时间和调用数据库的光阴支出相当的大,並且安全性倒霉,轻巧受到攻击,维护非凡艰巨,可拓宽性不好[3]。因而,本平台利用静态多语言技能完毕Android平台的民族语言展现。

1 基于Android 移动电商平台的布署

1. 首页 jsp

首页的 jsp
页面只承当提供三个超链接供客商跳转到消息呈现页面,只要在<body>中参与一个超链接就能够。

<body>
    <a href="listAllServlet">List All Students</a>
</body>

大家看见,超链接会让大家跳转到 listAllServlet 那么些 Servlet 程序中,而
Servlet 作为调节器,又将怎么总是模型和计算呢?

正文在知足电商平台的网络通讯左券标准的根底上,设计并贯彻了基于Android的民族特色农成品电商平台,详细的牵线基于Android的民族特色农付加物电子商务平台的宏图和促成进度,并详细描述了数据库设计格局和多语言平台实现技能。最后详细阐释了各种模块的效用及运转规律。

本系统是在知足电商平台的网络通讯合同标准的前提下,用于Android移动电子器材上,功用分为:客户管理、资源音讯查询、商品购买出卖等等,让电商交易能够在活动道具上能够利用,让电商能够更加的方便飞快。本系统共有前台和后台多个模块。前台根本以产物浏览模块和购物模块八个为主,产品浏览模块主要有产品全局浏览,产物列表,成品内容,商量等效用。购物模块也等于二个购物车,包罗精选产物,会员注册,登陆等功能。后台管理模块总共有6个管理模块,分别是:商品管理、公告管理、订单管理、顾客处理、系统管理以致助理馆员保管模块。以下是多少个管理模块的主要表达:1)
商品模块:商品归类搜索查询,商品浏览,商品收藏,商品购销;2)
购物网店模特块:客商可先把商品放入购物车再点击购买;3) 付账模块:买下账单,
提交订单;4)
客商模块:客商注册,账号登入,账号验证,订单管理,个人消息修正;5)
管理员模块:管理员账号登陆,账号验证,密码校勘,登陆验证成功后能够举办网址后台管理专门的学业;6)
商品质量管理理理模块:商品宣布,商品删除,商品分类;7)
订单管理:订单的删除,确认订单新闻,改动订单状态。

2. listAllServlet

在 Eclipse 中新建二个 Servlet,会变动如下所示的代码。

@WebServlet("/listAllServlet")
public class ListAllServlet extends HttpServlet {

    private static final long serialVersionUID = 1L;

    public ListAllServlet() {
        super();
    }

    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        // 处理 get 请求
    }

    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        // 处理 post 请求
        doGet(request, response);
    }
}

Servlet 会在 doGet(卡塔尔(قطر‎ 方法中通过 DAO 类获取到数据库的音讯,在 doGet(State of Qatar中从不与数据库人机联作的逻辑,它只是调用了 DAO 类的秘技,至于 DAO
中是怎么落到实处的,Servlet 并不关心。
取获得多少后,Servlet 将乞请转载给另二个 jsp
页面来彰显数据(在此之前查询到的数额都会归入央浼中以便页面取得)。

二、系统平台框架设计

2 基于Android 移动电商平台的得以达成

那么怎么着是乞求的转会呢?

呼吁的倒车就是,顾客首头阵送三个号令到服务器端,服务器端开采相配的servlet,并点名它去实践,当那么些servlet 实践完未来,调用 request.getRequestDispacther(State of Qatar方法,把央求转载给钦命的 jsp
页面,整个流程都是在劳务器端完成的,况且是在同三个供给里面完结的,因而servlet 和 jsp 分享的是同贰个 request。

与伏乞的转会邻相近的还应该有央求的重定向,在重定向进度中,顾客发送贰个央浼到服务器,服务器相称servlet,那和号令转载相似。servlet
管理完事后调用了response.sendRedirect(卡塔尔,响应行告诉顾客端你必得再发一个央浼去访问 jsp
页面。这里四个央浼互不苦闷,相互独立。
也正是说,假使目的的响应页面不必要从 request
中读取任何值,则能够使用央求的重定向,还是能够幸免表单的重复提交。

// 请求转发
request.getRequestDispatcher("/student.jsp").forward(request, response);

//请求的重定向
response.sendRedirect( "/student_list.jsp");

考查地点的代码,我们开掘号召转载和伸手的重定向对地方的格式是不相通的,伏乞转载中的
“/” 代表当前 web 应用;诉求的重定向中的 “/”
代表当前站点,这里就是8080端口。

基于Android的民族特色农产物电商平台设计入眼含有两大学一年级些:Android客户端分界面设计数据库服务器设计。

2.1 平台首要手艺

3. StudentDao

大家曾经知晓数据库中的音信是怎么寄存的了,未来内需先定义贰个 Student
实体类来在内存中存放音讯。

public class Student {

    private String img_path;
    private Integer flow_id;
    private Integer type;
    private String id_card;
    private String student_name;
    private Integer grade;

    public Student(String img_path, Integer flow_id, Integer type, String id_card, String student_name, Integer grade) {
        super();
        this.img_path = img_path;
        this.flow_id = flow_id;
        this.type = type;
        this.id_card = id_card;
        this.student_name = student_name;
        this.grade = grade;
    }

    public Student() {
        super();
    }

    public String getImg_path() {
        return img_path;
    }

    public void setImg_path(String img_path) {
        this.img_path = img_path;
    }

    public Integer getFlow_id() {
        return flow_id;
    }

    public void setFlow_id(Integer flow_id) {
        this.flow_id = flow_id;
    }

    public Integer getType() {
        return type;
    }

    public void setType(Integer type) {
        this.type = type;
    }

    public String getId_card() {
        return id_card;
    }

    public void setId_card(String id_card) {
        this.id_card = id_card;
    }

    public String getStudent_name() {
        return student_name;
    }

    public void setStudent_name(String student_name) {
        this.student_name = student_name;
    }

    public Integer getGrade() {
        return grade;
    }

    public void setGrade(Integer grade) {
        this.grade = grade;
    }

    @Override
    public String toString() {
        return "Student [img_path=" + img_path + ", flow_id=" + flow_id + ", type=" + type + ", id_card=" + id_card
                + ", student_name=" + student_name + ", grade=" + grade + "]";
    }

}

今后是与数据库人机联作的 DAO 类,这里的 DAO
类使用了原生的点子连接和操作数据库。

public class StudentDao {

    /**
     * 获取所有的学生信息
     * @return 学生列表
     */
    public List<Student> getAllStudent() {
        List<Student> list = new ArrayList<>();
        Connection connection = null;
        PreparedStatement preparedStatement = null;
        ResultSet resultSet = null;

        try {
            String driverClass = "com.mysql.jdbc.Driver"; // 驱动程序名
            String url = "jdbc:mysql:///student"; // url 指向要访问的数据库名
            String user = "root";
            String password = "root";
            // 加载驱动程序
            Class.forName(driverClass);
            // 获取连接
            connection = DriverManager.getConnection(url, user, password);
            String sql = "select img_path, flow_id, type, id_card, student_name, grade "
                    + "from examstudent";
            preparedStatement = connection.prepareStatement(sql);
            resultSet = preparedStatement.executeQuery();

            // 遍历结果集
            while(resultSet.next()) {
                String img_path = resultSet.getString(1);
                int flow_id = resultSet.getInt(2);
                int type = resultSet.getInt(3);
                String id_card = resultSet.getString(4);
                String student_name = resultSet.getString(5);
                int grade = resultSet.getInt(6);
                // 将数据库中的每条信息添加到 List<Student> 中
                Student student = new Student(img_path, flow_id, type, id_card, student_name, grade);
                list.add(student);
            }
        } catch (Exception e) {
            e.printStackTrace();
        }
        /**
         * 将所有的连接关闭
         */
        finally {
            if (resultSet != null) {
                try {
                    resultSet.close();
                } catch (SQLException e) {
                    e.printStackTrace();
                }
            }
            if (preparedStatement != null) {
                try {
                    preparedStatement.close();
                } catch (SQLException e) {
                    e.printStackTrace();
                }
            }
            if (connection != null) {
                try {
                    connection.close();
                } catch (SQLException e) {
                    e.printStackTrace();
                }
            }
        }
        return list;
    }
}

1.Android客商端分界面设计

JSON 是一种以数据调换的轻量级格式。它基于JavaScript的贰个子集。JSON
接纳完全部独用立的文本格式,不过也利用了就好像于C
语言宗族的习贯。那个卓绝的语言方式让JSON成为美好的数据交流语言。不仅唯有助于编辑职员的翻阅和编辑,同期也易于机器拆解深入分析和变化。

4. 转会呼吁到 jsp 前端

在有了 DAO 类之后,我们就能够在 Servlet 中与数据库交互作用了。
改写 doGet() 方法:

protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        request.setCharacterEncoding("utf-8");
        response.setCharacterEncoding("utf-8");
        response.setContentType("text/html;charset=utf-8");

        StudentDao dao = new StudentDao();
        List<Student> list = dao.getAllStudent();
        /**
         * 如果前端是 jsp 页面
         * 将请求转发到 student.jsp 页面进行显示
         */
        request.setAttribute("students", list); // 将信息保存在请求中
        request.getRequestDispatcher("/students.jsp").forward(request, response);
    }

从代码中得以窥见,大家将从数量获得的 list 数据放入了诉求中,再转载给了
students.jsp,之后我们就足以在 jsp
上将学生信息透过列表的不二秘诀体现出来。
students.jsp 代码如下,我们先从 Servlet
转载过来的乞请中收取大家必要的多寡,然后对数据开展遍历,使用表格的款型将其打字与印刷出来。

<%@page import="com.lister.entity.Student"%>
<%@page import="java.util.List"%>
<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
</head>
<body>

    <% List<Student> students = (List<Student>)request.getAttribute("students"); %>

    <table border = "1" cellpadding = "10" cellspacing = "0">
        <tr>
            <td>flow_id</td>
            <td>type</td>
            <td>name</td>
            <td>id_card</td>
            <td>grade</td>
        </tr>
        <% for (Student student : students) { %>
            <tr>
                <td><%=student.getFlow_id() %></td>
                <td><%=student.getType() %></td>
                <td><%=student.getStudent_name() %></td>
                <td><%=student.getId_card() %></td>
                <td><%=student.getGrade() %></td>
            </tr>
        <% } %>
    </table>

</body>
</html>

最后在浏览器呈现的结果如下:

图片 2

学员新闻列表.png

android客商端重要功用包蕴:注册分界面、登录分界面、商品显示分界面,购物车分界面。注册分界面是客户展开网络交易的首先步,重要用来注册个人顾客,验证个人新闻,方便下一回直接登陆。登入分界面首要用以检查实验顾客音讯合法性,为客户提供找回密码的效用,相同的时候为用户提供切换语言作用,方便少数民族地区的人群利用。商品展现分界面首要用于展示特色农付加物信息,重要回顾农付加物名称、价格、参照他事他说加以考察图片等等。购物车分界面重要完毕拉长购物车,删除购物车效用,能够调用商品呈现模块向顾客展现商品详细的情况,可跳转到支付分界面并与第三方对接达成支付作用。平台运用ListView设计展现分界面,达成了分界面包车型地铁轮转展现,客商使用起来国家的有益。每一张图纸或付加物名称都规划了超链接,单机能够步入购物车举办第三方在线支付。

Http用于传送www方式的数据。www 基于客商端/ 服务器模型,由Web 浏览器和Web
服务器构成,两个之直接受Http进行通讯。Http 公约利用央浼/
响应模型,是根据TCP/IP左券之上的说道,是Web
浏览器和Web服务器之间的应用层合同,是通用的、无状态的面向对象的商业事务[2]。

5. 服务器与手机端通讯的情景

倘使要将音信体现在手提式有线电话机端,那么那个时候手提式有线电话机端就将出任前端的剧中人物。近来服务器与手提式有线电话机端通讯文本平日选择json 格式,这里大家也使用 json 与Android 手提式有线电话机端通讯。
先是导入 Gson jar 包,再一次改写 doGet(卡塔尔(قطر‎ 方法,使用 Gson 的法子将
List<Student> 转形成 json 字符串并打字与印刷出来。

protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        request.setCharacterEncoding("utf-8");
        response.setCharacterEncoding("utf-8");
        response.setContentType("text/html;charset=utf-8");

        StudentDao dao = new StudentDao();
        List<Student> list = dao.getAllStudent();

        /**
         * 如果前端是 jsp 页面
         * 将请求转发到 student.jsp 页面进行显示
         */
//      request.setAttribute("students", list);
//      request.getRequestDispatcher("/students.jsp").forward(request, response);

        /**
         * 如果前端是手机端
         * 使用 response.getWriter() 将信息打印出来
         */
        PrintWriter out = response.getWriter();
        Gson gson = new Gson();
        String json = gson.toJson(list);
        out.print(json);
    }

那儿假使在浏览器中呼吁数据,获得的会是 json 字符串,如下所示:
各种 json 对象的第三个子段为图像的网站,供 Android 加载图片所用。

图片 3

json信息.png

在 Android 端拆解解析 json
之后加载数据,能够得到如下的列表,代码就不详细介绍了。

图片 4

Android 端显示.png

2.数据库服务器

MVC 全名是Model View Controller,是模型 -视图 -调控器
的缩写,用一种事业逻辑和多少显式分离的办法组织代码,是软件设计的指南。首假如将专业逻辑被群集到叁个零器件里面,在分界面和客商数据被相互修正和天性化定制的同时而不用重新编排专门的工作逻辑。M
V C
独特意前行起来用于映射古板的输入、管理和输出功用在二个逻辑的图形化客商分界面包车型客车布局中。

数据库服务器设计器重包涵本地数据库SQLLite设计和网络数据库MySQL设计。本地数据库着重用来存款和储蓄顾客端缓存音信数据,网络数据库入眼用以存款和储蓄顾客,付加物和制品贸易等数码。

2.2 基于Android 移动电商平台数据库

三、系?y能力完毕

E – 宝马X5 方法是“实体-
联系方法”的简单的称呼。它是描述现实世界概念布局模型的管事方法。是代表概念模型的一种方法,用矩形表示实体型,矩形框内写明实体名;用椭圆表示实体的性质,并用无向边将其与相应的实体型连接起来;用口形表示实体型之间的沟通,在菱形框内写明联系名,并用无向边分别与有关实体型连接起来,同期在无向边旁标上挂钩的体系

1.本事门路方案

2.3 客商端大旨代码

视图层:显示客商分界面,直接与客商接触,响应顾客的操作并传递操作事件到视图调控层。在那层上行使XML本事形成APPUI分界面包车型地铁安顿性。

客商端获取数据客商端选择了Android 的局地开源库android-async-http
来作为客商带给兑现数据调用。android-async-http
开源框架方便操作,也能够使大家轻松地获取网络数据可能向服务器发送数据。Android-async-http
那么些框架封装了各类别型的伸手数据格式。举个例子央求string、json、json
数组等对象。顾客端详细情形页左侧小导航荧屏固定跟随jquery 代码://
获取要稳定成分间距浏览器顶端的离开var navH = $.offset.top;//
滚动条事件$.scroll{// 获取滚动条的滑行间距var scroH = $.scrollTop;//
滚动条的滑行间隔超过等于定位成分间隔浏览器最上端的间距,就一定,反之就不固定f{
$.css;}elseif{$.css;} })代码的组织是:先拿走到类名称为detail_nav
的成分到显示器最上端的离开,保存到参数n a v H
中,然后监听鼠标滚动的偏离,假使一骨碌的相距超越等于n a v
H,则自动退出文本流,定位形式由static 变为fixed,不然一定格局为static。

视图调节层:包含Activity与Fragment组件,Activity与Fragment选拔看电视机图层操作事件,进行简短的逻辑决断后,将央求通过业务逻辑代理转载到具体的事体逻辑类中进行管理。视图调整层能够选拔来自业务层的政工须求并作出响应。

2.4 数据服务接口

思想政治工作逻辑层:选用代理方式,管理来自视图层的恳求命令并将数据管理结果重临到视图调控层。可与数据层,互联网层进行多少交互作用。

数据服务接口接口是服务器和活动达成数据通讯的大路,这里的移动终端不分系统平台,IOS、Android、Windows
Phone
等都得以以假乱真地由此接口和服务器举行数据人机联作。平台应用PHPMVC作为底子框架,接口也呼应地应用了MVC
的调控器作为接口的载体。由MVC 自带的JSON
框架来对数码进行类别化数据开展传输。支付接口:基于HTTP,帮助GET 和POST
三种提交方式,字符编码仅帮衬GB2312,用于浏览器和WEB服务中间的通信[3]。恳求消息运用md5
具名保障数据不被点窜。各样交易都由二个指标U Lacrosse L
和相应参数组成。支付网关调用商行端CGI
程序的岗位和次序名称由商贩在支付央浼接口中return_url
字段定义。$return_url
是提须要支付网关和商家系统的页面,那一个页面为后台调用,是不会被顾客观望的,将付出结果发送到那一个页面,厂家能够在这里个页面更进一些操作根据这么些支付结果。

信息系统层:包涵数据层和互联网层,顾客端数据访谈分为各个:互连网数据,文件,sqlite数据库,SharedPRADOreferences。网络数据通过网络组件向服务端发送互连网央求获取,有缓存机制,文件重大用来积存图片财富,sqlite数据仓库储存款和储蓄一些当地利用的数量。

3 基于Android 移动电商平台的远望

2.Android客户端与数据库服务器交互作用本事

因此对基于Android
移动电商平台的钻研,对前途的网络技术和活动商务技艺做出了以下两点瞻望:1)速度能够越来越快,成效更有力。因为运动通信才能和活动终端硬软件都会得到不断的滋长,智能平台的管理也会稳步进步。今后,移动电商平台会更为平静可信,对大家管理平日职业和东西能够有越来越大的增加援助。2)业务方面能够更为周详。因为网络是二个新生发展的事情,随着年华的不唯有推移,移动互连网一定会大增超多新的政工功用,范围将不停扩展。如:手机支付、移动广告、移动监察等等都能够极快上扬,帮忙大家提升级程序员作功用,改换生活。

在深入分析进程中率先以字符串格式转变JavaScript对象中的一组数据,
然后那些字符串能够在函数之间传递,
恐怕在异步人机联作式程序旅长字符串从Android顾客机传递给劳务器端程序。用此本领完结了Android顾客端与数据库服务器端的数目交互作用。

4 结束语

数据库服务器端与Android客商端的数量人机联作流程:首先由Http协议将客商端的数目央浼发送到Web服务器,
然后服务器端将数据伏乞封装成JSON格式,
再经过Http协议将深入分析结果重回至Android顾客端,
客户端将收受到的多寡开展深入深入分析后以适龄的格式呈现在分界面上。

移动通讯和网络是现行社会发展最快的业务,移动网络正在影响大家的生存格局,随着4G
时期的过来以至活动购物顾客体验的不停改革,大家对移动互连网的须求将会更大。移动端购物对PC
端购物,以致守旧的购物作为都会形成一点都不小的震慑,这种影响不光表现在对PC
端与观念购物市镇的抗争,也会对八个市场起到推动作效果益,开采出新的顾客和商海上和空中间。所以,电子商务集团以致古板商家都要把握好机遇,不断优化移动端购物给大家带给的体验,能力在以往取得更好地发展。

3.花销服务手艺

在本地Android操作系统上安装安全支付劳动组件,该零零件中,
MobileSecurePayer 类封装了对攀枝花支出的调用;MobileSecurePayHelper
类完毕安全支付插件的检查测验、更新、下载和装置;PartnerConfig类完成了商行账户新闻配置;ResultChecker类通过AlixPay重回结果的分析管理。

四、数据库设计

SQLite是一款开源的、轻型的嵌入式数据库,是遵循ACID的关系型数据库管理类别,是一款有着扶植事务处理、零配置、自包性、占用财富低级优点的SQL数据库引擎。本系统中,SQLite首要用以地点顾客端数据的积累。通过创设二个赞助类SQLiteOpenHelper,调用getReadableDatebase方法来开始化SQLite数据库,然后通过SQLiteDatebase推行SQL语句空间数据表格。首先通过DriverManager类,调用registerDriver)方法注册数据库驱动,调用getConnection方法连接MySQL数据库,在通过Connection类调用createStatement方法获得传输器对象,利用传输器对象实践SQL语句,成立products数据表,包蕴5个字段,分别是商品编号、商品Republic of Croatia语名称、商品藏文名称、价格、图片。

五、结束语

本文切磋了明天电商Android客户端的宏图,针对当下国内帮衬名族语言彰显的Android应用程序无法知足少数民族客商网上买东西的现状,达成了电商Android顾客端名族语言的展现。通过该平台,中文客商、少数民族顾客都成功了网络购物流程,在早晚水准上解决了少数民族客户购物难的难题。

发表评论

电子邮件地址不会被公开。 必填项已用*标注

相关文章