艋佰傧 发表于 昨天 12:02

SpringMVC学习笔记

SpringMVC

1. 初识SrpingMVC

ssm:spring+springmvc+mybatis        MVC三层架构
Spring:IOC 和 AOP
SpringMVC:SpringMVC的执行流程!
MVC:模型(dao,service),视图(jsp),控制器(Servlet)

[*]pojo:实体类,如User
[*]vo:视图层的对象实体类,如UserVo
[*]dto:数据传输的时候的对象实体类,如UserDto
SpringMVC特点:

[*]轻量级,简单易学
[*]高效,基于请求响应的MVC框架
[*]与Spring兼容性好,无缝结合
[*]约定优于配置
[*]功能强大:RESTful,数据验证,格式化,本地化,主题等
[*]简洁灵活
Spring的web框架围绕DispatcherServlet设计。DispatcherServlet的作用是将请求分发到不同的处理器。从Spring2.5开始,使用java5或以上版本的用户可以采用注解的controller声明方式
快速入门:

[*]在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:springmvc-servlet.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>
[*]新建一个配置文件spring-mvc.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:context="http://www.springframework.org/schema/context"
       xmlns:aop="http://www.springframework.org/schema/aop"
       xsi:schemaLocation="http://www.springframework.org/schema/beans
      https://www.springframework.org/schema/beans/spring-beans.xsd
      http://www.springframework.org/schema/aop
      https://www.springframework.org/schema/aop/spring-aop.xsd">

   
    <bean />
   
   
    <bean />
   
       
    <beanid="InternalResourceViewResolver">
      
      <property name="prefix" value="/WEB-INF/jsp/"/>
      
      <property name="suffix" value=".jsp"/>
    </bean>
</beans>
[*]写一个Controller类
public class HelloController implements Controller {
    public ModelAndView handleRequest(HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse) throws Exception {
      //ModelAndView 模型和视图
      ModelAndView mv = new ModelAndView();
      
      // 封装对象,放在ModelAndView中
      mv.addObject("msg","HelloSpringMVC!");
      
      // 封装要跳转的视图,放在ModelAndView中
      mv.setViewName("hello");
      return mv;
    }
}
[*]编辑配置文件spring-mvc.xml,将Controller类放入IOC中

[*]编写jsp页面
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
    <title>Title</title>
</head>
<body>
    ${pageContext.request.getAttribute("msg")}
</body>
</html>
可能遇到的问题:访问出现404,排查步骤:

[*]查看控制台输出,看一下是不是缺少了什么jar包
[*]如果jar包存在,显示无法输出,就在IDEA项目结构中,添加lib依赖

[*]重启tomcat,即可解决
2. SpringMVC执行原理



实际开发中,我们不会这么去做,我们一般通过注解来实现!!
3. 使用注解实现SpringMVC


[*]在web.xml配置
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_4_0.xsd"
         version="4.0">

    <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:springmvc.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>
</web-app>
[*]在springmvc.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:context="http://www.springframework.org/schema/context"
       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/context
   http://www.springframework.org/schema/context/spring-context.xsd
   http://www.springframework.org/schema/mvc
   https://www.springframework.org/schema/mvc/spring-mvc.xsd">

   
    <context:component-scan base-package="cn.codewei.controller"/>
   
    <mvc:default-servlet-handler/>

   
    <mvc:annotation-driven/>

   
    <bean >
      
      <property name="prefix" value="/WEB-INF/jsp/"/>
      
      <property name="suffix" value=".jsp"/>
    </bean>

</beans>在视图解析器中我们把所有视图都存放在/WEB-INF/目录下,这样可以保证视图安全,因为这个目录下的文件,客户端不能直接访问
[*]编写一个Controller类
@Controller//代表这个类会被springIOC托管,被这个注解的类中的所有方法,如果返回值是String,并且由具体的页面可以跳转,那么就会被视图解析器解析
@RequestMapping("/hello")
public class HelloController{

    @RequestMapping("/controllerhello")
    public String Controllerhello(Model model){
      // 封装数据
      model.addAttribute("msg","HelloSrpingMVC!");
      return "hello"; // 被视图解析器处理
    }
}
SpringMVC必须配置的三大件:
处理器映射器,处理器适配器,视图解析器
实现接口Controller定义控制器是较老的办法
缺点是:一个控制器只有一个方法,如果要多个方法则需要定义多个Controller
@Component                组件
@Service                serivce层
@Controller                controller层
@Repository                dao层4. RestFul风格

RestFul就是一个资源定位及资源操作的风格,不是标准也不是协议,只是一种风格
使用RestFul操作资源:可以通过不同的请求方式来实现不同的效果!
如下:请求地址一样,但是功能可能不同
http://127.0.0.1/item/1                查询,GET
http://127.0.0.1/item                        新增,POST
http://127.0.0.1/item                        更新,PUT
http://127.0.0.1/item/1                删除,DELETE
原来的:http://localhost:8080/add?a=2&b=3

RestFul:http://http
来源:程序园用户自行投稿发布,如果侵权,请联系站长删除
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!
页: [1]
查看完整版本: SpringMVC学习笔记