使用SpringMvc开发Android WebService入门教程
1.首先大家先创建一个JavaWeb项目
2.然后加入SpringMVC所依赖的jar包文件到WebRootWEB-INFlib 文件夹下,jar包含文件如下图
3.我们在WebRootWEB-INF 目录下创建一个spring-servlet.xml文件,粘入如下代码
XML代码
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:mvc="http://www.springframework.org/schema/mvc"
xmlns:context="http://www.springframework.org/schema/context"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.0.xsd"> <!-- 指定Controller都在 com.controller包里-->
<context:component-scan base-package="com.springmvc.controller" />
<bean
class="org.springframework.web.servlet.view.InternalResourceViewResolver">
<property name="prefix" value="/" />
<property name="suffix" value=".jsp" />
</bean>
</beans>
4.我们现在在web.xml 下面粘入一下代码 简单配置一下SpringMvc
XML代码
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns="http://java.sun.com/xml/ns/javaee" xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" id="WebApp_ID" version="3.0">
<context-param>
<param-name>contextConfigLocation</param-name>
<!-- 应用上下文配置文件 -->
<param-value>/WEB-INF/spring-servlet.xml</param-value>
</context-param>
<listener>
<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>
<!-- 配置spring核心servlet -->
<servlet>
<servlet-name>spring</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>
<!--
url-pattern配置为/,不带文件后缀,会造成其它静态文件(js,css等)不能访问。如配为*.do,则不影响静态文件的访问
-->
<servlet-mapping>
<servlet-name>spring</servlet-name>
<url-pattern>/</url-pattern>
</servlet-mapping>
</web-app>
现在呢我们的spring mvc项目就创建完成了,我们把web项目发布到本机tomcat里面,控制台出现如下输出并且没有报错证明你的spring mvc项目已经配置成功了。
接下来我们就可以开始编写接口了
我们首先创建Controller,由于我们之前在spring-servlet.xml文件里配置了指定Controller都在 com.springmvc.controller包里,所以我们要先创建com.springmvc.controller文件夹目录
XML代码
<!-- 指定Controller都在 com.springmvc.controller包里-->
<context:component-scan base-package="com.springmvc.controller" />
接下来我们就开始写springmvc 的controller了,我们就先写一个简单的WebService接口,给Android返回一句Hello SpringMVC!
新建一个名为HelloController.java文件
Java代码
package com.springmvc.controller;
//朋友一定很好奇这个是干什么的,这个呢就是告诉spring这个类是Controller
@Controller
// 是一个用来处理请求地址映射的注解,可用于类或方法上。用于类上,表示类中的所有响应请求的方法都是以该地址作为父路径
@RequestMapping("HelloController")
public class HelloController {
// value: 指定请求的实际地址;
// method: 指定请求的method类型, GET、POST、PUT、DELETE等;
@RequestMapping(value = "/hello.json", method = RequestMethod.GET)
// 该注解用于读取Request请求的body部分数据,使用系统默认配置的HttpMessageConverter进行解析,然后把相应的数据绑定到要返回的对象上;
@ResponseBody
// 那么我们要访问此方法是 完整路径应该是http://ip地址:端口/SpringMVC/HelloController/hello.json
public Object hello() {
return "Hello SpringMVC!";
}
}
写完了之后我们发不到tomcat中,本地测试时可以在浏览器输入127.0.0.1:8080/SpringMVC/HelloController/hello.json进行访问
输出结果就为 Hello SpringMVC!
想必你对编写Android接口已经有一定了解了,那么接下来我们正式开始编写一个简单Android应用的接口吧
首先我们应用有一个登录页面,那么我们服务端就要为这个应用登录功能提供一个登录接口
那么我们先来创建一个LoginController,我们就在这里面来编写登录接口
再想想登录成功我们肯定要给用户返回当前登录用户的信息比如用户名等…那么我们也要同时再创建一个用户实体类名字叫UserEntity
那我们先定义一下UserEntity里面所需要的字段吧
Java代码
package com.springmvc.entity;
public class UserEntity {
private String username;// 用户名
private String password;// 密码
private String nickname;// 昵称
private String gender;// 性别
private String age;// 年龄
get set 方法就省略了
}
接下来我们来编写LoginController的登录接口
Java代码
package com.springmvc.controller;
//这一步肯定少不了,前面有介绍就不再介绍了
@Controller
// 定义访问登录接口的父路径,前面有介绍也不多介绍了
@RequestMapping("LoginController")
public class LoginController {
// 路径参数{name}填入用户名,{pass}填入密码。我们设置为GET请求。
@RequestMapping(value = "/login_get.json/{name}/{pass}", method = RequestMethod.GET)
// 先前介绍过,就不再介绍了。
@ResponseBody
// 当使用@RequestMapping URI template 样式映射时, 即 /login_get.json/{name}/{pass},
// 这时的name和pass可通过 @Pathvariable注解绑定它传过来的值到方法的参数上。
public Object login(@PathVariable String name, @PathVariable String pass) {
// 我们这里为了简单就不去数据库查询了(真正开发时候这里就要把传过来的用户名和密码带到数据库里进行查询)
// 假如我们数据库里用户名是admin密码为123456
if (name.equals("admin") && pass.equals("123456")) {
// 到了这里就说明我们登录成功了,这时候我们就要给Android端返回这个用户的信息
// 这里我们也就先写假数据了
UserEntity entity = new UserEntity();
entity.setUsername("admin");
entity.setPassword("123456");
entity.setNickname("张三");
entity.setGender("男");
entity.setAge("22");
return entity;// 此时返回此用户实体类
} else {
Map map = new HashMap();
map.put("msg", "登录失败,请检查用户名和密码是否正确");
return map;// 登录失败给Android端返回一个错误消息提醒用户
}
}
}
由于是GET访问,我们可以直接用浏览器访问 输入正确的用户名和密码,我们看下图当前用户实体自动转换为json字符串了,这时拿到json字符串就好办了,我们Android端就可以进行解析此json并且拿到当前用户的信息了。
那我们再输入错误的用户名和密码时,我们看下图,返回的json字符串告诉我们可能输入的信息有误,这时我们Android端也可以进行解析json然后给用户提示我们服务端返回的提示信息告诉用户检查输入的信息是否正确了。
| 开发, 接口, 文件夹, Android, version
|
本主题由 zhaixiaohu 于 2015-2-2 13:35:15 加入精华
收藏1
转发到微博
相关帖子• 第三方 本地开发环境
• [转]跟我学jquery(一)爱之初体验jquery
• 云商店调试开发环境简介
• [转]1千万应用下载量的营销技巧
• 网络最强PHP开发工具+电子书+视频教程等资料下载汇总
• 微信开发精华文章汇总(不定期更新,欢迎补充)
• 应用访问提示HTTP ERROR 503
• 用java在sae做移动开发一下问题
• 如何使用微信的开发模式进行关键词回复啊?
• 建议sae python的本地开发环境打包至sae服务器上
|
| 举报
|
| |
悲观主义者一枚
初来乍到
串个门
加好友
打招呼
发消息
| 沙发
发表于 2015-1-31 17:50:46 |只看该作者
本帖最后由 悲观主义者一枚 于 2015-2-2 12:52 编辑
我们有了登录功能那么肯定就少不了注册功能,接下来我们再来写一个注册功能
那么我们先来创建一个RegisteredController,我们就在这里面来编写注册接口
Java代码
package com.springmvc.controller;
import java.util.HashMap;
import java.util.Map;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.ModelAttribute;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.ResponseBody;
import com.springmvc.entity.UserEntity;
//这一步肯定少不了,前面有介绍就不再介绍了
@Controller
// 定义访问注册接口的父路径,前面有介绍也不多介绍了
@RequestMapping("RegisteredController")
public class RegisteredController {
// 由于是提交数据所以我们这里使用POST请求
@RequestMapping(value = "/registered_post.json", method = RequestMethod.POST)
@ResponseBody
// 此处@ModelAttribute 可以吧POST请求所携带的json字符串自动解析成后面所写的实体类
// ,然后就直接可以通过这个UserEntity取到Android端传过来的数据
public Object registered(@ModelAttribute UserEntity entity) {
String username = entity.getUsername();
String password = entity.getPassword();
String nickname = entity.getNickname();
String gender = entity.getGender();
String age = entity.getAge();
// 现在数据已经拿到了(真正开发时候我们需要把这里Android传回来用户登记的数据插入到数据库中就好了)
// 为了方便查看,所以这里我把返回的数据拼到一起了
String string = "用户名:" + username + " - 密码:" + password + " - 昵称:"
+ nickname + " - 性别:" + gender + " - 年龄:" + age;
// 如果数据库插入成功然后返回true,再给Android返回一个消息,告诉Android端已经注册成功,可以进行登录了
// 这里没有涉及到数据库操作,所以这里我们这里简单判断一下数据不为null就证明注册成功了
if (username != null && password != null && nickname != null
&& gender != null && age != null) {
// 成功返回消息告诉Android端
Map<String, String> map = new HashMap<String, String>();
map.put("msg", "注册成功!");
return map;
} else {
// 失败返回消息告诉Android端
Map<String, String> map = new HashMap<String, String>();
map.put("msg", "注册失败!");
return map;
}
}
}
那么我们现在给这个接口打个断点,用一个模拟http post请求的工具测试一下这个接口是否写好了
OK进断点了,我们看一下下图,参数全部传了过来,这就说明我们注册成功了!
这样我们SpringMVC的一个小Demo就写完了,那么我在教大家如何把这个项目发不到sae上面,Java项目需要使用war包上传到sae上,所以我们先把我们的程序打包为war包(注意:注意war包名称必须和appname相同)1.
项目右键 选择 Export
2.
选择 JavaEE - WAR file
3.
然后我们选择导出的路径,我就选择桌面了
4.
然后我们进入我们的sae应用中心 - 代码管理 第一次上传需要创建版本
5.
我们选择创建版本
6.
然后我们上传war包 就OK了。
提供几个测试地址:
①HelloController : http://1.springmvcdemo.sinaapp.com/HelloController/hello.json ②登录LoginController:http://1.springmvcdemo.sinaapp.com/LoginController/login_get.json/admin/123456
③注册RegisteredController:由于这个是POST请求所以就请大家自己测试啦 POST(http://1.springmvcdemo.sinaapp.com/RegisteredController/registered_post.json,需要传入参数)
给大家推荐一个json解析工具 Google提供的 Gson 这个解析json挺好用,需要的同学可以去搜一搜了解下。使用SpringMvc开发Android WebService接口我就先简单介绍到这里,谢谢。
第一次在sae发教程帖请大家多多指教。
|
|
|
| 举报
|
| |
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理