#SpringMVC#
用来替代servlet
#1#src/resource File XML
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:mvc="http://www.springframework.org/schema/mvc"
xmlns:p="http://www.springframework.org/schema/p"
xmlns:context="http://www.springframework.org/schema/context"
xsi:schemaLocation="
http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans.xsd
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context.xsd
http://www.springframework.org/schema/mvc
http://www.springframework.org/schema/mvc/spring-mvc.xsd">
<!-- mvc配置文件-->
<!-- 开启扫描 -->
<context:component-scan base-package="com.beiwo.contorller"></context:component-scan>
<mvc:annotation-driven />
<!-- 视图的相应
将来我们只需要去书写跳转的路径 index
/WEB-INF/jsp/index.jsp
-->
<!-- 接收的请求 -->
<bean name="/index.html" class="Dao.indexcontorller"></bean>
<bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
<property name="prefix" value="/WEB-INF/jsp/"></property>
<property name="suffix" value=".jsp"></property>
</bean>
</beans>
#2#Dao
//标注这个类成为接受的请求的控制器
@Controller
@RequestMapping("/user")//相当于文件夹
public class indexcontorller{
private Logger logger=Logger.getLogger(indexcontorller.class);
(如果是继承extends AbstractController则实现该方法,不继承则一般使用注解)
【// @Override
// protected ModelAndView handleRequestInternal(HttpServletRequest arg0, HttpServletResponse arg1) throws Exception {
// // TODO Auto-generated method stub
// System.out.println("springmvc");
// return new ModelAndView("index");
// }
// @RequestMapping("/index")
// public ModelAndView index(){
//
// return new ModelAndView("index");
// }
】
/* @RequestMapping("/index.html")
public ModelAndView index(){
System.out.println("使用注解的方式来实现接受请求");
return new ModelAndView("index");
}*/
/* @RequestMapping(value="/index.html",method=RequestMethod.POST)
public String index(@RequestParam(value="name",required=false) String name){
System.out.println("使用注解的方式来实现接受请求");
System.out.println("name是:"+name);
return "index";
}*/
/* @RequestMapping(value="/index.html",method=RequestMethod.GET)
public String index2(@RequestParam(value="name",required=false) String name){
System.out.println("使用注解的方式来实现接受请求");
System.out.println("name是:"+name);
return "index";
}*/
@RequestMapping(value="/index2.html",params="name")
public String index2(String name){
System.out.println("使用注解的方式来实现接受请求");
System.out.println("name是:"+name);
return "index";
}
//接下来把请求发送到页面当中
//传递参数
//String 返回的jsp的地址
@RequestMapping(value="/index3.html")
public ModelAndView index3(String name){
//先创建返回的对象
ModelAndView model=new ModelAndView();
//将name获取出来 之后传入model
model.addObject("user", name);
//设置返回的视图名称
model.setViewName("index");
return model;
}
@RequestMapping("/index4")
public String index4(String name,Model model){
//model.addAttribute("user", name);
model.addAttribute(name);
model.addAttribute("user", new User("张三", 18));
return "index";
}
@RequestMapping("/index5")
public String index5(String name,Map<String, Object>model){
//model.addAttribute("user", name);
//model.addAttribute(name);
//model.addAttribute("user", new User("张三", 18));
model.put("user", name);
return "index";
}
}
#3#web xml
<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:File.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>
#jsp#
<body>
<h1>springmvc返回的数据--->${user }</h1>
<%-- <h1>springmvc返回的数据--->${string }</h1>
<h1>springmvc返回的对象数据--->${user.name }</h1> --%>
</body>
#复习#
刚开始学习了MyBatis框架,后面又学习了spring,学习了这两个框架究竟有什么作用?
1、学习spring---不需要去new对象了,可以直接使用注解注入,默认的就是单例模式----分为懒汉模式和恶汉模式,之后如果我们的项目当中有需要进行事务管理,那么我们也可以使用spring的事务管理。如果需要某些方法的增强,也是使用aop
2、学习MyBatis---是一个半自动化的rom,可以帮助我们自动的将结果封装到对象当中,并且可以非常简单的使用一些增删改查的方法。如果遇到复杂的sql情况,也可以比较方便的进行内容的修改。比如一对一和一对多
3、回顾之前的mvc的模式---
原有的使用servlet的方式---一个请求需要一个servlet,不好管理,并且传递存储的内容都比较麻烦
4、SSM是分别针对某些层来解决问题的