Servlet和Android网络交互基础

会挽雕弓如满月,西北望,射天狼。这篇文章主要讲述Servlet和Android网络交互基础相关的知识,希望能为你提供帮助。
在上一章中採用了最简单的创建service端代码方式,但在实际开发中一般都会採用比較成熟的框架。以下是完整的maven+spring mvc 创建service的方式
下载安装Eclipse 和jdk这里须要注意一下eclipse jdk选择版本号的位数要一直。不能一个是32位一个是64位,不一致会造成后面使用时有错误
完成下载以后须要配置jdk的环境变量 jdk7配置jdk10配置。
下载安装Maven并配置环境变量依照完成以后我们须要配置用户范围setting.xml

安装文件夹/conf/setting.xml是全局的设置,这个电脑上全部的用户都会受影响,所以将安装文件夹/conf/setting.xml复制一份,到上面配置仓库位置中,默认不设置路径在c:/用户/用户名/.m2下

高版本号的Eclipse默认带有maven的插件。假设没有的我们能够自己下载
http://m2eclipse.sonatype.org/sites/m2e
配置Eclipse在Window——Preferences——Maven
installations勾掉默认的maven,add安装的maven文件夹
【Servlet和Android网络交互基础】
Servlet和Android网络交互基础

文章图片

user Settings中选择本地仓库配置的setting.xml。如我的E:\m2\settings.xml
Servlet和Android网络交互基础

文章图片

用Maven来构建工程在Eclipse中选择新建Maven project。选择工作环境1、选择要创建的filter例如以下:
Servlet和Android网络交互基础

文章图片

2、填写maven项目坐标信息
这里的Group Id就是大项目的id,Arifact Id就是该项目的Id。就像一个大项目中有很多小项目组成一样
Servlet和Android网络交互基础

文章图片

我们生成的项目结构例如以下
Servlet和Android网络交互基础

文章图片

完好项目首先,完好文件夹,添加重要的source Folder,这个在以下config build path会用到。须要添加
添加src/main/resources。src/test/resources文件夹。让文件夹变成标准的maven结构。
Servlet和Android网络交互基础

文章图片

把项目转换成web工程选择项目属性。例如以下图加入Web Module
Servlet和Android网络交互基础

文章图片

加入src/main/webapp路径。把以下选项也选上。完成以后点击ok
在点击Apply
然后再右击项目熟悉
Servlet和Android网络交互基础

文章图片

去掉多余项,把刚才新建的文件夹加进去
例如以下图
Servlet和Android网络交互基础

文章图片

最后完整的项目工程例如以下
Servlet和Android网络交互基础

文章图片

