springmvc学习经验
Spring MVC属于SpringFrameWork的后续产品,已经融合在Spring Web Flow里面。Spring 框架提供了构建 Web 应用程序的全功能 MVC 模块。使用 Spring 可插入的 MVC 架构,可以选择是使用内置的 Spring Web 框架还可以是 Struts 这样的 Web 框架。
基本资料
Spring 框架提供了构建 Web 应用程序的全功能 MVC 模块。 使用 Spring 可插入的 MVC 架构,可以选择是使用内置的 Spring Web 框架还是 Struts 这样的 Web 框架。通过策略接口,Spring 框架是高度可配置的,而且包含多种视图技术,例如 JavaServer Pages(JSP)技术、Velocity、Tiles、iText 和 POI。Spring MVC 框架并不知道使用的视图,所以不会强迫您只使用 JSP 技术。Spring MVC 分离了控制器、模型对象、分派器以及处理程序对象的角色,这种分离让它们更容易进行定制。
优点介绍
Lifecycle for overriding binding, validation, etc.;易于同其它View框架(Titles等)无缝集成,采用IOC便于测试。
它是一个典型的教科书式的mvc构架,而不像struts等都是变种或者不是完全基于mvc系统的框架,对于初学者或者想了解mvc的人来说我觉得 spring是最好的,它的实现就是教科书!第二它和tapestry一样是一个纯正的servlet系统,这也是它和tapestry相比 struts所没有的优势。而且框架本身有代码,而且看起来也不费劲比较简单可以理解。
Spring Web MVC处理请求的流程
applicationContext.xm
<?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:aop="http://www.springframework.org/schema/aop"
xmlns:p="http://www.springframework.org/schema/p"
xmlns:context="http://www.springframework.org/schema/context"
xmlns:tx="http://www.springframework.org/schema/tx"
xmlns:mvc="http://www.springframework.org/schema/mvc"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans.xsd
http://www.springframework.org/schema/aop
http://www.springframework.org/schema/aop/spring-aop.xsd
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context.xsd
http://www.springframework.org/schema/tx
http://www.springframework.org/schema/tx/spring-tx.xsd
http://www.springframework.org/schema/mvc
http://www.springframework.org/schema/mvc/spring-mvc.xsd">
<!--<mvc:default-servlet-handler/>-->
<!-- <mvc:resources mapping="/image/" location="/image/**"></mvc:resources>-->
<!-- <bean class="org.springframework.web.servlet.handler.BeanNameUrlHandlerMapping"></bean>-->
<!-- <bean class="org.springframework.web.servlet.handler.SimpleUrlHandlerMapping">
<property name="mappings">
<props>
<prop key="/h1.do">firstController</prop>
<prop key="/h2.do">firstController</prop>
</props>
</property>
</bean>-->
<bean class="org.springframework.web.servlet.handler.SimpleUrlHandlerMapping">
<property name="urlMap">
<map>
<entry key="/*.do" value="firstController"></entry>
</map>
</property>
</bean>
<bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
<property name="prefix" value="/WEB-INF/jsps/"></property>
<property name="suffix" value=".jsp"></property>
</bean>
<bean id="firstController" class="cn.curry.controller.MyController"></bean>
</beans>
MyController
public class MyController implements Controller {
public ModelAndView handleRequest(HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse) throws Exception {
ModelAndView mav = new ModelAndView();
mav.addObject("msg", "呵呵第一个SpringMVC");
mav.setViewName("index");
return mav;
}
web.xml
<!DOCTYPE web-app PUBLIC
"-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"
"http://java.sun.com/dtd/web-app_2_3.dtd" > <web-app>
<display-name>Archetype Created Web Application</display-name> <servlet>
<servlet-name>springmvc</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>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>springmvc</servlet-name>
<url-pattern>/</url-pattern>
</servlet-mapping> <servlet-mapping>
<servlet-name>default</servlet-name>
<url-pattern>*.jpg</url-pattern>
</servlet-mapping>
<!--欢迎页-->
<welcome-file-list>
<welcome-file>/WEB-INF/jsps/index.jsp</welcome-file>
</welcome-file-list> </web-app>
实例二
applicationContext.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:aop="http://www.springframework.org/schema/aop"
xmlns:p="http://www.springframework.org/schema/p"
xmlns:context="http://www.springframework.org/schema/context"
xmlns:tx="http://www.springframework.org/schema/tx"
xmlns:mvc="http://www.springframework.org/schema/mvc"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans.xsd
http://www.springframework.org/schema/aop
http://www.springframework.org/schema/aop/spring-aop.xsd
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context.xsd
http://www.springframework.org/schema/tx
http://www.springframework.org/schema/tx/spring-tx.xsd
http://www.springframework.org/schema/mvc
http://www.springframework.org/schema/mvc/spring-mvc.xsd">
<!--<mvc:default-servlet-handler/>-->
<!--<mvc:resources mapping="/image/" location="/image/**"></mvc:resources>-->
<!--<bean class="org.springframework.web.servlet.handler.BeanNameUrlHandlerMapping"></bean>-->
<!--<bean class="org.springframework.web.servlet.handler.SimpleUrlHandlerMapping">
<property name="mappings">
<props>
<prop key="/my.do">firstController</prop>
</props>
</property>
</bean>-->
<bean class="org.springframework.web.servlet.handler.SimpleUrlHandlerMapping">
<property name="urlMap">
<map>
<entry key="/*.do" value="firstController"></entry>
</map>
</property>
</bean>
<bean id="nameResolver" class="org.springframework.web.servlet.mvc.multiaction.PropertiesMethodNameResolver">
<property name="mappings">
<props>
<prop key="/h1.do">doFirst</prop>
<prop key="/h2.do">doSecond</prop>
</props>
</property>
</bean>
<bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
<property name="prefix" value="/WEB-INF/jsps/"></property>
<property name="suffix" value=".jsp"></property>
</bean>
<!-- <bean id="hi.do" class="cn.curry.controller.MyController">
<property name="supportedMethods" value="POST,GET"></property>
</bean>-->
<bean id="firstController" class="cn.curry.controller.MyMultiActionController">
<property name="methodNameResolver" ref="nameResolver"></property>
</bean>
</beans>
MyMultiActionController
package cn.curry.controller; import org.springframework.web.servlet.ModelAndView;
import org.springframework.web.servlet.mvc.multiaction.MultiActionController; import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse; /**
* Created by Curry on 2017/4/10.
*/
public class MyMultiActionController extends MultiActionController {
public ModelAndView doFirst(HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse) throws Exception {
ModelAndView mav = new ModelAndView();
mav.addObject("msg", "呵呵第一个SpringMVC");
mav.setViewName("index");
return mav;
}
public ModelAndView doSecond(HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse) throws Exception {
ModelAndView mav = new ModelAndView();
mav.addObject("msg", "呵呵第二个SpringMVC");
mav.setViewName("index");
return mav;
}
}
实例三
application.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:aop="http://www.springframework.org/schema/aop"
xmlns:p="http://www.springframework.org/schema/p"
xmlns:context="http://www.springframework.org/schema/context"
xmlns:tx="http://www.springframework.org/schema/tx"
xmlns:mvc="http://www.springframework.org/schema/mvc"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans.xsd
http://www.springframework.org/schema/aop
http://www.springframework.org/schema/aop/spring-aop.xsd
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context.xsd
http://www.springframework.org/schema/tx
http://www.springframework.org/schema/tx/spring-tx.xsd
http://www.springframework.org/schema/mvc
http://www.springframework.org/schema/mvc/spring-mvc.xsd">
<!--<mvc:default-servlet-handler/>-->
<!--<mvc:resources mapping="/image/" location="/image/**"></mvc:resources>-->
<!--<bean class="org.springframework.web.servlet.handler.BeanNameUrlHandlerMapping"></bean>-->
<!--<bean class="org.springframework.web.servlet.handler.SimpleUrlHandlerMapping">
<property name="mappings">
<props>
<prop key="/my.do">firstController</prop>
</props>
</property>
</bean>-->
<bean class="org.springframework.web.servlet.handler.SimpleUrlHandlerMapping">
<property name="urlMap">
<map>
<entry key="/*.do" value="firstController"></entry>
</map>
</property>
</bean>
<bean id="nameResolver" class="org.springframework.web.servlet.mvc.multiaction.PropertiesMethodNameResolver">
<property name="mappings">
<props>
<prop key="/h1.do">doFirst</prop>
<prop key="/h2.do">doSecond</prop>
</props>
</property>
</bean>
<!--<bean id="nameResolver" class="org.springframework.web.servlet.mvc.multiaction.ParameterMethodNameResolver">
<property name="paramName" value="actionName"></property>
</bean>-->
<!--<bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
<property name="prefix" value="/WEB-INF/jsps/"></property>
<property name="suffix" value=".jsp"></property>
</bean>-->
<!--<bean class="org.springframework.web.servlet.view.BeanNameViewResolver"/> <bean id="baidu" class="org.springframework.web.servlet.view.RedirectView">
<property name="url" value="http://www.baidu.com"></property>
</bean> <bean id="keke" class="org.springframework.web.servlet.view.JstlView">
<property name="url" value="/WEB-INF/jsps/index.jsp"></property>
</bean>-->
<bean class="org.springframework.web.servlet.view.XmlViewResolver">
<property name="location" value="classpath:myView.xml"></property>
</bean> <bean id="firstController" class="cn.curry.controller.MyMultiActionController">
<property name="methodNameResolver" ref="nameResolver"></property>
</bean>
</beans>
myView.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:aop="http://www.springframework.org/schema/aop"
xmlns:p="http://www.springframework.org/schema/p"
xmlns:context="http://www.springframework.org/schema/context"
xmlns:tx="http://www.springframework.org/schema/tx"
xmlns:mvc="http://www.springframework.org/schema/mvc"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans.xsd
http://www.springframework.org/schema/aop
http://www.springframework.org/schema/aop/spring-aop.xsd
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context.xsd
http://www.springframework.org/schema/tx
http://www.springframework.org/schema/tx/spring-tx.xsd
http://www.springframework.org/schema/mvc
http://www.springframework.org/schema/mvc/spring-mvc.xsd">
<!-- <bean class="org.springframework.web.servlet.view.BeanNameViewResolver"/>--> <bean id="baidu" class="org.springframework.web.servlet.view.RedirectView">
<property name="url" value="http://www.22ddkk.cn"></property>
</bean> <bean id="keke" class="org.springframework.web.servlet.view.JstlView">
<property name="url" value="/WEB-INF/jsps/index.jsp"></property>
</bean>
</beans>
实例四
<?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:aop="http://www.springframework.org/schema/aop"
xmlns:p="http://www.springframework.org/schema/p"
xmlns:context="http://www.springframework.org/schema/context"
xmlns:tx="http://www.springframework.org/schema/tx"
xmlns:mvc="http://www.springframework.org/schema/mvc"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans.xsd
http://www.springframework.org/schema/aop
http://www.springframework.org/schema/aop/spring-aop.xsd
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context.xsd
http://www.springframework.org/schema/tx
http://www.springframework.org/schema/tx/spring-tx.xsd
http://www.springframework.org/schema/mvc
http://www.springframework.org/schema/mvc/spring-mvc.xsd"> <context:component-scan base-package="cn.curry"></context:component-scan>
<!--<mvc:default-servlet-handler/>-->
<!--<mvc:resources mapping="/image/" location="/image/**"></mvc:resources>-->
<!--<bean class="org.springframework.web.servlet.handler.BeanNameUrlHandlerMapping"></bean>-->
<!--<bean class="org.springframework.web.servlet.handler.SimpleUrlHandlerMapping">
<property name="mappings">
<props>
<prop key="/my.do">firstController</prop>
</props>
</property>
</bean>-->
<!-- <bean class="org.springframework.web.servlet.handler.SimpleUrlHandlerMapping">
<property name="urlMap">
<map>
<entry key="/*.do" value="firstController"></entry>
</map>
</property>
</bean>-->
<!-- <bean id="nameResolver" class="org.springframework.web.servlet.mvc.multiaction.PropertiesMethodNameResolver">
<property name="mappings">
<props>
<prop key="/h1.do">doFirst</prop>
<prop key="/h2.do">doSecond</prop>
</props>
</property>
</bean>-->
<!--<bean id="nameResolver" class="org.springframework.web.servlet.mvc.multiaction.ParameterMethodNameResolver">
<property name="paramName" value="actionName"></property>
</bean>-->
<bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
<property name="prefix" value="/WEB-INF/jsps/"></property>
<property name="suffix" value=".jsp"></property>
</bean>
<!--<bean class="org.springframework.web.servlet.view.BeanNameViewResolver"/> <bean id="baidu" class="org.springframework.web.servlet.view.RedirectView">
<property name="url" value="http://www.baidu.com"></property>
</bean> <bean id="keke" class="org.springframework.web.servlet.view.JstlView">
<property name="url" value="/WEB-INF/jsps/index.jsp"></property>
</bean>-->
<!-- <bean class="org.springframework.web.servlet.view.XmlViewResolver">
<property name="location" value="classpath:myView.xml"></property>
</bean>--> <!-- <bean id="firstController" class="MyMultiActionController">
<property name="methodNameResolver" ref="nameResolver"></property>
</bean>-->
</beans>
package cn.curry.entity; /**
* Created by Curry on 2017/4/11.
*/
public class Users {
private Integer uids;
private String uname;
private Adress adress; public Integer getUids() {
return uids;
} public void setUids(Integer uids) {
this.uids = uids;
} public String getUname() {
return uname;
} public void setUname(String uname) {
this.uname = uname;
} public Adress getAdress() {
return adress;
} public void setAdress(Adress adress) {
this.adress = adress;
}
}
package cn.curry.entity; /**
* Created by Curry on 2017/4/11.
*/
public class Adress {
private String adressss; public String getAdressss() {
return adressss;
} public void setAdressss(String adressss) {
this.adressss = adressss;
}
}
package cn.curry.controller; import cn.curry.entity.Users;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RequestParam; /**
* Created by Curry on 2017/4/6.
*/
@Controller
public class MyController {
@RequestMapping(value = "/first",method = RequestMethod.POST)
public String doFirst(Model model, @RequestParam(value="uname",required = false) String uname) {
model.addAttribute("msg","注解SpringMVC111");
System.out.println(uname);
model.addAttribute("uname",uname);
return "index";
}
@RequestMapping("/first2")
public String doSecond(Model model,Users users) {
model.addAttribute("msg","注解SpringMVC222");
System.out.println(users.getUname());
System.out.println(users.getAdress().getAdressss());
model.addAttribute("uname",users.getUname());
model.addAttribute("adressss",users.getAdress().getAdressss());
return "index";
}
@RequestMapping(value = "/{name}/{age}/first",method = RequestMethod.POST)
public String doThree(Model model,@PathVariable("rname") String uname ,@PathVariable String uage) {
model.addAttribute("msg","注解SpringMVC111");
System.out.println(uname);
model.addAttribute("uname",uname);
model.addAttribute("uage",uage);
return "index";
}
}
package cn.curry.controller; import org.springframework.web.servlet.ModelAndView;
import org.springframework.web.servlet.mvc.multiaction.MultiActionController; import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse; /**
* Created by Curry on 2017/4/10.
*/
public class MyMultiActionController extends MultiActionController {
public ModelAndView doFirst(HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse) throws Exception {
ModelAndView mav = new ModelAndView();
//mav.addObject("msg", "呵呵第一个SpringMVC");
mav.setViewName("baidu");
return mav;
}
public ModelAndView doSecond(HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse) throws Exception {
ModelAndView mav = new ModelAndView();
mav.addObject("msg", "呵呵第二个SpringMVC");
mav.setViewName("keke");
System.out.println("hehehehe");
return mav;
}
}
package cn.curry.controller; import cn.curry.entity.Users;
import com.alibaba.fastjson.JSON;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RequestParam; import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.util.HashMap;
import java.util.Map; /**
* Created by Curry on 2017/4/12.
*/
@Controller
public class AjaxCpntroller {
@RequestMapping(value = "/first.do")
public void doFirst(HttpServletResponse response) throws Exception {
Map<String,Users> map=new HashMap<String, Users>(); Users u1=new Users();
u1.setUname("开心");
u1.setUids(001);
Users u2=new Users();
u2.setUname("快乐");
u2.setUids(002); map.put("01",u1);
map.put("02",u2); String jsonString = JSON.toJSONString(map);
System.out.println(jsonString);
response.setCharacterEncoding("utf-8");
response.getWriter().write(jsonString);
response.getWriter().close(); }
}
package cn.curry.controller; import cn.curry.entity.Users;
import com.alibaba.fastjson.JSON;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody; import javax.servlet.http.HttpServletResponse;
import java.util.HashMap;
import java.util.Map; /**
* Created by Curry on 2017/4/12.
*/
@Controller
public class AjaxCpntrollerA {
@RequestMapping(value = "/second.do",produces = "text/html;charset=utf-8")
@ResponseBody
public String doFirst(HttpServletResponse response) throws Exception {
Map<String,Users> map=new HashMap<String, Users>(); Users u1=new Users();
u1.setUname("开心");
u1.setUids(001);
Users u2=new Users();
u2.setUname("快乐");
u2.setUids(002); map.put("01",u1);
map.put("02",u2); String jsonString = JSON.toJSONString(map);
response.setCharacterEncoding("utf-8");
return jsonString;
}
}
<%@ page language="java" import="java.util.*" pageEncoding="utf-8" %>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<%@ page isELIgnored="false" %>
<%
String path = request.getContextPath();
String basePath = request.getScheme() + "://" + request.getServerName() + ":" + request.getServerPort() + path + "/";
%>
<html>
<head>
<title>添加</title>
</head>
<body>
<h2>哈哈${msg}</h2>
<h3>${uname} ${adressss}</h3>
<form method="post" action="/first2">
用户名<input name="uname"/>
地址<input name="adress.adressss"/>
<input type="submit" value="提交"/>
</form>
<img src="data:image/asp.jpg"/>
</body>
</html>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<%@ page isELIgnored="false" %>
<%
String path = request.getContextPath();
String basePath = request.getScheme() + "://" + request.getServerName() + ":" + request.getServerPort() + path + "/";
%>
<html>
<head>
<title>ajax</title>
<script type="text/javascript" src="js/jquery-3.1.1.js"></script>
<script type="text/javascript">
$(function(){
$('#btn').click(function () {
$.ajax({
url:"first.do",
type:"post",
success:function(data){
data=eval("("+data+")"); $.each(data,function (i,dom) {
alert(dom.uname+"和"+dom.uids);
var li="<li>"+dom.uname+"</li>";
var li2="<li>"+dom.uids+"</li>";
$("#aa").append(li);
$("#aa").append(li2);
});
}
});
});
});
</script>
</head> <body>
<input type="button" id="btn" value="提交"/>
<ul id="aa"> </ul>
</body>
</html>
springmvc学习经验的更多相关文章
- 从技术小白到收获BAT研发offer,分享我的学习经验和感悟(赠送相关学习资料)
去年秋季参加了校园招聘,有幸拿到了BAT.头条.网易.滴滴.亚马逊.华为等offer,经过研究生两年的学习积累,终于达成了自己的目标,期间也经历了很多,谨以此文,聊表感叹,也会分享很多我的Java学习 ...
- [转]C语言指针学习经验总结浅谈
指针是C语言的难点和重点,但指针也是C语言的灵魂 . 这篇C语言指针学习经验总结主要是我入职以来学习C指针过程中的点滴记录.文档里面就不重复书上说得很清楚的概念性东西,只把一些说得不清楚或理解起来比较 ...
- SpringMVC学习系列-后记 解决GET请求时中文乱码的问题
SpringMVC学习系列-后记 解决GET请求时中文乱码的问题 之前项目中的web.xml中的编码设置: <filter> <filter-name>CharacterEnc ...
- 史上最全的SpringMVC学习笔记
SpringMVC学习笔记---- 一.SpringMVC基础入门,创建一个HelloWorld程序 1.首先,导入SpringMVC需要的jar包. 2.添加Web.xml配置文件中关于Spring ...
- SpringMVC学习系列-后记 开启项目的OpenSessionInView
在系列的 SpringMVC学习系列(12) 完结篇 的示例项目中,由于当时考虑到OpenSessionInView会对性能有一定的影响,所以就没有配置项目的OpenSessionInView.在ma ...
- SpringMVC学习系列-后记 结合SpringMVC和Hibernate-validator,根据后台验证规则自动生成前台的js验证代码
在SpringMVC学习系列(6) 之 数据验证中我们已经学习了如何结合Hibernate-validator进行后台的数据合法性验证,但是通常来说后台验证只是第二道保险,为了更好的用户体验会现在前端 ...
- SpringMvc学习心得(五)控制器产生与构建
SpringMvc学习心得(五)控制器产生与构建 标签: springspring mvc框架 2016-03-22 15:29 140人阅读 评论(0) 收藏 举报 分类: Spring(4) ...
- springmvc学习笔记--REST API的异常处理
前言: 最近使用springmvc写了不少rest api, 觉得真是一个好框架. 之前描述的几篇关于rest api的文章, 其实还是不够完善. 比如当遇到参数缺失, 类型不匹配的情况时, 直接抛出 ...
- springmvc学习笔记---面向移动端支持REST API
前言: springmvc对注解的支持非常灵活和飘逸, 也得web编程少了以往很大一坨配置项. 另一方面移动互联网的到来, 使得REST API变得流行, 甚至成为主流. 因此我们来关注下spring ...
随机推荐
- exosip 和 pjsip 简介
oSIP oSIP的开发开始于2000年7月,第一个版本在2001年5月发 布,到现在已经发展到3.x了.它采用ANSI C编写,而且结 构简单小巧,所以速度特别快,它并不提供高层的SIP会话 控制 ...
- 用python监控您的window服务
原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 .作者信息和本声明.否则将追究法律责任.http://world77.blog.51cto.com/414605/782935 最近比较 ...
- Hibernate 的HQL和sql有什么区别
转自:https://blog.csdn.net/haozhugogo/article/details/54575802sql 面向数据库表查询 hql 面向对象查询 hql : from 后面跟的 ...
- qpython 读入数据问题: EOF error with input / raw_input
直接使用input会报错 EOF error with input / raw_input 原因是在qpy里console mode 命令行模式不是完全和pc上的命令行一致,所以input和raw_i ...
- Key and Certificate Conversion
Key and Certificate Conversion Private keys and certificates can be stored in a variety of formats, ...
- linux消息队列相关操作
/* 发送消息队列 */ #include <stdio.h>#include <stdlib.h>#include <string.h>#include < ...
- ubuntu12.04+virtualbox+winxp的关于摄像头无法使用,声音出不来的问题
前天在ubuntu上安装了个virtualbox的虚拟机.以前在windows下面是用的vmware.结果到了ubuntu下面折腾半天用不了,于是就装了个virtualbox,在virtualbox里 ...
- python3.5 使用tkinter 和requests库实现天气图像化显示
1 """ 该python小例子考察使用了tkinter库,requests库 其中: requests库用来发送网络请求 thkinter用来显示图形化界面 请求的天气 ...
- matlab新手入门(二)(翻译)
矩阵和数组 MATLAB是“矩阵实验室”的缩写.虽然其他编程语言大多数一次使用数字,但MATLAB®主要用于整个矩阵和数组.所有MATLAB变量都是多维数组,无论数据类型如何.矩阵是通常用于线性代数的 ...
- C# ConfigurationManager 类的使用
一.前言 在项目中,我们习惯使用 ConfigurationManager 来读取一些常量.如链接数据库字符串.一些需配置的数据(微信.QQ.支付宝)等的配置.我们需要把这些数据记录在 app.con ...