idea创建第一个SpringMVC项目

    xiaoxiao2022-07-07  180

       这几天一直想用idea重新学一下Spring,重温一下Spring的知识,今天我想用idea创建一个SpringMVC项目。

    一,首先新建一个Spring项目,勾选如下

    点击Next

    填写projectname

    之后再点击fineshed。

    二。idea会帮我们创建一个SpringMVC的模板,下面是项目结构

    lib文件夹下是idea自动回我们下载好的jar包

    三。此时我们添加一个tomcat

     

    添加一个tomcat

    之后在Deployment 中添加我们这个项目

    添加完项目是这样

    点击Apply , OK

    四。之后我们可以运行tomcat了

    运行之后,发现起不来,麻蛋,idea的模板原来还起不来,后来查了资料,

    参考这篇博文,找到了解决办法

    http://www.cnblogs.com/wormday/p/8435617.html

    在这篇博文中说我们要看一下Tomcat Localhost Log的日志,我们发现:

    好嘛。ClassNotFoundException ,原来是缺少类,在这篇博文中,他说少配置,idea真操蛋,模板居然都不能用,那我们按照博文中写的配置一下,

     

    按照如上图所示,将相应的配置引入,我是用的是第一种,之后就能正常启动了,我访问index.jsp也没有问题

     

    五。下面我们来写一个Controller,并且来访问一下

    我们在src新建了一个包com.taoj.controller 并且在其下新建了一个类

    package com.taoj.controller; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.RequestMapping; @Controller @RequestMapping("/hi") public class HelloController { @RequestMapping("/say") public String sqyHello(){ return "/WEB-INF/jsp/say.jsp"; // return "say"; } }

    现在我们先写 return "/WEB_INF/jsp/say.jsp";

    此时我们重启项目,访问一下 404

    应该是因为没有say.jsp ,那么我们新建一个say.jsp

    say.jsp内容如下:

    <%-- Created by IntelliJ IDEA. User: Administrator Date: 2019/5/23 Time: 21:31 To change this template use File | Settings | File Templates. --%> <%@ page contentType="text/html;charset=UTF-8" language="java" %> <html> <head> <title>$Title$</title> </head> <body> Sqy Hello World </body> </html>

    现在去访问还是404,

    接下来我们在dispatcher-servlet.xml配置扫描包的语句就好使了

    <!--扫描包--> <context:component-scan base-package="com.taoj.controller" />

    现在我们访问 http://localhost:8080/mvc/hi/say.form

    应该就能正常访问了,那么如果我把Controller中的return 语句写成 return "say";之后呢,访问时行不行,答案是不行,因为我们还没有配ViewResolver

    那么我们来配置一下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>

    现在访问:http://localhost:8080/mvc/hi/say.form

    结果如下:

     

    ------------------------------------------------*******************************------------------------------------------------------------

    ------------------------------------------------*******************************------------------------------------------------------------

    这里我加一个问题,就是我再后来练习这个demo的时候,将上述dispatcher-servlet.xml中 prefix中的值 :

    /WEB-INF/jsp/ 中 前面的 / 忘写了,也就写成了  WEB-INF/jsp/ 调试的时候总是找不到 后面的jsp ,后来才发现是这里少写了一个 / (斜杠) ,以后记住了,原来Spring 这里还没有考虑到这里忘写 / (斜杠)的问题,但是这只是一个Demo,一般情况下都不这么用的,这里记录一下,方便学习。

     

     

     

     

    ------------------------------------------------*******************************------------------------------------------------------------

    ------------------------------------------------*******************************------------------------------------------------------------

     

    六,我再写一个Controller的sayLove方法:

    package com.taoj.controller; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.ResponseBody; @Controller @RequestMapping("/hi") public class HelloController { @RequestMapping("/say") public String sqyHello(){ // return "/WEB-INF/jsp/say.jsp"; return "say"; } @RequestMapping("/love") @ResponseBody public String sayLove(){ return "我爱你火星"; } }

    然后重启项目,访问http://localhost:8080/mvc/hi/love.form,结果如下:

    输出了但是有乱码,乱码的问题我们再说。

    使用idea创建SpringMVC项目就写到这里,方便以后自己回忆,如果有什么不对之处,请指出来,谢谢

     

     

    不积跬步,无以至千里

    不积小流,无以成江海

    最新回复(0)