SSM + Android 网络交互的那些事

    ssm做为后台与android交互,相信只要是了解过的人都知道一些基本的数据交互,向json,对象,map的交互就像喝水一样简单,这些基本的交互也是学习ssm后台开发的基本,但是好多人却是会忽略文件的交互。毕竟大多数培训老师是没有讲这些东西的(至少小编我的启蒙老师就没有介绍过)。好了废话不多说,直接上!!!!!!!!

     在这里我用的是okHttp网络请求框架:https://github.com/square/okhttp(官方的开源库)

     ①ssm服务端的做法步骤:

1. 在 spring-servlet.xml 配置文件中加入下面的代码,用以通知spring加载文件上传处理器:

<!-- 定义文件上传处理器 -->
 <bean id="multipartResolver"
  class="org.springframework.web.multipart.commons.CommonsMultipartResolver"
  p:defaultEncoding="UTF-8" />


2.ssm 控制器编写的映射关系:

    @RequestMapping(value="user/postFile.action",method = RequestMethod.POST)
    @ResponseBody
    public String postFile(@RequestParam("file") MultipartFile file){

        String name = file.getContentType();
        System.out.println(name);
//        if(file.isEmpty()){
//        
//            System.out.println("fial");
//            //return "successful";
//        }else{
//            System.out.println("successful");
//            //return "fail";
//        }

   return null;

3,记得加一个依赖库,commons-fileupload.jar 。如果用的是maven管理的话在pom.xml中加入下面依赖就好!

<!-- https://mvnrepository.com/artifact/commons-fileupload/commons-fileupload -->
<dependency>
    <groupId>commons-fileupload</groupId>
    <artifactId>commons-fileupload</artifactId>
    <version>1.3.2</version>
</dependency>

 ②android 通过okhttp上传文件(multipart form/data)


public Request postFile(String url,File file){

    RequestBody fileBody = RequestBody.create(MediaType.parse("image/jpg"), file);

    MultipartBody.Builder builder = new MultipartBody.Builder();
    builder.setType(MultipartBody.FORM)
            .addFormDataPart("file","welcome_crop.jpg",fileBody);
    RequestBody requestBody = builder.build();

    Request request = new Request.Builder().url(url)
            .post(requestBody)
            .build();
    return request;
}

public void execute(final Request request, BaseCallBack callBack){

    if(callBack == null){
        callBack = BaseCallBack.CALLBACK_DEFAULT;
    }
    final BaseCallBack finalCallBack = callBack;

    client.newCall(request).enqueue(new Callback() {
        @Override
        public void onFailure(Call call, IOException e) {
            sendFailedResult(call,e,finalCallBack);
        }

        @Override
        public void onResponse(Call call, Response response) throws IOException {
            if (call.isCanceled()){
                sendFailedResult(call,new Exception("response is canceled"),finalCallBack);
                return;
            }
            Log.d(TAG,""+response.code());
            if (!finalCallBack.validateResponse(response)){
                sendFailedResult(call,new Exception("response is failed"+response.code()),finalCallBack);
                return;
            }
            try {
                Object object = finalCallBack.parseResponse(response);
                sendSuccessResult(object,finalCallBack);
            }catch (Exception e){
                e.printStackTrace();
            }finally {
                if(response.body()!=null){
                    response.close();
                }
            }
        }
    });
}
调用
Request fileRequest = OkHttpUtils.getInstance().postFile(url,file);
OkHttpUtils.getInstance().execute(fileRequest, new MyStringCallBack());

https://github.com/ggyuer/ssmAndandroid(Android 端okhttp请求,服务端用自己的)

}


    


 




SSM基于Android项目的记日记的APP是一款方便用户记录生活点滴的应用程序。该APP采用了SSM架构,即Spring+SpringMVC+MyBatis,用于实现后台管理和数据库的操作。下面我将从功能、界面设计和开发技术三个方面介绍该APP。 首先,该APP具备以下核心功能:用户登录注册、日记的增删改查、日记的分类和标签、日记的分享和评论等。用户可以通过注册登录来创建自己的账户,然后可以随时查看和编辑自己的日记。用户可以对日记进行分类和添加标签,方便快速检索。用户还可以将自己的日记分享到社交网络,并与其他用户进行评论和互动。 其次,该APP的界面设计简洁美观,符合Android Material Design的设计风格。主界面以列表形式展示日记的摘要信息,点击进入详情页可以查看和编辑完整的日记内容。菜单栏提供了快速导航功能,用户可以方便地切换到不同的功能模块。 最后,该APP使用了SSM架构进行开发。Spring框架用于管理和实现后台服务,包括用户管理、日记管理等。SpringMVC框架负责接收和处理用户请求,并返回相应的数据和界面。MyBatis框架用于与数据库进行交互,实现日记的持久化存储和查询。通过SSM架构,该APP具备良好的扩展性和稳定性。 总的来说,基于SSM架构的记日记的APP具备丰富的功能、简洁美观的界面设计,以及稳定高效的开发技术,是一款优秀的日记记录应用程序。用户可以通过这款APP轻松记录生活中的点点滴滴,记录珍贵的回忆。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值