Idea 搭建springmvc(小白教程)

是时候总结下了,基础才是精华!

步骤:

  • IDEA新建Spring MVC项目
  • 运行、调试相关配置
  • 配置 component-scan
  • Model 向 View 传值

一 通过IDEA新建Spring MVC项目
在这里插入图片描述
点击next ,输入项目名及保存位置,finish后 IDEA会帮你下载需要的类库
在这里插入图片描述
idea生成的文件如3个xml 和一些jar

现在先了解下这些lib 的jar包吧:(大概搜索总结下)

  • Spring AOP:Spring的面向切面编程,提供AOP(面向切面编程)的实现

  • Spring Aspects:Spring提供的对AspectJ框架的整合 Spring Beans:

  • Spring IOC的基础实现,包含访问配置文件、创建和管理bean等。

  • Spring Context:在基础IOC功能上提供扩展服务,此外还提供许多企业级服务的支持,有邮件服务、任务调度、JNDI定位,EJB集成、远程访问、缓存以及多种视图层框架的支持。

  • Spring Context Support:Spring context的扩展支持,用于MVC方面。

  • Spring Core:Spring的核心工具包

  • Spring expression:Spring表达式语言

  • Spring Instrument:Spring对服务器的代理接口

  • Spring JDBC:对JDBC 的简单封装

  • Spring JMS:为简化jms

  • Spring orm:整合第三方的orm实现,如hibernate,ibatis,jdo以及spring 的jpa实现

  • Spring oxm:Spring对于object/xml映射的支持,可以让JAVA与XML之间来回切换

  • Spring test:对JUNIT等测试框架的简单封装

  • Spring tx:为JDBC、Hibernate、JDO、JPA等提供的一致的声明式和编程式事务管理。
    -Spring web:包含Web应用开发时,用到Spring框架时所需的核心类,包括自动载入WebApplicationContext特性的类、Struts与JSF集成类、文件上传的支持类、Filter类和大量工具辅助类。

  • spring webmvc:包含SpringMVC框架相关的所有类。包含国际化、标签、Theme、视图展现的FreeMarker、JasperReports、
    Tiles、Velocity、XSLT相关类。当然,如果你的应用使用了独立的MVC框架,则无需这个JAR文件里的任何类。

在了解下applicationContext.xml这个xml,它通过xml文件将配置加载到IOC容器中(还有两种是java注解的方式将配置加载到IOC容器和隐式的bean发现机制和自动装配
这里我自己看了下这篇文章
https://blog.csdn.net/u010871004/article/details/53589642

在这里插入图片描述
再看下web.xml(注释自己注释)
在这里插入图片描述
已经配置好了前端控制器(
作用:
拦截匹配的请求,Servlet拦截匹配规则要自己定义,把拦截下来的请求,依据相应的规则分发到目标Controller来处理,是spring MVC的第一步)
二 设置运行、调试相关配置
配置tomcat
在这里插入图片描述
在这里插入图片描述
运行http://localhost:8080/index.jsp 发现不能访问,后台 确是对的
在这里插入图片描述
找到tomcat log日志
在这里插入图片描述
找不到ContextLoaderListener这个类,这个就找了很久。。。。这个是配置在web.xml中,第一件事找包,第二打开Project Structure,跟项目相关配置基本都在个菜单里边
在这里插入图片描述
左下角出现问题,提醒配置有误报错为:
在这里插入图片描述

让程序部署的时候,把Spring MVC相关类库复制到lib文件夹中

在这里插入图片描述
把两个类库 添加进去,然后重新运行,tomcat log 不再报错,访问成功在这里插入图片描述
添加Controller


@Controller
@RequestMapping("/hello")
public class Helloworld
{
    @RequestMapping("/say")
    public String say()
    {
        return "/WEB-INF/jsp/say.jsp";
    }

}

此时地址为http://localhost:8080/hello/say.form 因为:
在web.xml前端控制器是这样的

 <servlet-mapping>
        <servlet-name>dispatcher</servlet-name>
        <url-pattern>*.form</url-pattern>
    </servlet-mapping>

修改为

<servlet-mapping>
        <servlet-name>dispatcher</servlet-name>
        <url-pattern>/</url-pattern>
    </servlet-mapping>

然后继续访问http://localhost:8080/hello/say

并打断点发现,没有进入controller
在这里插入图片描述
为啥呢,因为没修改另外一个配置文件,dispatcher-servlet.xml(前面说DispatcherServlet作用,DispatcherServlet是前端控制器设计模式的实现,提供Spring Web MVC的集中访问点)

三 配置 component-scan(dispatcher-servlet.xml)
告诉Servlet去哪里找到相应的Controller
打开 dispatcher-servlet.xml

在已经存在的中间加上

<context:component-scan base-package=“cn.cj.hello”/>
base-package指定的就是存放Controller的包
并在文件头绑定:
xmlns:context=“http://www.springframework.org/schema/context”

配置 ViewResolver(dispatcher-servlet.xml)

  <!--指定视图解析器-->
    <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
        <!-- 视图的路径 -->
        <property name="prefix" value="/WEB-INF/jsp/"/>
        <!-- 视图名称后缀  -->
        <property name="suffix" value=".jsp"/>
    </bean>

添加视图文件(.jsp)
在这里插入图片描述

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

再次访问http://localhost:8080/hello/say
报错为
在这里插入图片描述
为什么呢? 原来在dispatcher-servlet中xmlns有问题,这bean还是复制吧,下面是修改后的xml

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
       xmlns:context="http://www.springframework.org/schema/context"
       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       xsi:schemaLocation="http://www.springframework.org/schema/beans
            http://www.springframework.org/schema/beans/spring-beans-3.2.xsd
            http://www.springframework.org/schema/context
            http://www.springframework.org/schema/context/spring-context-3.2.xsd
           ">
       <context:component-scan base-package="cn.cj.hello"/>
       <!--指定视图解析器-->
       <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
              <!-- 视图的路径 -->
              <property name="prefix" value="/WEB-INF/jsp/"/>
              <!-- 视图名称后缀  -->
              <property name="suffix" value=".jsp"/>
       </bean>
</beans>

到此运行 http://localhost:8080/hello/say成功
在这里插入图片描述
四 现在通过 Model 向 View 传值
已经完成了MVC中的(V和C),M还写,继续修改

package cn.cj.hello;

import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.RequestMapping;

@Controller
@RequestMapping("/hello")
public class Helloworld
{
    @RequestMapping("/say")
    public String say(Model model)
    {
//        视图对象传值
         model.addAttribute("name","wormday"); // 指定Model的值
          model.addAttribute("url","http://www.cnblogs.com/wormday/p/8435617.html"); // 指定Model的值
        return "say";
    }

}

<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
    <title>Title</title>
</head>
<body>
hello world,${name}
<br/>${url}</body>
</html>

运行后
在这里插入图片描述
最后总结下mvc原理
在这里插入图片描述
感谢小墨的童鞋博主:参考学习的博客https://www.cnblogs.com/wormday/p/8435617.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

健身小白

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值