SpringMVC
当需要学习一个新的MVC框架,需要从以下方面入手
1,环境的搭建(实现helloworld)
2,如何传递参数到Controller
3,如何凑够控制器获取参数
4,如何完成文件的上传
5,如何完成验证
6,异常的处理
7,深入学习一些原理和源代码的学习
环境的搭建
创建一个web工程,然后再导入jar包,接着在web.xml文件中配置servlet-name
<servlet>
<servlet-name>hello</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>hello</servlet-name>
<servlet-url>/</servlet-url>
</servlet-mapping>
在WEB-INF下面创建一个hello-servlet.xml文件
<?xml version="1.0" encoding="utf-8" ?>
<beans>
<mvc:annotation-driven/>
<context:component-scan base-package="cn.edu.zttc.controller"></context:component-scan>
<!-- 配置逻辑视图 -->
<bean class="org.springframework.web.servlet.view.InternalResourceViewResolver" >
<property name="viewClass" value="org.springframework.web.servlet.view.JstlView" />
<property name="prefix" value="/WEB-INF/jsp/"></property>
<property name="suffix" value=".jsp"></property>
</bean>
创建一个控制器
package cn.edu.zttc.controller
@Controller
public class HelloController{
@requestMapping(value={“/”,”/hello”})
public String hello(){
}
}
二,SpringMVC值得传递
@RequestMapping(value={"/","/hello"})
//意思就是说在访问这个控制器的方法的时候就要传递这个userId
//http://localhost:8080/hello?userId=12
public String hello(@RequestParam("userId" int id)){
System.out.println("hello");
return "hello";
}
//这个时候就可以通过id为参数,来访问这个方法
public String hello(@ReuqestParam int id){
System.out.println(id);
}
SpringMVC如何向页面传递参数 -- Map
public Sting hello(@ResquestParam int id,Map<Stirng,Object>map){
map.put("hello","world");
return "hello";
}
${hello}
第二种方式来传递参数到页面 – Model
@RequestMapping(value="/say")
public String say(Model model){
model.addAttribute("hello","world");
//使用Object类型作为key,String---> string ${string} -> ok
model.addAttribute("ok");
return "hello";
}
补充:
@RequestParam的意思就是你访问这个方法一定要在url前面传递参数
http://localhost:8080 /say?id=34
@RequestMapping("/req")
public String req(HttpServletRequest req){
System.out.println(req.getParameter("username"));
}
架构风格与基于网络的软件架构设计
博士论文
作者:Roy Thomas Fielding博士
3,Rest
访问webservice,相对于SOAP
以资源为导向,以uri传递资源信息
http://localhost:8080/user/user_show.action?id=1
http://localhost:8080/user/1212
Get Post Put Delete
rest要求get来数据的请求,
rest是无状态,没有session
验证
JSR303