发表于: 2018-03-27 21:19:34

1 580


今天完成的事情:


1,了解REST接口

2,了解Spring MVC

3,完成一个简单的案例



Rest接口

Rest—Representational State Transfer – 表现层状态转移、

URL定位资源,用HTTP动词(GETPOSTDELETEDETC)描述

 

 

1.REST描述的是在网络中clientserver的一种交互形式;REST本身不实用,实用的是如何设计 RESTful APIREST风格的网络接口);

2.Server提供的RESTful API中,URL中只使用名词来指定资源,原则上不使用动词。资源REST架构或者说整个网络处理的核心。

3. HTTP协议里的动词来实现资源的添加,修改,删除等操作。即通过HTTP动词来实现资源的状态扭转

4. ServerClient之间传递某资源的一个表现形式,比如用JSONXML传输文本,或者用JPGWebP传输图片等。当然还可以压缩HTTP传输时的数据(on-wire data compression)。

5. HTTP Status Code传递Server的状态信息。比如最常用的 200 表示成功,500 表示Server内部错误等。

 

ServerAPI如何设计才满足RESTful要求?

1. URL 

2. API 

3. URI使用名词而不是动词,且推荐用复数。

4 : 保证  HEAD GET 方法是安全的,不会对资源状态有所改变(污染)

5. 资源的地址推荐用嵌套结构。

6. 警惕返回结果的大小。如果过大,及时进行分页(pagination)或者加入限制(limit)。HTTP协议支持分页(Pagination)操作,在Header中使用 Link 即可。

7. 使用正确的HTTP Status Code表示访问状态

8. 在返回结果用明确易懂的文本(String。注意返回的错误是要给人看的,避免用 1001 这种错误信息),而且适当地加入注释。





SpringMVC

MVC三层架构

模型层(Modle):封装应用程序数据,由pojo编写

视图层(View):主要用于呈现模型数据,通常由她产生可以由客户端浏览器可以实现的HTML

控制器层(Control):主要用于处理用户的请求,构建合适的模型并且传递给视图层呈现。


Spring Web 模型-视图-控制(MVC)框架是围绕 DispatcherServlet 设计的,DispatcherServlet 用来处理所有的 HTTP 请求和响应。





Spring MVC 简单案例:

 

新建一个maven webapp项目


添加依赖:

<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>com.javaweb</groupId>
  <
artifactId>javaweb</artifactId>
  <
packaging>war</packaging>
  <
version>1.0-SNAPSHOT</version>
  <
name>javaweb Maven Webapp</name>
  <
url>http://maven.apache.org</url>
  <
dependencies>
    <
dependency>
      <
groupId>junit</groupId>
      <
artifactId>junit</artifactId>
      <
version>3.8.1</version>
      <
scope>test</scope>
    </
dependency>
<!--日志-->
   
<dependency>
      <
groupId>org.slf4j</groupId>
      <
artifactId>slf4j-log4j12</artifactId>
      <
version>1.7.21</version>
    </
dependency>

   
<!--j2ee相关包 servletjspjstl-->
   
<dependency>
      <
groupId>javax.servlet</groupId>
      <
artifactId>javax.servlet-api</artifactId>
      <
version>3.1.0</version>
    </
dependency>
    <
dependency>
      <
groupId>javax.servlet.jsp</groupId>
      <
artifactId>jsp-api</artifactId>
      <
version>2.2</version>
    </
dependency>
    <
dependency>
      <
groupId>javax.servlet</groupId>
      <
artifactId>jstl</artifactId>
      <
version>1.2</version>
    </
dependency>

   
<!--mysql驱动包-->
   
<dependency>
      <
groupId>mysql</groupId>
      <
artifactId>mysql-connector-java</artifactId>
      <
version>5.1.35</version>
    </
dependency>

   
<!--spring相关包-->
   
<dependency>
      <
groupId>org.springframework</groupId>
      <
artifactId>spring-web</artifactId>
      <
version>4.3.1.RELEASE</version>
    </
dependency>
    <
dependency>
      <
groupId>org.springframework</groupId>
      <
artifactId>spring-webmvc</artifactId>
      <
version>4.3.1.RELEASE</version>
    </
dependency>

   
<!--其他需要的包-->
   
<dependency>
      <
groupId>org.apache.commons</groupId>
      <
artifactId>commons-lang3</artifactId>
      <
version>3.4</version>
    </
dependency>
    <
dependency>
      <
groupId>commons-fileupload</groupId>
      <
artifactId>commons-fileupload</artifactId>
      <
version>1.3.1</version>
    </
dependency>

  </
dependencies>
  <
build>
    <
finalName>javaweb</finalName>

    <
resources>
     
<!--表示把java目录下的有关xml文件,properties文件编译/打包的时候放在resource目录下-->
     
<resource>
        <
directory>${basedir}/src/main/java</directory>
        <
includes>
          <
include>**/*.properties</include>
          <
include>**/*.xml</include>
        </
includes>
      </
resource>
      <
resource>
        <
directory>${basedir}/src/main/resources</directory>
      </
resource>
    </
resources>
    <
plugins>
     
<!--servlet容器 jetty插件-->
     
<plugin>
        <
groupId>org.eclipse.jetty</groupId>
        <
artifactId>jetty-maven-plugin</artifactId>
        <
version>9.3.10.v20160621</version>
      </
plugin>
    </
plugins>
  </
build>
</
project>



项目架构



配置web.xml

配置<servlet-name>-serlvet.xml


设置控制器


创建jsp


配置tomcat


将项目添加进入



运行tomcat,打开网页,选择/hello路径


输出控制器内定义的属性。






遇到的问题:

修改头标签






明天计划的事情:了解servlet相关知识,完成REST接口
遇到的问题:做了一个简单案例,发现jsp页面无数据,发现是web.xml头标签不能使用自动生成的,不然会没有数据。更改之后恢复正常。
收获:了解REST风格,springmvc相关知识


返回列表 返回列表
评论

    分享到