Getting Started with Spring MVC demo

 

(1) New Spring projects

 

 


 

 

(2) adding the desired jar package

The spring 5 + 2:

  • spring-core.jar
  • spring.beans.jar
  • spring-context.jar
  • spring-expression.jar
  • spring-aop.jar  

 

  • spring-web.jar
  • spring-webmvc.jar

(2 jar package which is of spring mvc)

 

 

The two web applications:

  • servlet.jar
  • jsp.jar

The name of this 2 pack of sorts, in short, is a servlet, jsp a.

Can go to the lib tomcat copy, you can also download Java EE archive.

 

 

You can add packages Project Structure, the problem in this way is prone to incomplete copy lib during deployment,

Reference solution: https://www.cnblogs.com/chy18883701161/p/12240317.html

 

Can also be in the WEB-INF lib create a new folder, put the jar package copied to this folder, then right-click on lib -> Add as Library.

web application lib to be built in the WEB-INF, only built in the WEB-INF, the deployment will be copied.

 

 


 

 

New Entity Class User (3) New Package com.chy, model, packets

package com.chy.model;

public class User {
    private String username;
    private String password;

    public String getUsername() {
        return username;
    }

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

    public String getPassword() {
        return password;
    }

    public void setPassword(String password) {
        this.password = password;
    }
}

 

 


 

 

(4)新建包com.chy.controller,包下新建类UserController,只需实现Controller接口

package com.chy.controller;

import com.chy.model.User;
import org.springframework.web.servlet.ModelAndView;
import org.springframework.web.servlet.mvc.Controller;

public class UserController implements Controller {
    @Override
    public ModelAndView handleRequest(javax.servlet.http.HttpServletRequest httpServletRequest, javax.servlet.http.HttpServletResponse httpServletResponse) throws Exception {
        //视图可以在构造器中指定,也可以先使用空参构造器,在调用setter方法设置
        ModelAndView mav = new ModelAndView("/WEB-INF/jsp/user_info.jsp");

        User user = new User();
        user.setUsername("chy");
        user.setPassword("abcd");

        //向视图传递数据
        mav.addObject("user", user);
        
        return mav;
    }
}

 

注意实现的是  org.springframework.web.servlet.mvc.Controller ,不要导错了。

 

 


 

 

(5)WEB-INF下新建文件夹jsp,jsp文件夹下新建文件user_info.jsp

<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
    <title>Title</title>
</head>
<body>
用户名:${user.username} <br />
密码:${user.password}
</body>
</html>

使用controller传过来的数据,实质是通过model的getter方法获取属性值。

 

 


 

 

(6)在src下新建springmvc的配置文件springmvc-config.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 class="org.springframework.web.servlet.mvc.SimpleControllerHandlerAdapter" />

    <!--配置资源视图解析器-->
    <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver" />

    <!--配置要使用的控制器,name的值需要加/ -->
    <bean name="/userController" class="com.chy.controller.UserController" />

</beans>

 

 


 

 

(7)在web.xml中用DispatcherServlet拦截所有HTTP请求

<?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">

    <!--配置DispatcherServlet-->
    <servlet>
        <servlet-name>dispatcherServlet</servlet-name>
        <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
        <!--指定配置文件的位置-->
        <init-param>
            <param-name>contextConfigLocation</param-name>
            <param-value>classpath:springmvc-config.xml</param-value>
        </init-param>
        <!-- 1表示web容器(比如tomcat)启动时就初始化此servlet -->
        <load-on-startup>1</load-on-startup>
    </servlet>

    <!--拦截所有HTTP请求-->
    <servlet-mapping>
        <servlet-name>dispatcherServlet</servlet-name>
        <url-pattern>/</url-pattern>
    </servlet-mapping>
    
</web-app>

 

如果未指定springmvc配置文件的路径,默认会去WEB-INF下找名为DispatcherServlet-servlet.xml的文件,

所以也可以在WEB-INF下新建DispatcherServlet-servlet.xml,在里面写springmvc的配置。

 

如果未指定Servlet的加载时机,会在需要时才加载(初始化)此Servlet。

 

 


 

 

测试

部署项目,访问controller:

http://localhost:8080/springmvc_war_exploded/userController

 

显示:

用户名:chy
密码:abcd

 

 


 

 

视图名的拼接

上面的demo中,我们在controller中写的是完整的视图名:

ModelAndView mav = new ModelAndView("/WEB-INF/jsp/user_info.jsp");

 

每次设置视图名时都写一长串,很麻烦,可以拼接视图名:

ModelAndView mav = new ModelAndView("user_info");
    <!--配置资源视图解析器-->
    <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
        <!--前缀-->
        <property name="prefix" value="/WEB-INF/jsp/" />
        <!--后缀-->
        <property name="suffix" value=".jsp" />
    </bean>

 

Guess you like

Origin www.cnblogs.com/chy18883701161/p/12240795.html