1. 程式人生 > >Servlet和Android網絡交互基礎(3)

Servlet和Android網絡交互基礎(3)

framework 方法 con 不一致 war 新建 name屬性 conf junit

在上一章中採用了最簡單的創建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文件夾

技術分享

user Settings中選擇本地倉庫配置的setting.xml。如我的E:\m2\settings.xml

技術分享

用Maven來構建工程

在Eclipse中選擇新建Maven project。選擇工作環境

1、選擇要創建的filter例如以下:

技術分享

2、填寫maven項目坐標信息
這裏的Group Id就是大項目的id,Arifact Id就是該項目的Id。就像一個大項目中有很多小項目組成一樣

技術分享
我們生成的項目結構例如以下
技術分享

完好項目

首先,完好文件夾,添加重要的source Folder,這個在以下config build path會用到。須要添加
添加src/main/resources。src/test/resources文件夾。讓文件夾變成標準的maven結構。

技術分享

把項目轉換成web工程

選擇項目屬性。例如以下圖加入Web Module

技術分享

加入src/main/webapp路徑。把以下選項也選上。完成以後點擊ok
在點擊Apply
然後再右擊項目熟悉

技術分享

去掉多余項,把剛才新建的文件夾加進去
例如以下圖

技術分享

最後完整的項目工程例如以下

技術分享

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="org.springframework.web.servlet.view.JstlView"></property>  
        <!-- 配置jsp路徑前綴 -->  
        <property name="prefix" value="/"></property>  
        <!-- 配置URl後綴 -->  
        <property name="suffix" value=".jsp"></property>  
    </bean>  

</beans>  

技術分享
創建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 = "username", required = false)String username,  
           @RequestParam(value = "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錯誤
解決方法例如以下:

技術分享

右擊選擇Add and Reomve。然後雙擊彈出以下頁面

技術分享

又一次配置以下二項

技術分享

然後再執行項目就OK了
原因這個說的比較明確
項目源代碼地址

Servlet和Android網絡交互基礎(3)