xml配置文件pom.xml 内容例如以下
< project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd"> < modelVersion> 4.0.0< /modelVersion> < groupId> MavenTest< /groupId> < artifactId> tan.maven.springmvc< /artifactId> < packaging> war< /packaging> < version> 0.0.1-SNAPSHOT< /version> < name> tan.maven.springmvc Maven Webapp< /name> < url> http://maven.apache.org< /url> < properties> < project.build.sourceEncoding> UTF-8< /project.build.sourceEncoding> < springversion> 3.1.1.RELEASE< /springversion> < junitversion> 3.8.1< /junitversion> < /properties> < dependencies> < dependency> < groupId> junit< /groupId> < artifactId> junit< /artifactId> < version> ${junitversion}< /version> < scope> test< /scope> < /dependency> < dependency> < groupId> org.springframework< /groupId> < artifactId> spring-aop< /artifactId> < version> ${springversion}< /version> < type> jar< /type> < scope> compile< /scope> < /dependency> < dependency> < groupId> org.springframework< /groupId> < artifactId> spring-asm< /artifactId> < version> ${springversion}< /version> < type> jar< /type> < scope> compile< /scope> < /dependency> < dependency> < groupId> org.springframework< /groupId> < artifactId> spring-aspects< /artifactId> < version> ${springversion}< /version> < type> jar< /type> < scope> compile< /scope> < /dependency> < dependency> < groupId> org.springframework< /groupId> < artifactId> spring-beans< /artifactId> < version> ${springversion}< /version> < type> jar< /type> < scope> compile< /scope> < /dependency> < dependency> < groupId> org.springframework< /groupId> < artifactId> spring-context< /artifactId> < version> ${springversion}< /version> < type> jar< /type> < scope> compile< /scope> < /dependency> < dependency> < groupId> org.springframework< /groupId> < artifactId> spring-context-support< /artifactId> < version> ${springversion}< /version> < type> jar< /type> < scope> compile< /scope> < /dependency> < dependency> < groupId> org.springframework< /groupId> < artifactId> spring-core< /artifactId> < version> ${springversion}< /version> < type> jar< /type> < scope> compile< /scope> < /dependency> < dependency> < groupId> org.springframework< /groupId> < artifactId> spring-expression< /artifactId> < version> ${springversion}< /version> < type> jar< /type> < scope> compile< /scope> < /dependency> < dependency> < groupId> org.springframework< /groupId> < artifactId> spring-jdbc< /artifactId> < version> ${springversion}< /version> < type> jar< /type> < scope> compile< /scope> < /dependency> < dependency> < groupId> org.springframework< /groupId> < artifactId> spring-jms< /artifactId> < version> ${springversion}< /version> < type> jar< /type> < scope> compile< /scope> < /dependency> < dependency> < groupId> org.springframework< /groupId> < artifactId> spring-orm< /artifactId> < version> ${springversion}< /version> < type> jar< /type> < scope> compile< /scope> < /dependency> < dependency> < groupId> org.springframework< /groupId> < artifactId> spring-oxm< /artifactId> < version> ${springversion}< /version> < type> jar< /type> < scope> compile< /scope> < /dependency> < dependency> < groupId> org.springframework< /groupId> < artifactId> spring-tx< /artifactId> < version> ${springversion}< /version> < type> jar< /type> < scope> compile< /scope> < /dependency> < dependency> < groupId> org.springframework< /groupId> < artifactId> spring-web< /artifactId> < version> ${springversion}< /version> < type> jar< /type> < scope> compile< /scope> < /dependency> < dependency> < groupId> org.springframework< /groupId> < artifactId> spring-webmvc< /artifactId> < version> ${springversion}< /version> < type> jar< /type> < scope> compile< /scope> < /dependency> < dependency> < groupId> org.springframework< /groupId> < artifactId> spring-test< /artifactId> < version> ${springversion}< /version> < type> jar< /type> < scope> compile< /scope> < /dependency> < dependency> < groupId> javax.servlet< /groupId> < artifactId> jstl< /artifactId> < version> 1.2< /version> < type> jar< /type> < scope> compile< /scope> < /dependency> < dependency> < groupId> commons-collections< /groupId> < artifactId> commons-collections< /artifactId> < version> 3.1< /version> < /dependency> < dependency> < groupId> commons-logging< /groupId> < artifactId> commons-logging< /artifactId> < version> 1.1< /version> < /dependency> < /dependencies> < build> < finalName> tan-springmvc-book< /finalName> < /build> < /project>

