Java三大框架之Spring MVC(第一部分)

JavaSSM之Spring MVC

Spring MVC属于SpringFrameWork的后续产品,已经融合在Spring Web Flow里面。Spring 框架提供了构建 Web 应用程序的全功能 MVC 模块。使用 Spring 可插入的 MVC 架构,从而在使用Spring进行WEB开发时,可以选择使用Spring的Spring MVC框架或集成其他MVC开发框架,如Struts1(现在一般不用),Struts 2(一般老项目使用)等。

Spring 体系

Java三大框架之Spring MVC(第一部分)_第1张图片

Spring MVC工作流程

Java三大框架之Spring MVC(第一部分)_第2张图片
Dispatcher Servlet分发器
Handler Mapping 处理器映射
Controller 控制器
ModelAndView
ViewResolver 视图解析器

第一个Spring MVC 程序

  1. 拷包

Java三大框架之Spring MVC(第一部分)_第3张图片

  1. 在src目录下,创建springmvc.xml

<beans xmlns="http://www.springframework.org/schema/beans"

	xmlns:context="http://www.springframework.org/schema/context" xmlns:p="http://www.springframework.org/schema/p"
	xmlns:aop="http://www.springframework.org/schema/aop" xmlns:tx="http://www.springframework.org/schema/tx"
	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
	xmlns:mvc="http://www.springframework.org/schema/mvc"
	xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-4.2.xsd
	http://www.springframework.org/schema/mvc 
	http://www.springframework.org/schema/mvc/spring-mvc-4.2.xsd 
	http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-4.2.xsd
	http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-4.2.xsd http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-4.2.xsd
	http://www.springframework.org/schema/util http://www.springframework.org/schema/util/spring-util-4.2.xsd">
	
	<context:component-scan base-package="com.java.demo1.controller">context:component-scan>
	
	<mvc:annotation-driven>mvc:annotation-driven>
	
	
	<bean id="" class="org.springframework.web.servlet.view.InternalResourceViewResolver">
		<property name="prefix" value="/pages/">property>
		<property name="suffix" value=".jsp">property>
	bean>
	
beans>
  1. 配置Web.xml
<servlet>
    <servlet-name>actionservlet-name>
    <servlet-class>org.springframework.web.servlet.DispatcherServletservlet-class>
    <init-param>
		<param-name>contextConfigLocationparam-name>
		<param-value>classpath:spring-mvc.xmlparam-value>
	init-param>
	

  servlet>
  <servlet-mapping>
    <servlet-name>actionservlet-name>
    <url-pattern>*.actionurl-pattern>
  servlet-mapping>

注意:有公司配置为:*.do,shtml,/(所有的资源将被拦击,包括图片等)

  1. 第一个控制器
@Controller //普通类被用Controller注释就变成了servlet
public class MyController {
	@RequestMapping(value="/my.action")
	public void test(){
		System.out.println("test");
	}
	
}

介绍@RequestMapping()

Java三大框架之Spring MVC(第一部分)_第4张图片
可以将配置在类上,防止访问路径重名。

@RequestMapping(value="/aa")
public class MyController {
	@RequestMapping(value ="/my.action")
	public void test(){
		System.out.println("test");
	}
}

介绍@Scope注解

  • 单例和多例
  • **控制器如果是单例,当对并发要求多一点时就会影响访问效率,因为只有当一个人用完了控制器,其他人才会使用,建议控制器采用多例
    **
@Controller //普通类被用Controller注释就变成了servlet
@Scope("prototype")
public class MyController {
	@RequestMapping(value ="/my.action",method=RequestMethod.POST)
	public void test(){
		System.out.println("test");
	}
	
	@RequestMapping(value={"/a.action","b.action","c.action"})
	public void test2(){
		System.out.println("test");
	}
	
}

springMVC获取参数信息

  1. 第一种方式:定义参数
  • 控制器
@RequestMapping(value ="/register.action",method=RequestMethod.POST)
	public void register(String username,String password){
		System.out.println(username+","+password);
	}

可以自动转换基础数据类型

  • index.jsp
<form action="register.action" method="post">
		用户名:<input type="text" name="username">
		密码:<input type="password" name="password">
		<input type="submit" value="提交">
	</form>
  • 中文乱码问题
<filter>
  	<filter-name>charfilter-name>
  	<filter-class>org.springframework.web.filter.CharacterEncodingFilterfilter-class>
  	<init-param>
  		<param-name>encodingparam-name>
  		<param-value>utf-8param-value>
  	init-param>
  	
  filter>
  <filter-mapping>
  	<filter-name>charfilter-name>
  	<url-pattern>/*url-pattern>
  filter-mapping>
  1. 第二种:用对象接收
  • 控制器
@RequestMapping(value ="/register1.action",method=RequestMethod.POST)
	public void register1(User user){
		System.out.println(user.getUsername()+","+user.getPassword());
	}

注意:页面中的字段名要和对象的字段同名

  1. 第三种:当参数名和对象名不一致时
    Java三大框架之Spring MVC(第一部分)_第5张图片

springMVC之重定向与转发

Java三大框架之Spring MVC(第一部分)_第6张图片

视图解析器:(视图解析器对重定向无效,只对转发有效)!!!!!

Java三大框架之Spring MVC(第一部分)_第7张图片

Java三大框架之Spring MVC(第一部分)_第8张图片
Java三大框架之Spring MVC(第一部分)_第9张图片

你可能感兴趣的:(框架,Java,Spring,MVC)