首页 > 其他分享 >springmvc框架1:第一个spring mvc项目

springmvc框架1:第一个spring mvc项目

时间:2022-09-05 23:00:23浏览次数:76  
标签:springmvc spring list springframework mvc User org import public

SpringMVC简介:

Spring MVc是基于Spring框架的基础上采用了Web MVC设计模式的一个轻量级web框架,也是目前最为流行的一个Web框架。Spring MVc框架具有如下一些特点:

1.拥有强大的灵活性,非侵入性和可配置性。

⒉提供了一个前端控制器DispatcherServlet,开发者无需额外开发控制器对象。

3.分工明确,包括控制器、验证器、命令对象、模型对象、处理程序映射视图解析器,每一个功能实现由一个专门的对象负责完成。

4.可以自动绑定用户输入,并正确的转换数据类型。比如,Spring MVc能自动解析字符串,并将其设置为模型的int或者float类型的属性。

 解释:

可配置性:也像spring一样,通过配置完成相关功能;

无需额外开发控制器:以前需要自己写servlet接收和处理前端的请求。自己只需要写一些不共性的东西即可。

将其设置为模型的int或者float类型:把页面的字符串,自动转换成int或float等。

 新建模块springMVC1

 

 

 

 说明:目录结构如上所示,实现的先后顺序如下:

1)  pom.xml   添加依赖库

2)   web.xml   配置dispatcherServlet和Springmvc-config.xml、要处理的路径配置,一般用*.do即可。

3)   index.jsp   显示用户信息

4)   User.java  

5)   UserDaoImp   访问数据库,这里模拟两个用户数据

6)   UserService   提供查看用户的方法

7)   UserController  配置路由和调用相应的方法

8)    Springmvc-config.xml  开启注解扫描

 pom.xml  

添加依赖库

<dependency>
    <groupId>org.springframework</groupId>
    <artifactId>spring-context</artifactId>
    <version>5.3.20</version>
  </dependency>

  <!--添加springmvc库-->
  <dependency>
    <groupId>org.springframework</groupId>
    <artifactId>spring-webmvc</artifactId>
    <version>5.3.20</version>
  </dependency>

  <!--添加jsp库-->
  <dependency>
    <groupId>javax.servlet.jsp</groupId>
    <artifactId>jsp-api</artifactId>
    <version>2.2</version>
  </dependency>

  <!--添加jstl标签库-->
  <dependency>
    <groupId>jstl</groupId>
    <artifactId>jstl</artifactId>
    <version>1.2</version>
  </dependency>

  <dependency>
    <groupId>junit</groupId>
    <artifactId>junit</artifactId>
    <version>4.13</version>
  </dependency>
</dependencies>

 web.xml  

配置dispatcherServlet和Springmvc-config.xml、要处理的路径配置,一般用*.do即可。

<?xml version="1.0" encoding="UTF-8"?>

<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xmlns="http://java.sun.com/xml/ns/j2ee"
         xmlns:web="http://xmlns.jcp.org/xml/ns/javaee"
         xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee
         http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd
         http://java.sun.com/xml/ns/j2ee
         http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd" id="WebApp_ID" version="2.4">
  <display-name>Spring Web MVC Hello World Application</display-name>

  <servlet>
    <!-- 配置SpringMVC的前端控制器DispatcherServlet,dispatcherServlet -->
    <servlet-name>dispatcherServlet</servlet-name>
    <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
    <!-- 配置项目初始化时需要加载的配置文件为类根路径下的springmvc-config.xml文件 -->
    <init-param>
      <param-name>contextConfigLocation</param-name>
      <param-value>classpath:springmvc-config.xml</param-value>
    </init-param>
    <!-- 表示容器在启动时立即加载本Servlet -->
    <load-on-startup>1</load-on-startup>
  </servlet>
  <servlet-mapping>
    <servlet-name>dispatcherServlet</servlet-name>
    <url-pattern>*.do</url-pattern>
  </servlet-mapping>
  <!-- 系统默认欢迎页面 -->
  <welcome-file-list>
    <welcome-file>index.jsp</welcome-file>
  </welcome-file-list>
</web-app>

 index.jsp  

显示用户信息

<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
<html>
<body>
    <h2>用户展示</h2>
    <table border="1">
        <tr>
            <th>id</th><th>姓名</th>
        </tr>
        <c:forEach items="${list}" var="l">
            <tr>
                <td>${l.id}</td>
                <td>${l.name}</td>
            </tr>
        </c:forEach>
    </table>
</body>
</html>

 User

package com.scitc.domain;

public class User {
    private String id;
    private String name;
    public String getId() {
        return id;
    }
    public void setId(String id) {
        this.id = id;
    }
    public String getName() {
        return name;
    }
    public void setName(String name) {
        this.name = name;
    }
    @Override
    public String toString() {
        return "User{" +
                "id='" + id + '\'' +
                ", name='" + name + '\'' +
                '}';
    }
}

 UserDaoImp  

访问数据库,这里模拟两个用户数据

package com.scitc.dao;

import com.scitc.domain.User;
import org.springframework.stereotype.Repository;

import java.util.ArrayList;
import java.util.List;

@Repository  //通过注解注入该bean
public class UserDaoImp {
    public List<User> findAll() {
        //模拟数据库操作获取用户信息列表数据赋值给list,并返回list结果集
        List<User> list = new ArrayList<User>();
        User user = new User();
        user.setId("1001");
        user.setName("张三");
        list.add(user);

        User user1 = new User();
        user1.setId("1002");
        user1.setName("李四");
        list.add(user1);

        return list;
    }
}

 UserService  

提供查看用户的方法