web.xml 位于WEB-INF路径下
< ?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" xsi:schemaLocation=" http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" version="3.0"> < display-name> Archetype Created Web Application< /display-name> < servlet> < !-- spring MVC的核心就是DispatcherServlet,使用springMVC的第一步就是将以下的servlet放入web.xml servlet-name属性非常重要。默认情况下,DispatchServlet会载入这个名字-servlet.xml的文件,例如以下,就会载入 dispather-servlet.xml,也是在WEN-INF文件夹下。 也能够直接指定详细文件 < servlet> < servlet-name> book< /servlet-name> < servlet-class> org.springframework.web.servlet.DispatcherServlet< /servlet-class> < init-param> < param-name> contextConfigLocation< /param-name> < param-value> /WEB-INF/applicationContext.xml< /param-value> < /init-param> < load-on-startup> 1< /load-on-startup> < /servlet> --> < servlet-name> dispatcher< /servlet-name> < servlet-class> org.springframework.web.servlet.DispatcherServlet< /servlet-class> < load-on-startup> 1< /load-on-startup> < /servlet> < servlet-mapping> < servlet-name> dispatcher< /servlet-name> < url-pattern> /< /url-pattern> < /servlet-mapping> < filter> < filter-name> encodingFilter< /filter-name> < filter-class> org.springframework.web.filter.CharacterEncodingFilter< /filter-class> < init-param> < param-name> encoding< /param-name> < param-value> UTF-8< /param-value> < /init-param> < init-param> < param-name> forceEncoding< /param-name> < param-value> true< /param-value> < /init-param> < /filter> < filter-mapping> < filter-name> encodingFilter< /filter-name> < url-pattern> /*< /url-pattern> < /filter-mapping> < display-name> mvc< /display-name> < welcome-file-list> < welcome-file> index.html< /welcome-file> < welcome-file> index.htm< /welcome-file> < welcome-file> index.jsp< /welcome-file> < welcome-file> default.html< /welcome-file> < welcome-file> default.htm< /welcome-file> < welcome-file> default.jsp< /welcome-file> < /welcome-file-list> < /web-app>

dispatcher-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:context="http://www.springframework.org/schema/context" xmlns:mvc="http://www.springframework.org/schema/mvc" xmlns:p="http://www.springframework.org/schema/p" 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.xsd" default-lazy-init="true"> < !-- 通过mvc:resources设置静态资源,这样servlet就会处理这些静态资源。而不通过控制器 --> < !-- 设置只是滤内容,比方:css,jquery,img 等资源文件 --> < mvc:resources location="/*.html" mapping="/**.html" /> < mvc:resources location="/css/*" mapping="/css/**" /> < mvc:resources location="/js/*" mapping="/js/**" /> < mvc:resources location="/images/*" mapping="/images/**" /> < !-- 加入注解驱动 --> < mvc:annotation-driven /> < !-- 默认扫描的包路径 --> < context:component-scan base-package="exam_1" /> < !-- mvc:view-controller能够在不须要Controller处理request的情况。转向到设置的View --> < !-- 像以下这样设置。假设请求为/。则不通过controller,而直接解析为/index.jsp --> < mvc:view-controller path="/" view-name="index" /> < bean class="org.springframework.web.servlet.view.UrlBasedViewResolver"> < property name="viewClass" value="https://www.songbingjia.com/android/org.springframework.web.servlet.view.JstlView"> < /property> < !-- 配置jsp路径前缀 --> < property name="prefix" value="https://www.songbingjia.com/"> < /property> < !-- 配置URl后缀 --> < property name="suffix" value="https://www.songbingjia.com/android/.jsp"> < /property> < /bean> < /beans>

Servlet和Android网络交互基础

文章图片

创建java类 MyController
package mvc; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.bind.annotation.ResponseBody; @Controller public class MyController {@RequestMapping("login") //用来处理前台的login请求 private @ResponseBody String hello( @RequestParam(value = "https://www.songbingjia.com/android/username", required = false)String username, @RequestParam(value = "https://www.songbingjia.com/android/password", required = false)String password ){ return "Hello "+username+",Your password is: "+password; }}

到此代码编写完成
项目执行非常多bolg文章到这里就结束了,是由于那些人他们的weorkspace内已经开发过了项目。
假设刚下载的还须要2部
第一步右击项目Run As- > maven install 装载须要的类库
第二部 tomact属性设置
Run As-> Run On Server 选择你的tomact并把项目加进去。假设执行没有错误会出现404错误
解决方法例如以下:
Servlet和Android网络交互基础

文章图片

右击选择Add and Reomve。然后双击弹出以下页面
Servlet和Android网络交互基础

文章图片

又一次配置以下二项
Servlet和Android网络交互基础

文章图片

然后再执行项目就OK了
原因这个说的比較明确
项目源代码地址


















    推荐阅读