栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

从零开始学习springmvc——一、创建工程

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

从零开始学习springmvc——一、创建工程

gitee地址:spring start
所有代码都会在上面开源

一、创建spring-mvc工程 1、IDEA创建maven项目 1、创建maven工程

选择new->project

选择maven项目创建

设定本项目的group信息

设置maven的setting文件和local repository,一般没有特殊设定保持默认即可

生成的工程目录如下所示,但是还缺少java、resources目录

手动添加java、resource目录

此时由于我们是用maven生成的web项目,webapp/WEB_INF/web.xml配置文件为默认的需要修改为我们当前tomcat容器的环境web.xml,本人用的是tomcat7.0.108版本。首先删除web.xml文件

从tomcat的示例工程中找一份web.xml进行适配,这里推荐ROOT app下的配置(apache-tomcat-7.0.108webappsROOTWEB-INFweb.xml文件)。

此时一个web工程创建完成

2、在IDEA中配置tomcat容器启动

点击Add Configurations或者Run->Add Configurations

配置本地tomcat的目录,配置浏览器,添加tomcat的deployment部署包(如果没有tomcat,建议现在官网同版本tomcat)

点击Run测试会出现index.jsp的内容,默认是Hello World!

3、解决tomcat控制台输出乱码问题

将tomcat目录下的conflogging.properties中的UTF-8改为GBK编码格式

()

()

自此我们的一个web工程算是搭建好了,但是者仅仅是一个“空壳”,后面我们会注入”灵魂“(引入spring)

2、引入Spring-webmvc 5.3.4

我们是一个Springmvc项目,自然需要引入核心的Spring包依赖和相关依赖,后续需要用到哪个包我们再逐一引入。对于spring的相关知识这里不做进一步解释。

这里我们引入spring-webmvc 5.3.4版本


    5.3.4

            
    
        org.springframework
        spring-webmvc
        ${spring.version}
    

推荐IDEA的插件maven helper,可以很好的帮助我们解决依赖关系与冲突。通过maven hepler我们可以看到spring-webmvc自动引入了spring的一些依赖

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-FMoSxfJd-1636294912542)(https://gitee.com/zjurenjie/spring-start/raw/master/spring-mvc-start-wiki/figs/2.2.png)]

3、搭建MVC项目

上一步中我们已经把tomcat和spring引入到了工程中,但是二者还没有建立联系。我们知道tomcat是一个servlet容器,mvc是一个框架,也是要基于servlet,所以要把mvc加载到tomcat中。这里介绍一下MVC架构中的各个角色:

1、前端控制器DispatcherServlet

tomcat需要一个servlet,而spring提供了DispatcherServlet,用于处理所有request请求。所以在web.xml中创建DispatcherServlet

  • web.xml


    
        dispatcherServlet
        org.springframework.web.servlet.DispatcherServlet
        
            contextConfigLocation
            classpath:application.xml
        
        1
    
    
        dispatcherServlet
        /*
    

因为加载的是application.xml,所以在resources下创建application.xml,作为spring的bean配置文件,并开启包扫描。

我们简单介绍一下WEB.xml中的内容:

servlet:Servlet其实就是一个遵循Servlet开发的java类。Servlet是由服务器调用的**,**运行在服务器端。我们编写java程序想要在网上实现 聊天、发帖、这样一些的交互功能,普通的java技术是非常难完成的。sun公司就提供了Servlet这种技术供我们使用。所有我们页面实现的功能都是基于Servlet的。

servlet-mapping: 每一个servlet都需要有一个servlet-mapping与之对应,并用url-pattern指定满足条件的url会被此servlet处理

contextConfigLocation: DispatcherServlet初始化值,此值可以配置为spring的配置文件,会将spring的配置生效。

load-on-startup:标记容器是否在启动的时候就加载这个servlet,值必须是一个整数,表示servlet应该被载入的顺序,当值为0或者大于0时,表示容器在应用启动时就加载并初始化这个servlet, 当值小于0或者没有指定时,则表示容器应该在servlet被选择(客户首次访问时)才去加载;正数值越小表示该servlet优先级越高,启动时就越先被加载;值相同时,容器自己选择顺序来加载。

  • application.xml

    
    
    
        
    	
    
    

    context:component-scan:配置spring,开启包扫描,被@Component、@Controller、@Service、@Repository标注的类都会交由Spring托管一个Bean。后面三个注解分别对应Controller层、Service层和Dao层(持久化层),不过本质上与@Component没有什么区别。

mvc:annotation-driven:配置MVC,开启MVC相关能力。具体来说就是会自动注册RequestMappingHandlerMapping与RequestMappingHandlerAdapter两个Bean,让我们可以聚焦于Controller的实现。

2、创建Controller

从上图中我们可以看到有了Servlet之后,我们还需要HandlerMapping、HandlerAdapter、Handler处理器(Controller)。而SpringMVC会为我们创建默认的HandlerMapping和HandlerAdapter,所以我们只需要关注于Controller的设计,真正的聚焦于业务,不必为搭建框架而苦恼,这也时SpringMVC如此盛行的原因之一。

我们新建一个Package,名字叫做Controller,然后我们将以后所有的Controller放在这里面,并默认以***Controller方式命名。

@Controller
public class HelloController {

    @RequestMapping("/hello")
    public String helloWorld() {
        System.out.println("hello world");
        return "success";
    }
}

RequestMapping:指定URL、请求方法、请求参数和请求头的映射,表示此请求会由此方法来处理。

3、建立请求

上面我们建立了一个/hello的请求处理,现在只需要在主页index.jsp中添加这个请求即可

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


Hello World!
    入门案例
    入门案例



此时我们已经建立了SpringMvc处理流程图中的1~5步,我们此时启动tomcat,将会出现一个链接,点击链接,在控制台可以输出hello world,表示上述过程完成。

4、创建视图层(ModelAndView)

上一步中我们只是完成了请求的处理,但是请求的处理结果并没有反馈给前端页面。相反,我们在前端页面却看到了404的错误。

那我们如何将我们处理结果返回给前端呢,这就时视图层的工作了。视图层会将我们处理的结果以页面的形式展示出来,首先我们引入视图层框架Thymeleaf。

Thymeleaf 是适用于 Web 和独立环境的现代服务器端 Java 模板引擎,能够处理 HTML,XML,Javascript,CSS 甚至纯文本。简而言之就是一个页面显示的引擎。

在pom.xml中引入依赖:


    3.0.12.RELEASE


    
    
        org.thymeleaf
        thymeleaf
        ${thymeleaf.version}
    
    
        org.thymeleaf
        thymeleaf-spring5
        ${thymeleaf.version}
    

在application.xml创建视图解析器和Thymeleaf解析器


    
    
    
    
    



    




    
    

这里ThymeleafViewResolver时视图解析器,SpringResourceTemplateResolver是模板解析器,prefix指定html文件所在路径。

创建success.html文件





    Good Thymes Virtual Grocery
    


    

Success

之后启动工程,单击页面可以看到Success字样,这样我们就正式搭建了一套简单的MVC工程

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/445545.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号