使用maven搭建springmvc工程
非注解版
前置工作
工具:idea、maven、Tomcat
开始搭建
一、进入idea选择maven工程
创建完成之后添加web模块
这里web一定要发亮才行,这样你的工程才是一个web工程
添加依赖
<dependencies>
<!--单元测试-->
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.11</version>
</dependency>
<!-- Spring MVC 及 Spring系列包 -->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-webmvc</artifactId>
<version>4.3.24.RELEASE</version>
</dependency>
<!--Servlet核心-->
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>javax.servlet-api</artifactId>
<version>4.0.1</version>
</dependency>
<!-- JSTL -->
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>jstl</artifactId>
<version>1.2</version>
</dependency>
</dependencies>
把项目发布到Tomcat上
一、点击edit configurations
二、点击+号
三、选择Tomcat server 选择本地 local
配置web.xml
当然,还是servlet和servlet-mapping
<?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_4_0.xsd"
version="4.0">
<servlet>
<servlet-name>springmvc</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<init-param>
<param-name>contextConfigLocation</param-name>
<param-value>classpath:springmvc-servlet.xml</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>springmvc</servlet-name>
<url-pattern>/</url-pattern>
</servlet-mapping>
</web-app>
因为上图初始化那里要引用classpath:springmvc-servlet.xml,于是乎要在对应模块下创建这个xml
springmvc-servlet.xml
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
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.xsd">
<bean class="org.springframework.web.servlet.handler.BeanNameUrlHandlerMapping"></bean>
<bean class="org.springframework.web.servlet.mvc.SimpleControllerHandlerAdapter"></bean>
<bean class="org.springframework.web.servlet.view.InternalResourceViewResolver" id="internalResourceViewResolver">
<property name="prefix" value="/WEB-INF/jsp/"></property>
<property name="suffix" value=".jsp"></property>
</bean>
<bean id="/hello" class="com.leo.controller.HelloController"></bean>
</beans>
其实想想没什么好说的,路径映射、适配器还有一个视图解析器
BeanNameUrlHandlerMapping、SimpleControllerHandlerAdapter、InternalResourceViewResolver
最后的那个bean是将自己的类交给SpringIOC容器,注册bean
在项目里建包,写测试代码
package com.leo.controller;
import org.springframework.web.servlet.ModelAndView;
import org.springframework.web.servlet.mvc.Controller;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
/**
* @description:
* @author: Leo
* @createDate: 2020/2/7
* @version: 1.0
*/
public class HelloController implements Controller
{
public ModelAndView handleRequest(HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse) throws Exception
{
//ModelAndView 模型和视图
ModelAndView mv = new ModelAndView();
//封装对象,放在ModelAndView中。Model
mv.addObject("msg","HelloSpringMVC!");
//封装要跳转的视图,放在ModelAndView中
mv.setViewName("hello"); //: /WEB-INF/jsp/hello.jsp
return mv;
}
}
二、创建jsp
代码十分简单
<%--
Created by IntelliJ IDEA.
User: Administrator
Date: 2020/2/7
Time: 0:55
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>
${msg}
</body>
</html>
只是用来接收传来的msg
好了,接下来我要开始说我这当中遇到的无数的坑
一、Error:java: Compilation failed: internal java compiler error
网上说这个是工程与模块jdk不一致的问题,我根据网上的帖子一查,果然jdk版本有问题
进入setting
来源:https://blog.csdn.net/linzhiqiang0316/article/details/80946737
友情提醒一下:我自己在调试的时候,发现更改之后,我项目的jdk啊或者是其他什么的,总会被还原成默认,不知道是不是我的项目是多模块的问题,头大!
二、idea的工程没有添加lib包
在以前用eclipse的时候,创建web工程是带lib包的,而idea在创建的时候是没有的,所以需要手动创建
点击
选择artifacts,在web-inf下创建lib,这个lib要和classes同级
点击这个+号,选择library files,把里面所有的包全部添加进去
三、控制台中文乱码问题
选择help,选择edit custom vm options
添加
-Dfile.encoding=utf-8
就可以了
最终展示结果
怎么样各位,学完是不是觉得,还是springboot香呀。