package com.scitc.service;

import com.scitc.dao.UserDaoImp;
import com.scitc.domain.User;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.List;

@Service
public class UserService {
    @Autowired
    public UserDaoImp userDao;
    public List<User> findAll() {
        List<User> list=userDao.findAll();
        return list;
    }
}

 UserController 

配置路由和调用相应的方法

package com.scitc.controller;
import com.scitc.domain.User;
import com.scitc.service.UserService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.servlet.ModelAndView;
import java.util.List;

@Controller
@RequestMapping("/user")
public class UserController {
    @Autowired
    private UserService userService;
    @RequestMapping("/test.do")
    public void print(){
        System.out.println("1111");
    }
    @RequestMapping("/findAll.do")
    public ModelAndView userList(){
        List<User> list = userService.findAll();
        //创建模块视图对象,方法1:
//        Map<String,Object> model = new HashMap<String,Object>();
//        model.put("list",list);
//        ModelAndView modelAndView = new ModelAndView("/WEB-INF/views/userList.jsp",model);
        //方法2
        ModelAndView modelAndView = new ModelAndView();
        modelAndView.setViewName("/index.jsp");
        modelAndView.addObject("list",list);
        return modelAndView;
    }
}

 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"
       xmlns:context="http://www.springframework.org/schema/context"
       xmlns:mvc="http://www.springframework.org/schema/mvc"
       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
       http://www.springframework.org/schema/mvc
       http://www.springframework.org/schema/mvc/spring-mvc.xsd">

    <!--使用组件扫描的方式,方法1:分开写-->
    <context:component-scan base-package="com.scitc.controller"/>
    <context:component-scan base-package="com.scitc.service"/>
    <context:component-scan base-package="com.scitc.dao"/>
    <!--使用组件扫描的方式,方法2:写一个基包也可以-->
<!--    <context:component-scan base-package="com.scitc"/>-->
    <!-- 使用注解驱动SpringMVC。annotation-driven会自动注册RequestMappingHandlerMapping、RequestMappingHandlerAdapter与ExceptionHandlerExceptionResolver三个bean。在Spring3.2以后,RequestMappingHandlerAdapter完全可以代替AnnotationMethodHandlerAdapter-->
    <mvc:annotation-driven />
</beans>

 tomcat服务器配置

本教程用的tomcat9

第1步:请自行到官网下载

 

 

 下载,解压缩,然后再环境变量path中加入tomcat的根目录即可。

 第2步:idea配置tomcat和添加项目。具体请参照网络资源。

 运行tomcat

运行成功后,在浏览器输入

http://localhost:8080/springmvc/user/findAll.do

即可查看到用户信息显示在index.jsp页面上

  

注意:

tomcat9的解析方式,在控制器中的路径,最后一个一定带do的,在请求的时候把.do也加上才能访问到。Tomcat8可能在控制器中不需要带,访问带do有可能访问到,没测试。

标签:springmvc,spring,list,springframework,mvc,User,org,import,public
From: https://www.cnblogs.com/hemomo/p/16659944.html

相关文章

  • 关于SpringMVC出现class path resource [SpringMVC.xml] cannot be opened because it
     ......
  • 面试突击80:说一下 Spring 中 Bean 的生命周期?
    Java中的公共类称之为Bean或JavaBean,而Spring中的Bean指的是将对象的生命周期,交个SpringIoC容器来管理的对象。所以Spring中的Bean对象在使用时,无需通过n......
  • 2022-09-03 第二小组 张晟源(JAVAWebMVC)
    JAVAWeb一,MVC架构是一种软件架构模式,把整个软件分为三层:Model,view,controllerModel:模型---获取数据,并处理,返回给controller  entity:数据库实体类User---user表 ......
  • 九、Spring Boot 静态资源访问配置
    使用场景:有一些文件需要让用户直接访问的静态资源,例如导入excel的模板或者小的图标当我们使用SpringMVC框架时,静态资源会被拦截,需要添加额外配置,springboot是帮我们处理......
  • 八、Spring Boot 实现一个自定义start
    http://springboot.javaboy.org/2019/0520/springboot-starterstarter的作用用来做依赖导入、自动配置Starter的核心就是条件注解@Conditional当classpath下存在......
  • Spring Boot集成Dubbo
    SpringBoot集成Dubbo分布式框架项目结构接口工程:存放实体bean和业务接口服务提供者:业务接口的实现类并将服务暴露且注册到注册中心,调用数据持久层添加依赖(dubbo、注册......
  • 八、Spring Boot 中自定义 SpringMVC 配置
    转发:https://www.javaboy.org/2019/0816/spring-boot-springmvc.html先说结论,使用Java8的,自定义配置使用实现WebMvcConfigurer接口,Java8之前使用WebMvcConfigurerAdapte......
  • 【博学谷学习记录】超强总结,用心分享|狂野架构师SpringCloud-Gateway
    目录SpringCloudGateway的工作流程Gateway动态路由配置中基于Path的路由方式过滤器分类常见默认过滤器添加响应头前缀处理增加前缀自定义过滤器1、实现GatewayFilter接口2......
  • (Spring)文件上传和下载
    文件上传的时候,浏览器将图片以MultipartFile的形式传到服务器,服务器将保存完的图片名响应给浏览器。文件下载的时候,浏览器收到图片名,再向服务器请求图片资源,服务器以流的......
  • IIS 部署ASPNET MVC5项目问题
    如题,部署ASPNETMVC5项目到IIS上的时候遇到一个奇葩的问题,首先项目代码本身应该是没问题的,因为我已经部署成功到一台服务器了,这一台是新的服务器,然后遇到了这个问题。在部......