JavaWeb学习之路——SSM框架之SpringMVC(七)

11 篇文章 0 订阅
8 篇文章 0 订阅

Spring MVC:

简介:SpringMVC是一种基于Java,实现了Web MVC设计模式,请求驱动类型的轻量级Web框架,即使用了MVC架构模式的思想,将Web层进行职责解耦。基于请求驱动指的就是使用请求-响应模型,框架的目的就是帮助我们简化开发,SpringMVC也是要简化我们日常Web开发

1.SpringMVC中重要组件

(1)DispatchServerlet:前端控制器,接受所有请求(如果配置“/”不包括jsp文件)

(2)HandlerMapping:解析请求格式,判断具体执行何种方法

(3)HandlerAdapter:负责调用具体的方法

(4)ViewResovler:视图解析器,解析结果,准备跳转到具体的物理视图

Req->DispatchServerlet->HandlerMapping->HandlerAdapter->Controller->ViewResovler->User

 

2.配置环境

(1)导入架包。大部分跟spring的配置一样,多了springmvc部分

方法一:

(2)配置web.xml文件,因为tomacat不能启用spring的功能,需要用web.xml来使tomacat加载springmvc,在这里面加载pring的配置文件。来将控制权移交给spring。即进入DispatcherServlet前端控制器中,找不到类名是,按F4可立即进入类所在的源码

     若不配置<init-parm>会在/WEB-INF/<servlet-name>-servlet.xml中寻找

<?xml version="1.0" encoding="UTF-8"?>

<web-app version="3.0" xmlns="http://java.sun.com/xml/ns/javaee"

     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"

     xsi:schemaLocation="http://java.sun.com/xml/ns/javaee

http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd">

     

     <servlet>

           <servlet-name>springmvc123</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>springmvc123</servlet-name>

           <url-pattern>/</url-pattern>

     </servlet-mapping>

</web-app>

(3)配置springmvc文件。此时前面已经加载了DispatcherServlet,进入解析器Handlermapping中了,在src下配置spring用到的controller控制器,adapter适配器,以及相应的view视图来跳转

此文件被web.xml中的DispatcherServlet所加载

<?xml version="1.0" encoding="UTF-8"?>

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

    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"

    xsi:schemaLocation="http://www.springframework.org/schema/beanshttp://www.springframework.org/schema/beans/spring-beans-3.0.xsd

http://www.springframework.org/schema/contexthttp://www.springframework.org/schema/context/spring-context-3.0.xsd">

<bean id="demo123" class="com.likui.controller.DemoController"></bean>

<bean id="handlerMapping" class="org.springframework.web.servlet.handler.SimpleUrlHandlerMapping">

<property name="urlMap">

   <map>

      <!-- 解析控制器逻辑名字 -->

      <entry key="demo" value-ref="demo123"></entry>

   </map>

</property>

</bean>

<bean id="handlerAdaper" class="org.springframework.web.servlet.mvc.SimpleControllerHandlerAdapter"></bean>

<bean id="view" class="org.springframework.web.servlet.view.InternalResourceViewResolver">

<!-- 如果不加下面属性,那么需要自己设置视图中的跳转界面语句 -->

  <property name="prefix" value="/"></property>

  <property name="suffix" value=".jsp"></property>

</bean>

</beans>

  

(4)在src下新建controller包,在这里面写控制器执行的动作,下面为控制器执行适配器并用视图实现跳转

package com.likui.controller;

import javax.servlet.http.HttpServletRequest;

import javax.servlet.http.HttpServletResponse;

import org.springframework.web.servlet.ModelAndView;

import org.springframework.web.servlet.mvc.Controller;



public class DemoController implements Controller{

     @Override

     public ModelAndView handleRequest(HttpServletRequest arg0, HttpServletResponse arg1) throws Exception {

           // TODO Auto-generated method stub

           System.out.println("执行springmvc控制器!");

           ModelAndView mav=new ModelAndView("main");

           return mav;

     }

}

(5)新建main.jsp文件,这样就可以用view视图来跳转到他了

<%@ page language="java" contentType="text/html; charset=UTF-8"

    pageEncoding="UTF-8"%>

<!DOCTYPE html>

<html>

<head>

<meta charset="UTF-8">

<title>Insert title here</title>

</head>

<body>

hello!

</body>

</html>

 

(6)执行效果图

右键点击运行在服务器上,在浏览器网址后面输入demo控制器名字,之后就会跳转到main.jsp界面

 

方法二:

3.使用注解方式来配置springmvc.xml文件

(1)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:aop="http://www.springframework.org/schema/aop"

        xmlns:mvc="http://www.springframework.org/schema/mvc"

        xmlns:tx="http://www.springframework.org/schema/tx"

         xmlns:context="http://www.springframework.org/schema/context"  

        xsi:schemaLocation="

http://www.springframework.org/schema/beanshttp://www.springframework.org/schema/beans/spring-beans-3.0.xsd

http://www.springframework.org/schema/aophttp://www.springframework.org/schema/aop/spring-aop-3.0.xsd

http://www.springframework.org/schema/txhttp://www.springframework.org/schema/tx/spring-tx-3.0.xsd

http://www.springframework.org/schema/contexthttp://www.springframework.org/schema/context/spring-context-3.0.xsd

http://www.springframework.org/schema/mvchttp://www.springframework.org/schema/mvc/spring-mvc-3.0.xsd">

<!-- 扫描注解 -->

<context:component-scan base-package="com.likui.controller"></context:component-scan>

<!-- 注解驱动 -->

<mvc:annotation-driven></mvc:annotation-driven>

     <!-- 静态资源 -->

     <mvc:resources location="/js/" mapping="/js/**"></mvc:resources>

     <mvc:resources location="/css/" mapping="/css/**"></mvc:resources>

     <mvc:resources location="/images/" mapping="/images/**"></mvc:resources>

</beans>

 

(2)相应的注解具体使用方法DemoController

package com.likui.controller;

import org.springframework.stereotype.Controller;

import org.springframework.web.bind.annotation.RequestMapping;

@Controller

public class DemoController {

     @RequestMapping("demo")

     public String demo() {

           System.out.println("demo");

           return "main.jsp";

     }

}

 

(3)main.jsp内容

<%@ page language="java" contentType="text/html; charset=UTF-8"

    pageEncoding="UTF-8"%>

<!DOCTYPE html>

<html>

<head>

<meta charset="UTF-8">

<title>Insert title here</title>

</head>

<body>

hello springmvc!

</body>

</html>

(4)执行结果

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值