中图分分类配号:TP399 文献标记码:A 作品编号:1003-908201-0004-01

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

一、概念

MVC
把应用程序分成多少个部分,即模型、视图、调节器,每一个部分进行自个儿的职责。
模型是应用程序的主脑部分,模型代表专业数据和业务逻辑。叁个模子能为多少个视图提供数据,进而进步了代码的重用性。
视图只担任与客户人机联作,不开展实际的政工管理。
调节器选择乞请并调整调用哪个模型组件去管理央求,然后决定调用哪个视图来呈现模型重回的多少。

一、引言

这几天,大家的生存已经离不开移动网络,移动器械也经成为群众必不可缺的生活用品。
Android是由Google公司和绽甩手提式有线电话机联盟总管及耗费的,是一种基于Linux的即兴及开放源代码的操作系统,首要接受在智能手提式有线话机和机械Computer等移动道具上。Android平台最闻名的一些就是它的开放性,开采的平台对其它活动终端厂商都并没有约束,允许别的活动终端厂家投入到Android
结盟中来,那样一来,平台能够具有越多的开拓者,随着顾客和选用的逐年扩张,平台连忙从新手走向成熟。随着全球经济全体的逐级前进和深刻,对于传统商品基于Android
移动电商平台已成为至关重要的了。如今,电商平台能够做到从最宗旨的信息突显、在线顾客服务、在线网址管理等职能,在国际互联英特网商务成效能够完毕三种化,能够说,古板商品差不离全体的机能都足以在互联英特网进展电商的火速运维,纵然与金钱观商品的范畴有所差异,不过今后是二个互连网与电商快捷腾飞的不常,它将改为校正现成公司竞争的方式的强硬帮手,让厂家在之后的提高空间能够在低本钱的还要全部高成效[1]。

二、MVC 轻巧示例

纵然今后有多少个数据库,里面有一张记录了学员信息的表,我们供给接收 MVC
的筹划观念编写程序将具有音信体现出来。

图片 1

学子新闻数量表.png

全部的程序应该有诸如此比的效应:
在第1个 jsp 分界面点击 “展现新闻” 的链接后,调用 Servlet 的 doGet(State of Qatar方法,doGet(卡塔尔会调用 DAO(担当操作数据库的类State of Qatar中的方法得到具有学子的音信,最终展现在视图中。
此处的 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(卡塔尔(قطر‎中绝非与数据库人机联作的逻辑,它只是调用了 DAO 类的情势,至于 DAO
中是怎么贯彻的,Servlet 并不关注。
得到到数码后,Servlet 将诉求转载给另贰个 jsp
页面来展现数据(早前查询到的数量都会放入央浼中以便页面获得)。

二、系统平台框架设计

2 基于Android 移动电商平台的兑现

那就是说什么样是央浼的转变呢?

恳请的转折就是,顾客首首发送一个诉求到劳动器端,服务器端开采相配的servlet,并钦定它去施行,当那么些servlet 试行完事后,调用 request.getRequestDispacther(卡塔尔(قطر‎方法,把伏乞转载给钦点的 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 – PAJERO 方法是“实体-
联系方法”的简单的称呼。它是叙述现实世界概念构造模型的得力方式。是表示概念模型的一种方式,用矩形表示实体型,矩形框内写明实体名;用椭圆表示实体的属性,并用无向边将其与相应的实体型连接起来;用口形表示实体型之间的关系,在菱形框内写明联系名,并用无向边分别与有关实体型连接起来,同一时间在无向边旁标上关系的体系

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采纳看TV图层操作事件,进行简要的逻辑判别后,将呼吁通过专门的学业逻辑代理转载到实际的工作逻辑类中开展管理。视图调整层能够接到来自业务层的业务央求并作出响应。

2.4 数据服务接口

业务逻辑层:采用代理形式,管理来自视图层的伏乞命令并将数据管理结果再次回到到视图调整层。可与数据层,互连网层实行数据交互作用。

数据服务接口接口是服务器和移动完毕数据通信的大道,这里的运动终端不分系统平台,IOS、Android、Windows
Phone
等都足以假假真真地因此接口和服务器实行数据交互作用。平台利用PHPMVC作为底工框架,接口也应和地动用了MVC
的调整器作为接口的载体。由MVC 自带的JSON
框架来对数据进行种类化数据举行传输。支付接口:基于HTTP,协助GET 和POST
三种提交方式,字符编码仅扶持GB2312,用于浏览器和WEB服务期间的报纸发表[3]。须要新闻使用md5
签字有限支撑数据不被点窜。每三个贸易都由一个目标U Evoque L
和相应参数组成。支付网关调用商家端CGI
程序的职位和次序名称由商贩在支付供给接口中return_url
字段定义。$return_url
是提必要开拓网关和商人系统的页面,那些页面为后台调用,是不会被客商见到的,将付出结果发送到这几个页面,商家能够在此个页面更进一些操作依照这一个支付结果。

消息系统层:包涵数据层和网络层,客商端数据访谈分为八种:网络数据,文件,sqlite数据库,Shared奥迪Q5references。网络数据经过互连网组件向服务端发送互联网伏乞获取,有缓存机制,文件重大用来储存图片财富,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个字段,分别是商品编号、商品乌克兰语名称、商品藏文名称、价格、图片。

五、结束语

本文研讨了前不久电商Android顾客端的布置性,针对当前本国援助名族语言呈现的Android应用程序无法满意少数民族客户网络购物的现状,完成了电商Android客商端名族语言的展现。通过该平台,粤语客户、少数民族客商都成功了网上买东西流程,在必然水平上毁灭了少数民族客商购物难的难题。

相关文章