发表于: 2017-10-18 23:37:38
1 701
今日任务:
1)学习了Restful的架构
什么是Restful?
一种软件架构风格,设计风格而不是标准,只是提供了一组设计原则和约束条件。它主要用于客户端和服务器交互类的软件。基于这个风格设计的软件可以更简洁,更有层次,更易于实现缓存等机制。(百度的解释)
REST 这个词其实是 Representational State Transfer 的缩写 翻译过来就是表现性状态转换 .原本。
RestFul的特点:
资源:网络上可以访问的资源,典型的就是一段URI
统一接口:Restful规定,对数据的增删改查,对应Http的方法:GET用来获取资源,POST用来新建资源(也可以用于更新资源),PUT用来更新资源,DELETE用来删除资源,这样就统一了数据操作的接口,仅通过HTTP方法,就可以完成对数据的所有增删查改工作。
URI和无状态。
url:可以用一个URI(统一资源定位符)指向资源,即每个URI都对应一个特定的资源。要获取这个资源,访问它的URI就可以,因此URI就成了每一个资源的地址或识别符。
无状态:所谓无状态的,即所有的资源,都可以通过URI定位,而且这个定位与其他资源无关,也不会因为其他资源的变化而改变。
具体看博客:http://www.jianshu.com/p/65ab865a5e9f 讲的很详细,Restful是一门学问,需要好好钻研哈
2)搭建起maven版本的springmvc+spring+mybaits的整合的框架,用以进行restFul的测试
为了实现RestFul,首先,得先在web.xml中,Springmvc的控制器的拦截改变
<!--springmvc前端控制器-->
<servlet>
<servlet-name>DispatcherServlet</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<init-param>
<param-name>contextConfigLocation</param-name>
<param-value>classpath:applicationContext.xml</param-value>
</init-param>
</servlet>
<servlet-mapping>
<servlet-name>DispatcherServlet</servlet-name>//这样可以拦截除了.jsp以外的所有资源请求
<url-pattern>/</url-pattern>
</servlet-mapping>
但是这样也存在问题,js等资源文件访问不到了,这时候需要在spring的配置文件中添加一个注解,对这类资源放行
<mvc:resources mapping="/js/**" location="/js/"/>
另外,为了使用springmvc,还需要几个配置
<mvc:annotation-driven/>
这个注解的作用是加载注解方式的处理器适配器与映射器,另外它还注册了其他的东西(使用这个注解的目的在我而言是更加方便,因为不用手动去声明更多的注解),具体见http://www.cnblogs.com/DarrenChan/p/6892655.html?utm_source=itdadao&utm_medium=referral,这个博客中不仅提到了这个注解,还提到了与其他一些常见注解的区别。。
另外,配置了视图解析器
<bean
class="org.springframework.web.servlet.view.InternalResourceViewResolver">
<property name="prefix" value="/jsp/"></property>
<property name="suffix" value=".jsp"></property>
</bean>
这些东西再加上与mybatis的整合,就构成了springmvc的主要配置,
3)尝试写了restful的增加与删除操作。
ps:/usr在类中实现
@Controller
@RequestMapping("/user/*")
public class UserController {
/*
method=get
* /usr/id
* 查询id并返回
* */
@RequestMapping(value = "/{id}",method = RequestMethod.GET)
@ResponseBody
public User findById(@PathVariable(value ="id") String id){
User user=this.userService.findById(Long.valueOf(id));
System.out.println(user.getName());
return user;
}
/*
* 删除
* /user/id
* 返回true
* */
@RequestMapping(value = "/{id}",method = RequestMethod.DELETE)
public @ResponseBody Boolean deleteById(@PathVariable(value = "id")String id){
return userService.deleteById(Long.valueOf(id));
}
其中用到的@ResponseBody注解需要与
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-core</artifactId>
<version>2.8.8</version>
</dependency>
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-databind</artifactId>
<version>2.8.8</version>
</dependency>
这两个包一块使用用以返回给客户端JSON数据
今日问题:
今日配置web.xml文件的时候,出现了找不到*.jsp的情况,仔细一看,发现是<url-pattern>/</url-pattern> 写成了<url-pattern>/*</url-pattern>圣 这样资源就都被拦截了,,,以后得注意
明日任务:
继续研究restFul,写出其余的操作,然后熟悉一下svn
但是 今日 今日问题:问题:ml文件的
评论