Home  >  Article  >  Java  >  Sharing examples of how Java writes interface development for mobile terminals

Sharing examples of how Java writes interface development for mobile terminals

黄舟
黄舟Original
2017-08-20 09:30:231568browse

This article mainly introduces how to write interfaces for mobile terminals in Java. The editor thinks it is quite good. Now I will share it with you and give it as a reference. Let’s follow the editor and take a look.

As a back-end language, the power of Java lies in the web. Java can do all kinds of network applications that everyone is familiar with, so in this mobile-first era , how to continue to use the power of java. Usually, Java is used as the server of an app to provide data and business logic for the app client, so we use Java to write the interface. The app client accesses the interface and returns a json file for analysis, and finally implements the business logic.

And this method is usually called restful.

restful is an architectural idea. It is a doctoral thesis published by a doctoral student N years ago. Its core idea is to separate the front and back ends. The front end requests through http, such as www.xxxx.com/ demo/username/password to access the back-end interface, and then the back-end encapsulates the processed data as json and returns it. In this way, the back-end only needs to focus on the specific logic to provide the interface, while the front-end only cares about the interface, which improves program decoupling. In the mobile-first era, restful is extremely important. Usually a set of backend can be accessed by multiple terminals, including mobile terminals and PC terminals. Improved mvc through restful The SpringMVC framework is easier to implement restful in java. It provides a set of java backend demos for ios to access. The java backend uses springMVC and 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 服务端将值放入map中再封装为json,客户端方便通过key取出value
   */
  
  StudentDAO studentDAO = new StudentDAO();//调用登陆判断方法
  
  @RequestMapping(value="/doLogin/{username}/{password}",method=RequestMethod.GET)
  @ResponseBody
  public Map getTeacher(@PathVariable("username") Integer username, @PathVariable("password") String password){  
    System.out.println("拦截了客户端json请求");
    Map map = new HashMap();
    
    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 
#import 

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;
}

The above is the detailed content of Sharing examples of how Java writes interface development for mobile terminals. For more information, please follow other related articles on the PHP Chinese website!

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn