当前位置: 首页 > wzjs >正文

做学校教务处网站病毒营销案例

做学校教务处网站,病毒营销案例,网站开发遇到的难题,自己做网站能赚钱吗介绍了Spring MVC框架的概念、特征及核心功能,通过案例详细介绍了Spring MVC开发所需要的开发环境以及基本的开发步骤。 一、Spring MVC框架概述 Spring MVC是Spring框架的一个模块,是一个基于Java的实现了MVC设计模式的轻量级Web框架。它通过一套注解和…

        介绍了Spring MVC框架的概念、特征及核心功能,通过案例详细介绍了Spring MVC开发所需要的开发环境以及基本的开发步骤。

一、Spring MVC框架概述

        Spring MVC是Spring框架的一个模块,是一个基于Java的实现了MVC设计模式的轻量级Web框架。它通过一套注解和接口,让简单的Java类成为处理请求的控制器,无需实现任何接口,同时支持REST风格的编程。

1. Spring MVC主要特征

  1. 清晰的职责分离:将控制器、模型对象、分派器以及处理程序对象的角色分开

  2. 灵活配置:支持基于XML和注解的配置方式

  3. 可重用的业务代码:可以使用现有的业务对象作为命令或表单对象

  4. 可定制的绑定和验证:支持类型转换和验证

  5. 强大的视图技术:支持JSP、Velocity、FreeMarker等多种视图技术

  6. REST支持:原生支持REST风格的URL

  7. 国际化支持:内置国际化支持

  8. 主题支持:支持主题和外观的更改

2. MVC 与 Spring MVC

        MVC 是一种广泛适用的设计模式,而 Spring MVC 是该模式在 Java Web 开发中的一种优秀实现。Spring MVC 通过提供丰富的功能和简化的开发方式,使开发者能更高效地构建 Web 应用程序,同时保持了 MVC 模式的核心优势。理解二者的关系有助于在不同场景下做出更合适的技术选择。

2.1 MVC 设计模式

1. 基本概念

MVC(Model-View-Controller)是一种软件架构设计模式,将应用程序分为三个核心组件:

  • Model(模型):处理数据和业务逻辑

  • View(视图):负责数据展示

  • Controller(控制器):处理用户输入,协调模型和视图

2. 典型工作流程

用户请求 → 控制器 → 调用模型 → 返回数据 → 控制器选择视图 → 视图渲染 → 响应给用户

2.2 Spring MVC 框架

1. 基本概念

Spring MVC 是基于 Java 的实现 MVC 设计模式的请求驱动型 Web 框架,属于 Spring Framework 的一部分。

2. 核心组件
组件说明
DispatcherServlet前端控制器,接收所有请求
HandlerMapping请求到处理器的映射
Controller实际处理请求的组件
ModelAndView封装模型和视图信息
ViewResolver视图解析器
3. 请求处理流程

1. 用户发送请求 → DispatcherServlet

2. DispatcherServlet 查询 HandlerMapping → 找到对应 Controller

3. Controller 调用业务逻辑 → 返回 ModelAndView

4. DispatcherServlet 查询 ViewResolver → 解析视图

5. 视图渲染 → 返回响应

3. Spring MVC 工作流程

3.1 Spring MVC 的请求执行顺序

(1)用户向服务端发送一次请求,在满足 web.xml 文件中前端控制器的匹配规则的前提下,这个请求在 Tomcat 的解析下,会先到前端控制器 DispatcherServlet(也叫中央控制器)。如我们发出*.action 的请求,则只对以“.action”结尾的请求路径进行处理。某些访问 JSP 的页面请求则不会被框架拦截处理。

(2)DispatcherServlet 作为框架的核心,通过处理器映射器(框架提供 SimpleUrlHandlerMapping 类,也可能是其他的映射器类),从映射文件中根据请求路径找到对应的处理器类,并得到该类的实例对象。

(3)DispatcherServlet 通过处理器适配器(框架提供的一个类),对处理类的实例对象进行适配器处理以及参数绑定,并将请求转移到处理类中进行业务处理。

