热门关键字:
jquery > jquery教程 > java > SpringMVC入门

SpringMVC入门

315
作者:管理员
发布时间:2020/5/11 17:05:14
评论数:0
转载请自觉注明原文:http://www.jq-school.com/Show.aspx?id=1609

一、SpringMVC

1、什么是MVC

(1)M 指的是 模型(Model)
  模型实质指的就是数据,即对数据的操作,也即对dao、bean等的相关操作。
(2)V 指的是 视图(View)
  视图的作用就是显示模型中的数据,即数据的显示,也即jsp,html等相关操作。
(3)C 指的是 控制器(Controller)
  控制器(Controller)的作用就是将不同的模型数据(Model)显示在不同的视图(View)上。
  比如Servlet,用户请求会经过servlet(Controller),经过数据处理(Model),返回到jsp等页面(View)。

2、什么是SpringMVC

(1)SpringMVC是Spring框架的一个模块,是基于mvc的webframework模块。
(2)用于替代servlet(处理请求、响应请求,获取表单参数,表单校验等),且支持REST形式的URL请求。
(3)Spring MVC采用了松散耦合的可插拔组件结构,通过使用一套注解,使一个Java类成为前端控制器(Controller),不需要实现任何接口。


二、SpringMVC使用入门

1、使用步骤

  引入相关jar包或添加相关依赖信息。
step1:配置前端控制器(DispatcherServlet)
  作用:用于接收请求、响应请求,即相当于一个中央转发器。
step2:配置前端处理器映射器(HandlerMapping)
  作用:用于根据 url 查找 Handler(Controller)。
step3:配置前端处理器适配器(HandlerAdapter)
  作用:按照指定的规则去执行 Handler。
step4:配置视图解析器(ViewResolver)
  作用:根据逻辑视图解析成真正的视图 View。
step5:编写视图 View
  作用:展现给前台的页面,html,jsp等。
step6:编写业务代码 Controller、Service、Dao
  作用:编写业务逻辑处理代码。

2、SpringMVC工作流程

step1:浏览器发送一个HTTP请求。
step2:请求进入前端控制器 DispatcherServlet。
step3:DispatcherServlet 调用映射器 HandlerMapping 查找相应的 Handler,DispatcherServlet 调用适配器HandlerAdapter 去执行 Handler。
step4:Controller 调用相关处理后,将结果返回给 视图解析器 ViewResolver。
step5:ViewResolver 定位到 相对应的 视图 View(比如 html,jsp等),返回响应结果给浏览器。

3、使用idea编写HelloWorld(两种创建方式)

(1)新建一个springmvc项目(电脑可以联网时)。
  step1:File --> New --> Project...

SpringMVC入门

 

 

 

  step2:选择Spring -->  Spring MVC(会自动勾选Web Application)。

SpringMVC入门

 

 

 

  step3:填写项目名。

SpringMVC入门

 

 

 

  step4:等待联网下载。(此处耐心等待即可,切记不要乱点,要不然后面可能会出现一系列恶心的情况,比如404问题等)

SpringMVC入门

 

 

 

  step5:项目目录结构如下图:

SpringMVC入门

 

 

 SpringMVC入门

 

 

 


step6:配置tomcat。选择Local,并添加本地的tomcat。

SpringMVC入门

 

 

输入项目名(可选操作),以及Deployment。

SpringMVC入门

 

 

选择Artifact。

SpringMVC入门

 

 

点击“+”号,选择项目(war包)。可以根据需要选择是否填写项目名。

SpringMVC入门

 

 

  step7:写一个index.jsp页面,测试tomcat是否成功。

【index.jsp】 <%@ page contentType="text/html;charset=UTF-8" language="java" %> <html> <head> <title>首页</title> </head> <body> 服务正常启动 </body> </html>

 

  step8:启动tomcat(一般会自动跳转到画面,如下画面,即可成功)。

SpringMVC入门

 

 

  step9:配置前端映射器(DispatcherServlet)

【默认的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"> <context-param> <param-name>contextConfigLocation</param-name> <param-value>/WEB-INF/applicationContext.xml</param-value> </context-param> <listener> <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class> </listener> <servlet> <servlet-name>dispatcher</servlet-name> <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class> <load-on-startup>1</load-on-startup> </servlet> <servlet-mapping> <servlet-name>dispatcher</servlet-name> <url-pattern>*.form</url-pattern> </servlet-mapping> </web-app> 【可以自定义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>dispatcher</servlet-name> <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class> <init-param> <param-name>contextConfigLocation</param-name> <param-value>classpath:dispatcher-servlet.xml</param-value> </init-param> <load-on-startup>1</load-on-startup> </servlet> <servlet-mapping> <servlet-name>dispatcher</servlet-name> <url-pattern>/</url-pattern> </servlet-mapping> </web-app>

 

  step10:配置(dispatcher-servlet.xml),在类路径下。
    普通工程在 src目录下,maven工程在resources路径下。

【dispatcher-servlet.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
       http://www.springframework.org/schema/mvc/spring-mvc.xsd"> <!-- 开启自动扫描包 --> <context:component-scan base-package="com.lyh.controller"/> <!--配置<mvc:default-servlet-handler />后,会在Spring MVC上下文中定义一个org.springframework.web.servlet.resource.DefaultServletHttpRequestHandler,
    它会像一个检查员,对进入DispatcherServlet的URL进行筛查,如果发现是静态资源的请求,就将该请求转由Web应用服务器默认的Servlet处理,如果不是静态资源的请求,才由DispatcherServlet继续处理。--> <mvc:default-servlet-handler/> <!-- 配置注解的处理器映射器和处理器适配器(简化配置)--> <mvc:annotation-driven /> <!-- 配置视图解析器 --> <bean id="defaultViewResolver" class="org.springframework.web.servlet.view.InternalResourceViewResolver"> <property name="prefix" value="/WEB-INF/"/><!--设置JSP文件的目录位置--> <property name="suffix" value=".jsp"/> </bean> </beans> 【配置注解的处理器映射器和处理器适配器(方式一:)】 <!-- 配置注解的处理器映射器和处理器适配器(简化配置) --> <mvc:annotation-driven /> 【配置注解的处理器映射器和处理器适配器(方式二:)】 <!-- 注解的处理器适配器 --> <!-- <bean class="org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter"/> --> <!-- 注解的处理器映射器 --> <!-- <bean class="org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerMapping"/> --> 【注:】 <mvc:default-servlet-handler/> <mvc:annotation-driven /> 只存在<mvc:default-servlet-handler/>时,可能会提示404错误,添加<mvc:annotation-driven />即可。
(1)当两个标签均存在时,<mvc:annotation-driven /> 提供了 RequestMappingHandlerAdapter,可以用于处理 @RequestMapping注解。
(2)只存在<mvc:default-servlet-handler/>时,不能处理@RequestMapping注解。
(3)都不存在时,框架默认提供 AnnotationMethodHandlerAdapter, 用于处理 @RequestMapping注解。

 

  step11:编写controller

package com.lyh.controller; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.RequestMapping;

@Controller public class HelloController {

  @RequestMapping("/hello") public String show(){ return "hello";
  }
}

 

  step12:编写hello.jsp

<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
  <head>
    <title>hello</title>
  </head>
  <body>
    <h1>helloworld</h1>
  </body>
</html>

 

  step13:重启服务,输入:http://localhost:8080/hello,会跳转到以下页面,至此,helloworld结束。

SpringMVC入门

 

 

 

(2)新建一个Web工程(电脑不能联网时):
  若电脑不能联网,可以直接建立一个web工程,然后手动导入相关jar包。
  step1:新建一个web工程。
    File --> New --> Project...

SpringMVC入门

 

 

  step2:java -->  Web  application

SpringMVC入门

 

 

  step3:输入项目名

SpringMVC入门

 

 

项目目录结构如下:

SpringMVC入门

 

 

step4:导入jar包。
  File --> Project Structure

SpringMVC入门

 

 

选择JARs or directories...

SpringMVC入门

 

 

选择jar包。

SpringMVC入门

 

 

注:此处的jar包,理论上不需要这么多,之前栽过坑(少导了几个jar包,导致一直提示404错误,以防万一,都给导了)。

SpringMVC入门

 

 

  step5:创建WEB-INF目录与web.xml文件。

SpringMVC入门

 

 

可以看到 <servlet-name>dispatcher</servlet-name> 出错。此处可能是由于web.xml文件未配置。
  File --> Project Structure ,配置 web.xml 路径。

SpringMVC入门

 

 

SpringMVC入门

 

 

SpringMVC入门

 

 

其余操作,类似于第一种方式,此处不再赘述。





如果您觉得本文的内容对您的学习有所帮助:支付鼓励



关键字:SpringMVC
友荐云推荐