教程原地址如下:https://how2j.cn/k/springmvc/springmvc-springmvc/615.html#nowhere
教程使用的开发软件是eclipse,我用的是idea,所以这里记录一下idea的用法。导入包在原教程可以找到
先截一张目录的图吧
新建项目,直接next,下一个不用勾选,next,写好项目名
右键项目add framework support,勾选web application
导入jar包
file>project structure>modules>dependencies加号,add jar or directories,添加好之后OK确认
在WEB-INF目录下创建 web.xml
这一步中配置了Spring MVC的入口 DispatcherServlet,把所有的请求都提交到该Servlet
<?xml version="1.0" encoding="UTF-8"?>
<web-app version="2.4" xmlns="http://java.sun.com/xml/ns/j2ee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee
http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">
<servlet>
<servlet-name>springmvc</servlet-name>
<servlet-class>
org.springframework.web.servlet.DispatcherServlet
</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>springmvc</servlet-name>
<url-pattern>/</url-pattern>
</servlet-mapping>
</web-app>
在WEB-INF目录下创建 springmvc-servlet.xml
这是Spring MVC的 映射配置文件
表示访问路径/index会交给id=indexController的bean处理
id=indexController的bean配置为类:IndexController
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN" "http://www.springframework.org/dtd/spring-beans.dtd">
<beans>
<bean id="simpleUrlHandlerMapping"
class="org.springframework.web.servlet.handler.SimpleUrlHandlerMapping">
<property name="mappings">
<props>
<prop key="/index">indexController</prop>
</props>
</property>
</bean>
<bean id="indexController" class="controller.IndexController"></bean>
</beans>
控制类 IndexController
控制类 IndexController实现接口Controller ,提供方法handleRequest处理请求
SpringMVC通过 ModelAndView 对象把模型和视图结合在一起
package controller;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.springframework.web.servlet.ModelAndView;
import org.springframework.web.servlet.mvc.Controller;
public class IndexController implements Controller {
public ModelAndView handleRequest(HttpServletRequest request, HttpServletResponse response) throws Exception {
ModelAndView mav = new ModelAndView("index.jsp");
mav.addObject("message", "Hello Spring MVC");
return mav;
}
}
在WebContent目录下创建index.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8" isELIgnored="false"%>
<h1>${message}</h1>
add configuration选择tomcat server,提示no artifacts,直接fix
在上面的页面中的deployment界面中的application context决定了你的项目根目录,这里我将其改成了springmvc,所以我之后访问的页面是localhost:8080/springmvc/index
搞定
再顺便说一下配置过程中的坑,刚开始tomcat无法启动,最后发现是tomcat的配置文件里的server.xml里有报错中提到的一个listener,把那一行注释掉之后就能启动tomcat了