本帖最后由 悲观主义者一枚 于 2015-1-31 17:55 编辑
使用SpringMvc开发Android WebService入门教程 1.首先大家先创建一个JavaWeb项目
2.然后加入SpringMVC所依赖的jar包文件到WebRootWEB-INFlib 文件夹下,jar包含文件如下图
3.我们在WebRootWEB-INF 目录下创建一个spring-servlet.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 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文件夹目录
- <!-- 指定Controller都在 com.springmvc.controller包里-->
- <context:component-scan base-package="com.springmvc.controller" />
接下来我们就开始写springmvc 的controller了,我们就先写一个简单的WebService接口,给Android返回一句Hello SpringMVC!
新建一个名为HelloController.java文件
- package com.springmvc.controller;
- @Controller
- @RequestMapping("HelloController")
- public class HelloController {
- @RequestMapping(value = "/hello.json", method = RequestMethod.GET)
- @ResponseBody
- public Object hello() {
- return "Hello SpringMVC!";
- }
- }
写完了之后我们发不到tomcat中,本地测试时可以在浏览器输入127.0.0.1:8080/SpringMVC/HelloController/hello.json进行访问
输出结果就为 Hello SpringMVC!
想必你对编写Android接口已经有一定了解了,那么接下来我们正式开始编写一个简单Android应用的接口吧
首先我们应用有一个登录页面,那么我们服务端就要为这个应用登录功能提供一个登录接口
那么我们先来创建一个LoginController,我们就在这里面来编写登录接口
再想想登录成功我们肯定要给用户返回当前登录用户的信息比如用户名等…那么我们也要同时再创建一个用户实体类名字叫UserEntity
那我们先定义一下UserEntity里面所需要的字段吧
- 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的登录接口
- package com.springmvc.controller;
- @Controller
- @RequestMapping("LoginController")
- public class LoginController {
- @RequestMapping(value = "/login_get.json/{name}/{pass}", method = RequestMethod.GET)
- @ResponseBody
- public Object login(@PathVariable String name, @PathVariable String pass) {
- if (name.equals("admin") && pass.equals("123456")) {
- 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;
- }
- }
- }
由于是GET访问,我们可以直接用浏览器访问 输入正确的用户名和密码,我们看下图当前用户实体自动转换为json字符串了,这时拿到json字符串就好办了,我们Android端就可以进行解析此json并且拿到当前用户的信息了。
那我们再输入错误的用户名和密码时,我们看下图,返回的json字符串告诉我们可能输入的信息有误,这时我们Android端也可以进行解析json然后给用户提示我们服务端返回的提示信息告诉用户检查输入的信息是否正确了。
|