Heim  >  Artikel  >  Java  >  Teilen Sie Beispiele dafür, wie Java die Schnittstellenentwicklung für mobile Endgeräte schreibt

Teilen Sie Beispiele dafür, wie Java die Schnittstellenentwicklung für mobile Endgeräte schreibt

黄舟
黄舟Original
2017-08-20 09:30:231655Durchsuche

In diesem Artikel wird hauptsächlich das Schreiben von Schnittstellen für mobile Endgeräte in Java vorgestellt. Der Herausgeber findet ihn recht gut, daher werde ich ihn jetzt mit Ihnen teilen und als Referenz verwenden. Folgen wir dem Editor und werfen wir einen Blick darauf

Als Back-End-Sprache ist das Tolle an Java, dass Java alle Arten von Netzwerkanwendungen ausführen kann, mit denen jeder vertraut ist, also in diesem Mobile-First Ära, wie man die Leistungsfähigkeit von Java weiterhin nutzen kann. Normalerweise wird Java als Server einer App verwendet, um Daten und Geschäftslogik für den App-Client bereitzustellen. Daher verwenden wir Java zum Schreiben der Schnittstelle. Der App-Client greift auf die Schnittstelle zu, gibt eine JSON-Datei zur Analyse zurück und implementiert schließlich das Geschäft Logik.

Und diese Methode wird normalerweise als erholsam bezeichnet.

Restful ist eine Doktorarbeit, die vor N Jahren veröffentlicht wurde. Ihre Kernidee besteht darin, die Front-End-Anfragen über http zu trennen .com/demo/username/password, um auf die Back-End-Schnittstelle zuzugreifen, und dann kapselt das Back-End die verarbeiteten Daten als JSON und gibt sie zurück. Auf diese Weise muss sich das Back-End nur auf die spezifische Logik konzentrieren, die bereitgestellt werden soll die Schnittstelle, während sich das Frontend nur um die Schnittstelle kümmert, was die Programmentkopplung verbessert. Im Mobile-First-Zeitalter ist Erholung äußerst wichtig. Normalerweise kann auf eine Reihe von Backends von mehreren Terminals zugegriffen werden, einschließlich mobiler Terminals und PC-Terminals. Verbessertes MVC durch Restful Das SpringMVC-Framework lässt sich einfacher in Java implementieren. Es bietet eine Reihe von Java-Backend-Demos für iOS. Das Java-Backend verwendet SpringMVC und Hibernate.


//java端

package cotroller;

import java.util.HashMap;
import java.util.Map;
import java.util.List;

import javax.servlet.http.HttpServletRequest;

import jdk.nashorn.api.scripting.JSObject;
import model.Student;
import model.Teacher;

import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.ResponseBody;



import dao.Get;
import dao.StudentDAO;

//登陆servlet
@Controller
public class LoginCotroller {  
  /**
   * 1. value="/doLogin/{username}/{password}" 拦截 xxx/doLogin/xx/xx
   * 2. @ResponseBody 使用此注解将返回数据类型封装json
   * 3. @PathVariable("username") 截取请求1.value中{username}的值
   * 4. Map<String, Object> 服务端将值放入map中再封装为json,客户端方便通过key取出value
   */
  
  StudentDAO studentDAO = new StudentDAO();//调用登陆判断方法
  
  @RequestMapping(value="/doLogin/{username}/{password}",method=RequestMethod.GET)
  @ResponseBody
  public Map<String, Object> getTeacher(@PathVariable("username") Integer username, @PathVariable("password") String password){  
    System.out.println("拦截了客户端json请求");
    Map<String, Object> map = new HashMap<String, Object>();
    
    if(studentDAO.loginByStudent(username, password)){
      System.out.println("密码正确");
      map.put("result", "1");
      return map; //封装为json返回给客户端
    }
      
    System.out.println("密码错误");
    map.put("result", "0");
    return map; //封装为json返回给客户端
  }

}


//ios端
#import <Foundation/Foundation.h>
#import <stdio.h>

int main(int argc, const char * argv[]) {
  @autoreleasepool {
  
    char oldUsername[128];
    char oldPassword[128];
    
    NSLog(@"请输入用户名 :");
    scanf("%s", oldUsername);
    NSString *username = [NSString stringWithUTF8String:oldUsername]; //转换为NSString *
    NSLog(@"请输入密码 :");
    scanf("%s", oldPassword);
    NSString *password = [NSString stringWithUTF8String:oldPassword]; //转换为NSString *
    
    //访问springMVC后台并解析返回的json数据
    //定义一个异常
    NSError *error;
    
    //定义请求action 使用stringWithFormat拼接字符串
    NSString *url = [NSString stringWithFormat:@"http://154212l6t7.imwork.net:27063/partyOS_APP/doLogin/%@/%@", username, password];
    
    //加载一个NSURL对象
    NSURLRequest *request = [NSURLRequest requestWithURL:[NSURL URLWithString:url]];
    
    //发送请求 将请求的url数据放到NSData对象中
    NSData *response = [NSURLConnection sendSynchronousRequest:request returningResponse:nil error:nil];
    
    //NSJSONSerialization从response请求中解析出数据放到字典中
    NSDictionary *jsonResult = [NSJSONSerialization JSONObjectWithData:response options:NSJSONReadingMutableLeaves error:&error];
    
    NSString *resultValue = [jsonResult objectForKey:@"result"];
    
    NSLog(@"你的url是%@", url);
    NSLog(@"服务端返回值%@", resultValue);
    
    // oc字符串比较方法 resultValue isEqualToString:@"1"] 和java 的equlse类似
    if([resultValue isEqualToString:@"1"]){
      NSLog(@"登录成功!");
    }else{
      NSLog(@"登录失败,用户名或密码错误!");
    }
    
    
  }
  return 0;
}

Das obige ist der detaillierte Inhalt vonTeilen Sie Beispiele dafür, wie Java die Schnittstellenentwicklung für mobile Endgeräte schreibt. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn