SpringMVC基础框架环境搭建

1.创建gradle-web项目,老哥在这里命名为study-springmvc

 2.build.gradle配置

plugins {
    id 'war'
}

group 'org.springframework.studymvc'
version '1.0.0'

repositories {
    mavenCentral()
}

dependencies {
    testCompile group: 'junit', name: 'junit', version: '4.11'
    compile(project(":spring-beans"))
    compile(project(":spring-core"))
    compile(project(":spring-context"))
    compile(project(":spring-context-support"))
    compile(project(":spring-tx"))
    compile(project(":spring-aop"))
    compile(project(":spring-webmvc"))
    compile(project(":spring-web"))
    compile group: 'taglibs', name: 'standard', version: '1.1.2'
    compile group: 'javax.servlet', name: 'jstl', version: '1.2'
    compile group: 'javax.servlet', name: 'javax.servlet-api', version: '3.1.0'
    compile group: 'asm', name: 'asm', version: '3.3.1'
    runtime group: 'junit', name: 'junit', version: '4.12'
    optional group: 'cglib', name: 'cglib', version: '2.2.2'
}

3.添加applicationContext.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-4.3.xsd">

    <bean id="viewResolver" class="org.springframework.web.servlet.view.InternalResourceViewResolver">
        <property name="prefix" value="/WEB-INF/jsp/"/>
        <property name="suffix" value=".jsp"/>
    </bean>

</beans>

InternalResourceViewResolver是一个辅助的bean,会在ModelAndView返回视图名称前加上prefix指定的资源,在加上suffix指定后缀,比如下面的UserController最后就会找/WEB-INF/jsp/userlist.jsp。 

4.创建视图模型类model-User.java

/**
 * @author 周宁
 * @Date 2019-08-09 9:09
 */
public class User {

    private String username;

    private Integer age;

    public String getUsername() {
        return username;
    }

    public void setUsername(String username) {
        this.username = username;
    }

    public Integer getAge() {
        return age;
    }

    public void setAge(Integer age) {
        this.age = age;
    }
}

5.创建UserController继承自AbstractController

/**
 * @author 周宁
 * @Date 2019-08-09 9:11
 */
public class UserController  extends AbstractController {
    @Override
    protected ModelAndView handleRequestInternal(HttpServletRequest request, HttpServletResponse response) throws Exception {
        List<User> users = new ArrayList<User>();
        User u1 = new User();
        u1.setAge(25);
        u1.setUsername("张帅");
        User u2 = new User();
        u2.setAge(26);
        u2.setUsername("周宁");
        users.add(u1);
        users.add(u2);
        return new ModelAndView("userlist","users",users);
    }
}

 ModelAndView构造函数

/**
	 * Convenient constructor to take a single model object.
	 * @param viewName 要呈现的视图名称,将由DispatcherServlet's ViewResolver解析
	 * @param modelName 传递给视图的模型对象名称,可以通过该名称访问咱们的数据
	 * @param modelObject 传递给视图的模型对象的内容
	 */
	public ModelAndView(String viewName, String modelName, Object modelObject) {
		this.view = viewName;
		addObject(modelName, modelObject);
	}

6.创建applicationContext-web.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-4.3.xsd">

    <bean id="simpleUrlHandlerMapping" class="org.springframework.web.servlet.handler.SimpleUrlHandlerMapping">
        <property name="mappings">
            <props>
                <prop key="/userlist.htm">userController</prop>
            </props>
        </property>
    </bean>

    <bean id="userController" class="org.springframework.studymvc.web.UserController"/>
</beans>

 我们将userController对应的请求地址配置到了该文件中,后面访问http://ip:port/xx/userlist.htm就会找到咱们的UserController的handleRequestInternal方法,执行相关代码逻辑

7.创建userlist.jsp文件;放到/WEB-INF/jsp/文件夹下面

<%@ page language="java" pageEncoding="UTF-8"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<h2>this is a demo page</h2>
<c:forEach items="${users}" var="user">
    <c:out value="${user.username}"/>
    <c:out value="${user.age}"/>
    </br>
</c:forEach>

8.web.xml配置文件如下

<?xml version="1.0" encoding="UTF-8"?>
<web-app version="3.0"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xmlns="http://java.sun.com/xml/ns/javaee"
         xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd">
    <!--使用ContextLoaderListener配置时,需要告诉它Spring配置文件的位置-->
    <listener>
        <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
    </listener>
    <listener>
        <listener-class>org.springframework.studymvc.servlet.UserServletContextListener</listener-class>
    </listener>
    <!--配置spring核心的配置文件谢谢-->
    <context-param>
        <param-name>contextConfigLocation</param-name>
        <param-value>classpath*:**/applicationContext*.xml</param-value>
    </context-param>

    <!--SpringMVC的前端控制器;spring使用该类拦截web请求做处理-->
    <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:**/applicationContext-web.xml</param-value>
        </init-param>
        <load-on-startup>1</load-on-startup>
    </servlet>
    <servlet-mapping>
        <servlet-name>springmvc</servlet-name>
        <url-pattern>*.htm</url-pattern>
    </servlet-mapping>

    <welcome-file-list>
        <welcome-file>/index.jsp</welcome-file>
    </welcome-file-list>
</web-app>

9.配置tomcat

10.启动服务访问地址:http://localhost:8099/mvc/userlist.htm

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值