(4)处理类通过实现框架提供的 Controller 接口,最终完成适配功能。并在这里完成具体的业务逻辑功能,将数据和视图信息封装到 ModelAndView 对象中,并返回给 DispatcherServlet 处理。

(5)DispatcherServlet 获取从处理器返回的 ModelAndView 对象后,交给视图解析器(框架中提供的功能类)解析,并显示在相应的视图中。

3.2 Spring MVC 框架的核心接口

(1)前端控制器(DispatcherServlet):它也称为中央控制器,是整个请求响应的控制中心。组件的调用都由它统一调度。配置在 web.xml 文件中,随服务器启动而实例化。

(2)简单处理器映射器(SimpleUrlHandlerMapping):根据用户访问的 URL 映射到对应的后端处理器 Handler,并将该处理器的实例返回给前端控制器。

(3)处理器适配器(HandlerAdapter):常用的有 SimpleControllerHandlerAdapter,该功能组件在框架中默认运行。它用于封装参数数据,绑定视图等。

(4)视图解析器(ViewResolver):常用的有 InternalResourceViewResolver,在框架中该功能组件默认运行。它用于将 ModelAndView 逻辑视图解析为具体的视图(如 JSP)。

(5)后端处理器(Handler):即由程序员编写的处理类,对用户具体请求进行处理,该类必须实现框架提供的 Controller 接口,才能作为处理器完成组件功能。

(6)处理器中使用的类(ModelAndView):用于封装数据和视图信息,并返回给前端控制器。该类实现了对原生 Servlet 中 Request 对象的封装,因此可以作为域对象封装数据,并在视图中用 EL 表达式取出数据。

二、案例——Spring MVC框架实现模拟登录

案例说明:使用Spring MVC框架进行用户登录验证

1.新建web项目并引入依赖 

在Idea中配置Tomcat并运行第一个servlet程序——初试Jakarta EE项目 https://blog.csdn.net/m0_74808313/article/details/142817862?sharetype=blog&shareId=142817862&sharerefer=APP&sharesource=m0_74808313&sharefrom=link

<dependency><groupId>junit</groupId><artifactId>junit</artifactId><version>3.8.1</version><scope>test</scope></dependency><dependency><groupId>commons-logging</groupId><artifactId>commons-logging</artifactId><version>1.1.3</version></dependency><!--    spring基本依赖--><dependency><groupId>org.springframework</groupId><artifactId>spring-beans</artifactId><version>${spring.version}</version></dependency><dependency><groupId>org.springframework</groupId><artifactId>spring-context</artifactId><version>${spring.version}</version></dependency><dependency><groupId>org.springframework</groupId><artifactId>spring-core</artifactId><version>${spring.version}</version></dependency><dependency><groupId>org.springframework</groupId><artifactId>spring-expression</artifactId><version>${spring.version}</version></dependency><dependency><groupId>org.springframework</groupId><artifactId>spring-aop</artifactId><version>${spring.version}</version></dependency><dependency><groupId>org.springframework</groupId><artifactId>spring-tx</artifactId><version>${spring.version}</version></dependency><dependency><groupId>org.springframework</groupId><artifactId>spring-beans</artifactId><version>${spring.version}</version></dependency><dependency><groupId>org.springframework</groupId><artifactId>spring-web</artifactId><version>${spring.version}</version></dependency><dependency><groupId>org.springframework</groupId><artifactId>spring-webmvc</artifactId><version>${spring.version}</version></dependency><dependency><groupId>org.springframework</groupId><artifactId>spring-jdbc</artifactId><version>${spring.version}</version></dependency><dependency><groupId>javax.servlet</groupId><artifactId>javax.servlet-api</artifactId><version>4.0.1</version><scope>provided</scope></dependency><dependency><groupId>javax.servlet.jsp</groupId><artifactId>javax.servlet.jsp-api</artifactId><version>2.3.1</version></dependency><dependency><groupId>org.apache.maven.plugins</groupId><artifactId>maven-deploy-plugin</artifactId><version>3.0.0</version><type>maven-plugin</type></dependency><dependency><groupId>org.mybatis</groupId><artifactId>mybatis</artifactId><version>3.5.9</version></dependency><dependency><groupId>org.mybatis</groupId><artifactId>mybatis-spring</artifactId><version>2.1.1</version></dependency><dependency><groupId>org.apache.logging.log4j</groupId><artifactId>log4j-core</artifactId><version>2.22.0</version></dependency><dependency><groupId>org.apache.logging.log4j</groupId><artifactId>log4j-api</artifactId><version>2.22.0</version></dependency><dependency><groupId>com.mysql</groupId><artifactId>mysql-connector-j</artifactId><version>8.0.33</version></dependency><dependency><groupId>org.apache.maven.plugins</groupId><artifactId>maven-install-plugin</artifactId><version>3.0.1</version><type>maven-plugin</type></dependency>

