IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> Java知识库 -> 【SpringMVC】第一课 SpringMVC框架环境搭建以及使用 -> 正文阅读

[Java知识库]【SpringMVC】第一课 SpringMVC框架环境搭建以及使用

概念

Spring MVC属于SpringFrameWork的后续产品,已经融合在Spring Web Flow里面。Spring 框架提供了构建?Web?应用程序的全功能 MVC 模块。使用 Spring 可插入的 MVC 架构,从而在使用Spring进行WEB开发时,可以选择使用Spring的Spring MVC框架或集成其他MVC开发框架,如Struts1(现在一般不用),Struts 2(一般老项目使用)等等。

通过策略接口,Spring 框架是高度可配置的,而且包含多种视图技术,例如?JavaServer Pages(JSP)技术、VelocityTilesiText和POI。Spring MVC 框架并不知道使用的视图,所以不会强迫开发者只使用 JSP 技术。Spring MVC 分离了控制器、模型对象、过滤器以及处理程序对象的角色,这种分离让它们更容易进行定制。

Lifecycle for overriding binding, validation, etc,易于同其它View框架(Tiles等)无缝集成,采用IOC便于测试。

它是一个典型的教科书式的mvc构架,而不像struts等都是变种或者不是完全基于mvc系统的框架,对于初学者或者想了解mvc的人来说我觉得 spring是最好的,它的实现就是教科书!第二它和tapestry一样是一个纯正的servlet系统,这也是它和tapestry相比 struts所具有的优势。而且框架本身有代码,看起来容易理解。

MVC已经是现代Web开发中的一个很重要的部分,下面介绍一下Spring MVC的一些使用心得。

之前的项目比较简单,多是用JSP 、Servlet + JDBC 直接搞定,在项目中尝试用 Struts(Struts MVC)+Spring+Hibernate, 严格按照分层概念驱动项目开发,因项目需求一直不断变化,功能不断扩充、增强,技术构建也几经改变到有个稳定的应用,体会了很多感受,这次先对 Spring MVC 层进行一些个人总结。

项目环境的搭建以及访问流程

创建项目,在WEB-INF文件夹下新建lib文件夹,将jar包导入,并关联至项目

在项目中创建resources文件夹,将springMVC.xml文件导入其中,并转换成资源文件夹。

接在在项目的web.xml文件中配置一下代码,注册DispatcherServlet类,当浏览器访问服务器的时候,使用DispatcherServlet类设置的虚拟地址拦截监听所有访问请求地址。当DispatcherServlet类被访问后,通过生命周期的执行,首先创建对象,再执行init方法,加载init-param静态参数,执行springMVC.xml文件。

<?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用于拦截浏览器访问的所有地址-->
    <!--第一部分是serlvet的注册-->
    <servlet>
        <servlet-name>springmvc</servlet-name>
        <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
        <!--设置只要浏览器访问该servlet,该servlet开始转向Springmvc主配置文件-->
        <init-param>
            <param-name>contextConfigLocation</param-name>
            <param-value>classpath:springMVC.xml</param-value>
        </init-param>
    </servlet>
    <!--第二部分是为该servlet设置虚拟地址-->
    <servlet-mapping>
        <servlet-name>springmvc</servlet-name>
        <!--表示当浏览器需要访问该服务器的时候,让当前serlvet拦截所有地址-->
        <url-pattern>/</url-pattern>
    </servlet-mapping>
</web-app>

?接着我们在src文件夹中创建com.springmvc.controller包,新建MyController类继承至AbstractController抽象类,实现未实现的抽象方法

package com.springmvc.controller;

import org.springframework.web.servlet.ModelAndView;
import org.springframework.web.servlet.mvc.AbstractController;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

/**
 * 控制层,用于替代Servlet
 */
public class MyController extends AbstractController {
    @Override
    protected ModelAndView handleRequestInternal(HttpServletRequest request, HttpServletResponse response) throws Exception {
        //获得请求
        System.out.println("控制层获得浏览器的访问请求");
        //请求转发
        //request.setAttribute("name","张三");
        //request.getRequestDispatcher("index.jsp").forward(request,response);
        //重定向
        request.getSession().setAttribute("name","李四");
        response.sendRedirect("index.jsp");
        return null;
    }
}

接着将该类的对象创建在springMVC.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:mvc="http://www.springframework.org/schema/mvc"
    xmlns:p="http://www.springframework.org/schema/p"
    xmlns:context="http://www.springframework.org/schema/context"
    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">

     <!--MyController controller=new MyController()-->
     <bean name="/aaa" class="com.springmvc.controller.MyController"></bean>

 
 </beans>

通过name属性设置浏览器的访问地址,进行匹配,如果匹配正确,则开始执行MyController类,在MyController类的方法中,通过使用request或者response对象进行请求转发或者重定向的方式跳转页面至jsp页面,并且可以携带参数数据跳转,这里面的知识点是Jsp和Servlet的内容,本文中不再重复的赘述。

整个项目的访问流程如图所示:

总结

SpringMVC框架是Spring框架的一部分,因此读者发现该框架的用基本都是Spring框架的jar包,但该框架中封装了jsp和servlet的技术,该框架基本的作用是在MVC三层架构中用于操作在controller控制层中的?,运行项目的同时需要配置tomcat服务器才能启动服务器,使用浏览器地址进行访问。

  Java知识库 最新文章
计算距离春节还有多长时间
系统开发系列 之WebService(spring框架+ma
springBoot+Cache(自定义有效时间配置)
SpringBoot整合mybatis实现增删改查、分页查
spring教程
SpringBoot+Vue实现美食交流网站的设计与实
虚拟机内存结构以及虚拟机中销毁和新建对象
SpringMVC---原理
小李同学: Java如何按多个字段分组
打印票据--java
上一篇文章      下一篇文章      查看所有文章
加:2022-04-09 18:09:53  更:2022-04-09 18:12:41 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/24 5:41:40-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码