IntelliJ IDEA中搭建SpringMVC环境

来源:互联网 发布:安卓富文本编辑器源码 编辑:程序博客网 时间:2024/06/03 23:04

  2017年9月开始接触Java Web的学习,被要求使用SpringMVC框架进行开发。由于之前使用过Android Studio进行Android App的开发,实在是太喜欢JetBrains的IDE,所以决定使用IntelliJ IDEA来进行环境的搭建。
  为了搭建环境,翻查过很多博客,看到写法都有写参差不齐,对于一个新手来说可能会很吃力。
  于是在这里对SpringMVC的IntelliJ IDEA环境搭建流程做一个简单记录,此处使用的是2017.2.3版本。
  由于本人是初学者,有写的不对的地方希望可以加以指正,谢谢。
  
这里写图片描述

  点击Create New Project来创建一个新的工程,在配置项中选择Spring MVC就可以了,IntelliJ IDEA会自动下载最新版本的SpringMVC框架所需的包,点击Next之后就是输入工程的名称,这里随便取一个名字叫“testmvc”好了。

这里写图片描述

  工程创建好之后,会看到这样一个目录结构。
  首先第一步,我们需要在“WEB-INF”目录下新建两个Directory,分别命名为“lib”和“classes”,并且把工程根目录下的“lib”文件夹下面的包全部复制到新建的“WEB-INF/lib”下。
  接下来开始对IntelliJ IDEA进行一些设置。
  点击File -> Project Structure,在弹出的窗口左侧选择Project Setting -> Modules,打开对Modules的设置并切换到名为Paths的tab下。选择Use module compile output path,手动将输出路径改为刚才所新建的“classes”文件夹路径。

这里写图片描述

  然后再切换到名为Dependencies的tab下,将新建的“WEB-INF/lib”路径添加进去。

这里写图片描述

这里写图片描述

  下一步,在窗口左侧选择Project Setting -> Artifacts,将输出目录改为“web”文件夹,再右键点击窗口右半侧选择Put into Output Root,将所需的库转移到输出根目录下。

这里写图片描述

  到这里,我们对IntelliJ IDEA的配置就暂时告一段落。接下来我们对SpringMVC的几个文件进行一些修改或编写,来写一个Hello World测试一下配置是否正确。
  首先是web.xml的修改,其实IntelliJ IDEA已经帮我们完善了很多配置工作,在这里只需要将“url-patten”标签下的内容进行修改,具体原因还有待学习,网上对此也有很多说法。这里编写Hello World测试改为“/”就行了。

<url-pattern>/</url-pattern>会匹配到/login这样的路径型url,不会匹配到模式为*.jsp这样的后缀型url
<url-pattern>/*</url-pattern>会匹配所有url,路径型的和后缀型的url(包括/login,.jsp,.js和*.html等)

<?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_3_1.xsd"         version="3.1">    <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>/</url-pattern>    </servlet-mapping></web-app>

  接着我们来配置一下dispatcher-servlet.xml,在此之前先在“src”目录下新建一个包用于存放controller,在“WEB-INF”目录下新建一个目录用于存放view,名称可以任取。

<?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:mvc="http://www.springframework.org/schema/mvc"       xmlns:context="http://www.springframework.org/schema/context"       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">    <!--访问静态资源-->    <mvc:default-servlet-handler/>    <!--开启注解-->    <mvc:annotation-driven/>    <!--spring自动扫描该包下面的controller-->    <context:component-scan base-package="com.oshinoshinobu.controller"/>    <!--视图解析器-->    <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">        <property name="prefix" value="/WEB-INF/jsp/"/>        <property name="suffix" value=".jsp"/>    </bean></beans>

  其中context:component-scan表示spring会到这个包里面去扫描controller。而视图解析器表示会根据注解@RequestMapping的方法返回值,获取一个“prefix + returnVal + suffix”的视图。
  如:返回值为“hello”,则得到“/WEB-INF/jsp/hello.jsp”。
  到这里,配置文件算是解决了,我们来写点代码。
  先修改一下index.jsp的内容,添加一个超链接。

<%@ page contentType="text/html;charset=UTF-8" language="java" %><html><head>    <title>Index</title></head><body><a href="hello">Hello SpringMVC</a></body></html>

  再在“WEB-INF/jsp/”下新建一个jsp文件,这里取名为“hello.jsp”。

<%@ page contentType="text/html;charset=UTF-8" language="java" %><html><head>    <title>Hello</title></head><body>${msg}</body></html>

  视图创建好了,我们还需要一个控制器。
  在“src”路径下自己建立的包里添加一个java文件,来编写controller。

package com.oshinoshinobu.controller;import org.springframework.stereotype.Controller;import org.springframework.ui.ModelMap;import org.springframework.web.bind.annotation.RequestMapping;import org.springframework.web.bind.annotation.RequestMethod;@Controllerpublic class HelloController {    @RequestMapping(value = "/hello", method = RequestMethod.GET)    public String helloWorld(ModelMap modelMap){        modelMap.addAttribute("msg","Hello World!");        return "hello";    }}

  下面我们来运行一下看看效果,点击Run -> Edit Configurations来配置Tomcat。
  新建一个Tomcat的Local Server。

这里写图片描述

  切换到Deployment的tab, 添加一个新的部署。这里建议把Application context修改为项目名称,有助于区分。

这里写图片描述

  Tomcat配置好之后如图所示,很多设置都是默认的不需要修改。

这里写图片描述

  如果是第一次配置,还需要点击Configure来添加Tomcat,选择相应的安装路径即可。

这里写图片描述

  运行一下。

这里写图片描述

这里写图片描述


常见问题

1. 运行报错,找不到mvc:default-servlet-handler声明

  解决办法是将dispatcher-servlet.xml里面的文件头重新添加一下,尤其是xmlns:mvc="http://www.springframework.org/schema/mvc"。建议将这一行删除之后,在变红的mvc字段上使用“Alt+Enter”组合键来添加。

2. 看起来一切都正常,就是404

  解决办法是重新配置一下Project Structure里面的设置,修改输出路径,添加lib,修改输出文件夹,少一步就会404。

3. 修改了配置文件之后,依旧说有错误

  建议是Build -> Rebuild Project,往往可以解决。

原创粉丝点击