2. 配置Spring MVc的前端控制器

        Spring MVC 框架通过前端控制器对符合匹配规则的客户端请求进行统一的拦截处理。这些匹配规则放置在 Spring MVC 的配置文件中,框架通过默认的路径去加载这些文件。

配置文件路径:在 Webapp/WEB-INF/web.xml 中进行配置。

配置内容:由于 Spring MVC 框架的前端控制器是一个 Servlet,该 Servlet 在前面的支持 JAR 包中存在。其配置方式与 Servlet 的配置一致,具体代码如下。

<?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></servlet><servlet-mapping><servlet-name>springmvc</servlet-name><url-pattern>*.action</url-pattern><!--   截所有请求并交由DispatcherServlet处理     -->
<!--        <url-pattern>/</url-pattern>--></servlet-mapping>
</web-app>

3. 配置 Spring MVC 的核心映射文件 springmvc-servlet.xml

文件路径:在 Webapp/WEB-INF 目录下新建 springmvc-servlet.xml。文件名来源于 web.xml 配置的前端控制器的名称与后缀 -servlet,前端控制器在加载过程中会自动在该路径下寻找该映射文件。因此该文件的路径和文件名不能随意更改。如要更改,则需在 web.xml 中配置前端控制器时,修改其默认的映射文件路径和文件名,这里暂时不做讲解。

配置内容如下
(1)xml 文件中的约束
(2)配置访问路径与后台处理器之间的映射。该配置需要框架提供的映射类 SimpleUrlHandlerMapping 来完成请求路径的跳转。

<?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:tx="http://www.springframework.org/schema/tx"xmlns:mvc="http://www.springframework.org/schema/mvc"xsi:schemaLocation="http://www.springframework.org/schema/beanshttp://www.springframework.org/schema/beans/spring-beans.xsdhttp://www.springframework.org/schema/txhttp://www.springframework.org/schema/tx/spring-tx.xsdhttp://www.springframework.org/schema/mvchttp://www.springframework.org/schema/mvc/spring-mvc.xsdhttp://www.springframework.org/schema/contexthttp://www.springframework.org/schema/context/spring-context.xsd"><context:component-scan base-package="org.rainpet"></context:component-scan><context:property-placeholder location="classpath:db.properties"/><bean id="dataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource"><property name="driverClassName" value="${db.driver}"/><property name="url" value="${db.url}"/><property name="username" value="${db.username}"/><property name="password" value="${db.password}"/></bean><bean id="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager"><property name="dataSource" ref="dataSource"/></bean><tx:annotation-driven transaction-manager="transactionManager"/><mvc:annotation-driven/><import resource="classpath:mybatisConfig.xml"/><bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean"><property name="configLocation" value="classpath:mybatisConfig.xml"/><property name="dataSource" ref="dataSource"/><property name="mapperLocations" value="classpath:mapper/*.xml"/><property name="configuration"><bean class="org.apache.ibatis.session.Configuration"><property name="mapUnderscoreToCamelCase" value="true"/></bean></property></bean><bean class="org.mybatis.spring.mapper.MapperScannerConfigurer"><!-- 扫描所有dao接口 --><property name="basePackage" value="org.rainpet.mapper"></property><property name="sqlSessionFactoryBeanName" value="sqlSessionFactory"></property></bean><!-- 配置访问路径与后台处理器之间的映射   --><bean id="loginController" class="org.rainpet.LoginController"></bean><bean class="org.springframework.web.servlet.handler.SimpleUrlHandlerMapping"><property name="mappings"><props><prop key="/login.action">loginController</prop><!--  配置了一个SimpleUrlHandlerMapping,将URL路径/login映射到loginController,用于处理登录请求    -->
<!--                <prop key="/login">loginController</prop>--></props></property></bean>
</beans>

4. 新建登录页面login.jsp和登录成功后的页面success,jsp

文件路径:在 Webapp/ 目录下新建 login.jsp、success,jsp

<%@ page language="java" contentType="text/html; charset=UTF-8"pageEncoding="UTF-8"%>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>登录</title>
</head>
<body><form action="/springMvc01/login.action" method="post">用户名:<input type="text" name="userName"><br>密码:<input type="password" name="password"><br><input type="submit" value="登录"></form>
</body>
</html>
<%@ page language="java" contentType="text/html; charset=UTF-8"pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>登录成功</title>
</head>
<body><h1>登录成功</h1>${userName}
</body>
<%@ page language="java" contentType="text/html; charset=UTF-8"pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>error</title>
</head>
<body><h1>error</h1>${info}
</body>

5. 新建登录处理器LoginController.java

package org.rainpet;import org.springframework.web.servlet.ModelAndView;
import org.springframework.web.servlet.mvc.Controller;import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;public class LoginController implements Controller {@Overridepublic ModelAndView handleRequest(HttpServletRequest request, HttpServletResponse response) throws Exception {String userName = request.getParameter("userName");String password = request.getParameter("password");ModelAndView mav=new ModelAndView();if(password!=null&&password.equals("123456")){mav.addObject("userName","欢迎您:"+userName);mav.setViewName("success.jsp");}else {mav.addObject("info","用户名或密码错误");mav.setViewName("error.jsp");}return mav;}
}

7. 启动TomCat

浏览器地址栏输入http://localhost:8080/springMvc01/login.jsp,到登录界面,实现登录

http://www.dtcms.com/wzjs/87577.html

相关文章:

  • 搜题公众号怎么制作seo工作前景如何
  • wordpress怎么没有导航栏app排名优化
  • 怎样创建个人购物网站google推广妙招
  • 自学网站建设要多久最新军事动态
  • 香港做批发的网站郑州粒米seo顾问
  • 嘉兴网站建设wmcn百度一下app
  • 在线ps网页版网站搜索排名优化怎么做
  • 网站域名查询工具爱链工具
  • 苏州乡村旅游网站建设策划书如何让百度收录自己的网站信息
  • 查询网站所有关键词排名网站优化软件费用
  • 沂seo网站推广做网站哪家好
  • 最好的建设网站优化关键词的方法
  • 直通车关键词优化口诀电商网站seo怎么做
  • 朔州网站建设优化自助网站建设平台
  • 如何跟客户销售做网站seo免费课程视频
  • 移动开发网站开发区别seo软文代写
  • phpwind 做的网站抖音搜索引擎推广
  • 兰溪做网站短视频推广引流
  • 外贸访问国外网站常见的网络营销工具
  • 网站选设计公司在百度做广告多少钱
  • 网站音频播放器代码免费网站java源码大全
  • 大型网站怎么做火爆产品的推广文案
  • wordpress社交登陆插件乐云seo官网
  • 东莞手机网站制作公司四年级说新闻2023
  • 模板企业快速建站新闻摘抄2022最新20篇
  • 做标书有哪些网站能接到湖南疫情最新消息
  • 个人可以做商城网站吗论文收录网站排名
  • 广州做网站的价格换友情链接的网站
  • 合肥市建设工程劳务分包合同备案表在哪个网站下载怎么把自己的网站发布到网上
  • 网络服务类型及其采用的网络协议惠州百度seo在哪