社区网站怎么做网站推广好做吗
- 作者: 五速梦信息网
- 时间: 2026年04月20日 09:22
当前位置: 首页 > news >正文
社区网站怎么做,网站推广好做吗,深圳华强北招聘网,徐州哪里做网站目录
一、概述
( 1 ) 是什么
( 2 ) 作用
二、工作流程
( 1 ) 流程
( 2 ) 步骤
三、入门实例
( 1 ) 入门实例
( 2 ) 静态资源处理
给我们带来的收获 一、概述
( 1 ) 是什么 SpringMVC是一个基于Java的Web应用开发框架#xff0c;它是Spring Framework的一部…目录
一、概述
( 1 ) 是什么
( 2 ) 作用
二、工作流程
( 1 ) 流程
( 2 ) 步骤
三、入门实例
( 1 ) 入门实例
( 2 ) 静态资源处理
给我们带来的收获 一、概述
( 1 ) 是什么 SpringMVC是一个基于Java的Web应用开发框架它是Spring Framework的一部分。它提供了一种模型(Model)-视图(View)-控制器(Controller)MVC的架构模式用于构建灵活、可扩展的Web应用程序。SpringMVC通过将应用程序分解为模型数据、视图用户界面和控制器处理请求和响应三个组件实现了松耦合和高度可测试的开发方式。它还提供了许多功能如请求映射、数据绑定、表单处理、验证、国际化等以简化Web开发过程。SpringMVC还支持各种视图技术如JSP、Thymeleaf、Freemarker等使开发人员能够选择适合自己的视图模板。总的来说SpringMVC是一个强大而灵活的框架把复杂的web应用分成逻辑清晰的几部分简化开发减少出错方便组内开发人员之间的配合广泛用于构建Java Web应用程序。 ( 2 ) 作用 SpringMVC具有以下几个主要作用 1. 分离关注点SpringMVC通过将应用程序分解为模型、视图和控制器三个组件实现了关注点的分离。模型负责处理数据视图负责展示用户界面控制器负责处理请求和响应。这种分离使得开发人员可以专注于各自的领域提高了代码的可读性和可维护性。2. 灵活可扩展SpringMVC采用了松耦合的设计使得开发人员可以根据需求选择合适的组件和技术进行开发。它支持各种视图技术如JSP、Thymeleaf、Freemarker等使开发人员能够选择适合自己的视图模板。同时SpringMVC还提供了丰富的功能和特性如拦截器、数据绑定、表单处理、验证、异常处理等以满足不同场景下的需求。3. 易于测试由于SpringMVC采用了MVC架构模式使得应用程序的各个组件可以独立测试。开发人员可以针对模型、视图和控制器编写单元测试验证其功能和逻辑的正确性。这种可测试性有助于提高代码质量和开发效率。4. 提高开发效率SpringMVC提供了一套简洁而强大的API和工具使开发人员能够快速构建Web应用程序。它通过注解和约定大于配置的方式简化了开发过程减少了样板代码的编写。同时SpringMVC还提供了丰富的文档和社区支持使开发人员能够快速解决问题和获取帮助。 总的来说SpringMVC作为一个Web应用开发框架具有分离关注点、灵活可扩展、易于测试和提高开发效率等作用。它帮助开发人员构建高效、易于维护的Web应用程序并提供了丰富的功能和特性以满足不同场景下的需求。 二、工作流程
( 1 ) 流程 当客户端发送请求到SpringMVC应用程序时请求将由前端控制器Front ControllerDispatcherServlet接收。DispatcherServlet是SpringMVC的核心组件负责协调和管理请求的处理流程。 DispatcherServlet根据请求的URL找到对应的处理器HandlerHandler是一个带有注解的方法或类用于处理请求并生成响应。处理器可以根据请求的特征如URL路径、请求方法、请求参数等进行匹配。 在执行处理器之前SpringMVC通过处理器适配器HandlerAdapter对处理器进行封装和适配使其符合统一的处理器接口HandlerInterface。这样就可以支持不同类型的处理器如注解控制器Annotation Controller、Controller接口实现类、REST控制器等。 处理器执行过程中可以通过模型Model对象传递数据模型是一个数据容器用于保存处理结果并传递给视图View。处理器还可以返回一个逻辑视图名告诉DispatcherServlet选择哪个视图来渲染响应。 DispatcherServlet根据逻辑视图名选择合适的视图解析器ViewResolver来解析视图并生成最终的响应。视图解析器负责将逻辑视图名解析为具体的视图如JSP、Thymeleaf模板等。视图负责生成最终的HTML、XML、JSON等响应内容。 最后DispatcherServlet将响应发送给客户端进行展示。整个请求-响应过程通过中央调度器DispatcherServlet进行协调和控制使开发者能够集中精力在业务逻辑的处理上提高开发效率。 SpringMVC还提供了许多功能和特性如拦截器Interceptor用于对请求进行预处理和后处理、数据绑定和类型转换、表单验证、异常处理、RESTful支持等以满足不同场景下的需求。 总结而言SpringMVC是一个基于Java的Web应用开发框架通过MVC架构模式实现了灵活、可扩展的Web应用程序开发。它提供了一套全面的特性和组件使开发人员能够快速构建高效、易于维护的Web应用程序。 ( 2 ) 步骤 当客户端发送请求到SpringMVC应用程序时请求会经过以下详细的流程 1. 客户端发送请求客户端通过浏览器发送HTTP请求其中包含请求的URL、请求方法、请求头、请求参数等信息。 2. 前端控制器接收请求请求到达应用程序后被前端控制器DispatcherServlet接收。DispatcherServlet是一个Servlet是整个SpringMVC应用的入口点。 3. 处理器映射器进行处理器匹配DispatcherServlet通过处理器映射器HandlerMapping来确定请求对应的处理器Handler。处理器映射器根据配置的URL映射规则将请求URL映射到相应的处理器。 4. 处理器适配器处理处理器处理器适配器HandlerAdapter根据处理器的类型调用相应的处理方法。处理器可以是注解控制器如Controller、RequestMapping、实现了Controller接口的类、RESTful控制器等。 5. 处理器执行处理器执行具体的业务逻辑处理请求并生成一个Model模型对象。Model对象可以携带处理结果和数据供视图渲染使用。 6. 处理器拦截器的调用在处理器执行前后可以定义拦截器对请求进行拦截和处理。拦截器可以在请求前进行预处理也可以在请求后进行后处理。拦截器的执行顺序可以通过配置进行控制。 7. 处理器返回视图名或视图对象处理器执行完毕后会返回一个逻辑视图名或直接返回一个具体的视图对象。逻辑视图名是一个表示视图的逻辑名称视图对象则代表具体的视图实现。 8. 视图解析器进行视图解析DispatcherServlet通过视图解析器ViewResolver将逻辑视图名解析为具体的视图实现。视图解析器根据配置的规则来查找对应的视图如JSP、Thymeleaf等。 9. 视图渲染视图负责生成最终的响应内容根据模型数据渲染视图模板并生成最终的HTML、XML、JSON等响应。 10. 视图返回响应渲染完成后视图将生成的响应返回给前端控制器DispatcherServlet。 11. 处理器拦截器的后处理在视图返回响应后可以继续执行拦截器的后处理逻辑。拦截器可以对响应进行进一步的处理如日志记录、跳转等。 12. 响应发送给客户端DispatcherServlet将响应发送给客户端客户端根据响应类型进行展示如在浏览器中渲染HTML页面或解析JSON数据。 整个SpringMVC的工作流程是一个基于Servlet的请求-响应模型通过前端控制器、处理器映射器、处理器适配器、视图解析器和视图等组件的协作实现了灵活、可扩展并且易于开发的Web应用框架。DispatcherServlet充当了中央调度器的角色协调和控制请求的处理流程。通过这种流程SpringMVC实现了松耦合、可扩展和易于测试的Web应用开发。 三、入门实例 这里是根据我博客中的文章进行了一个扩展增加代码 : 认识Mybatis的关联关系映射 ( 1 ) 入门实例 在项目中的pom.xml文件中添加依赖增加后的所有引用配置如下 : ?xml version1.0 encodingUTF-8?project xmlnshttp://maven.apache.org/POM/4.0.0 xmlns:xsihttp://www.w3.org/2001/XMLSchema-instancexsi:schemaLocationhttp://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsdmodelVersion4.0.0/modelVersiongroupIdorg.example/groupIdartifactIdindex/artifactIdversion1.0-SNAPSHOT/versionpackagingwar/packagingnameindex Maven Webapp/name!– FIXME change it to the projects website –urlhttp://www.example.com/urlpropertiesproject.build.sourceEncodingUTF-8/project.build.sourceEncodingmaven.compiler.source1.8/maven.compiler.sourcemaven.compiler.target1.8/maven.compiler.targetmaven.compiler.plugin.version3.7.0/maven.compiler.plugin.version!–添加jar包依赖–!–1.spring 5.0.2.RELEASE相关–spring.version5.0.2.RELEASE/spring.version!–2.mybatis相关–mybatis.version3.4.5/mybatis.version!–mysql–mysql.version5.1.44/mysql.version!–pagehelper分页jar依赖–pagehelper.version5.1.2/pagehelper.version!–mybatis与spring集成jar依赖–mybatis.spring.version1.3.1/mybatis.spring.version!–3.dbcp2连接池相关 druid–commons.dbcp2.version2.1.1/commons.dbcp2.versioncommons.pool2.version2.4.3/commons.pool2.version!–4.log日志相关–log4j2.version2.9.1/log4j2.version!–5.其他–junit.version4.12/junit.versionservlet.version4.0.0/servlet.versionlombok.version1.18.2/lombok.version!– jstlstandard –jstl.version1.2/jstl.versionstandard.version1.1.2/standard.version!– spring –spring.version5.0.2.RELEASE/spring.version/propertiesdependencies!–1.spring相关–dependencygroupIdorg.springframework/groupIdartifactIdspring-context/artifactIdversion\({spring.version}/version/dependencydependencygroupIdorg.springframework/groupIdartifactIdspring-orm/artifactIdversion\){spring.version}/version/dependencydependencygroupIdorg.springframework/groupIdartifactIdspring-tx/artifactIdversion\({spring.version}/version/dependencydependencygroupIdorg.springframework/groupIdartifactIdspring-aspects/artifactIdversion\){spring.version}/version/dependencydependencygroupIdorg.springframework/groupIdartifactIdspring-web/artifactIdversion\({spring.version}/version/dependencydependencygroupIdorg.springframework/groupIdartifactIdspring-test/artifactIdversion\){spring.version}/version/dependency!–2.mybatis相关–dependencygroupIdorg.mybatis/groupIdartifactIdmybatis/artifactIdversion\({mybatis.version}/version/dependency!--mysql--dependencygroupIdmysql/groupIdartifactIdmysql-connector-java/artifactIdversion\){mysql.version}/version/dependency!–pagehelper分页插件jar包依赖–dependencygroupIdcom.github.pagehelper/groupIdartifactIdpagehelper/artifactIdversion\({pagehelper.version}/version/dependency!--mybatis与spring集成jar包依赖--dependencygroupIdorg.mybatis/groupIdartifactIdmybatis-spring/artifactIdversion\){mybatis.spring.version}/version/dependency!–3.dbcp2连接池相关–dependencygroupIdorg.apache.commons/groupIdartifactIdcommons-dbcp2/artifactIdversion\({commons.dbcp2.version}/version/dependencydependencygroupIdorg.apache.commons/groupIdartifactIdcommons-pool2/artifactIdversion\){commons.pool2.version}/version/dependency!–4.log日志相关依赖–!–核心log4j2jar包–dependencygroupIdorg.apache.logging.log4j/groupIdartifactIdlog4j-core/artifactIdversion\({log4j2.version}/version/dependencydependencygroupIdorg.apache.logging.log4j/groupIdartifactIdlog4j-api/artifactIdversion\){log4j2.version}/version/dependency!–web工程需要包含log4j-web非web工程不需要–dependencygroupIdorg.apache.logging.log4j/groupIdartifactIdlog4j-web/artifactIdversion\({log4j2.version}/version/dependency!--5.其他--dependencygroupIdjunit/groupIdartifactIdjunit/artifactIdversion\){junit.version}/version!– scopetest/scope–/dependencydependencygroupIdjavax.servlet/groupIdartifactIdjavax.servlet-api/artifactIdversion\({servlet.version}/versionscopeprovided/scope/dependencydependencygroupIdorg.projectlombok/groupIdartifactIdlombok/artifactIdversion\){lombok.version}/versionscopeprovided/scope/dependency!– spring mvc相关依赖 –dependencygroupIdorg.springframework/groupIdartifactIdspring-webmvc/artifactIdversion\({spring.version}/version/dependencydependencygroupIdjstl/groupIdartifactIdjstl/artifactIdversion\){jstl.version}/version/dependencydependencygroupIdtaglibs/groupIdartifactIdstandard/artifactIdversion\({standard.version}/version/dependency/dependenciesbuildfinalNameindex/finalNameresources!--解决mybatis-generator-maven-plugin运行时没有将XxxMapper.xml文件放入target文件夹的问题--resourcedirectorysrc/main/java/directoryincludesinclude**/*.xml/include/includes/resource!--解决mybatis-generator-maven-plugin运行时没有将jdbc.properites文件放入target文件夹的问题--resourcedirectorysrc/main/resources/directoryincludesincludejdbc.properties/includeinclude*.xml/include/includes/resource/resourcespluginsplugingroupIdorg.apache.maven.plugins/groupIdartifactIdmaven-compiler-plugin/artifactIdversion\){maven.compiler.plugin.version}/versionconfigurationsource\({maven.compiler.source}/sourcetarget\){maven.compiler.target}/targetencoding\({project.build.sourceEncoding}/encoding/configuration/pluginplugingroupIdorg.mybatis.generator/groupIdartifactIdmybatis-generator-maven-plugin/artifactIdversion1.3.2/versiondependencies!--使用Mybatis-generator插件不能使用太高版本的mysql驱动 --dependencygroupIdmysql/groupIdartifactIdmysql-connector-java/artifactIdversion\){mysql.version}/version/dependency/dependenciesconfigurationoverwritetrue/overwrite/configuration/pluginpluginartifactIdmaven-clean-plugin/artifactIdversion3.1.0/version/plugin!– see http://maven.apache.org/ref/current/maven-core/default-bindings.html#Plugin_bindings_for_war_packaging –pluginartifactIdmaven-resources-plugin/artifactIdversion3.0.2/version/pluginpluginartifactIdmaven-compiler-plugin/artifactIdversion3.8.0/version/pluginpluginartifactIdmaven-surefire-plugin/artifactIdversion2.22.1/version/pluginpluginartifactIdmaven-war-plugin/artifactIdversion3.2.2/version/pluginpluginartifactIdmaven-install-plugin/artifactIdversion2.5.2/version/pluginpluginartifactIdmaven-deploy-plugin/artifactIdversion2.8.2/version/plugin/plugins/build
/project缺少jstlstandard的这两个jar包会报java.lang.NoClassDefFoundError: javax/servlet/jsp/jstl/core/Config那是因为org.springframework.web.servlet.view.JstlView在视图解析时需要这二个jar包。 创建 spring-mvc.xml这里又在spring-mvc.xml中配置了一次全局扫描导致多次扫描装配问题。防止重复扫描装配 ?xml version1.0 encodingUTF-8?
beans xmlnshttp://www.springframework.org/schema/beansxmlns:xsihttp://www.w3.org/2001/XMLSchema-instancexmlns:contexthttp://www.springframework.org/schema/contextxmlns:mvchttp://www.springframework.org/schema/mvcxsi:schemaLocationhttp://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsdhttp://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-4.3.xsd http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc.xsd!–1) 扫描com.CloudJun及子子孙孙包下的控制器(扫描范围过大耗时)–context:component-scan base-packagecom.CloudJun/!–2) 此标签默认注册DefaultAnnotationHandlerMapping和AnnotationMethodHandlerAdapter –mvc:annotation-driven /!–3) 创建ViewResolver视图解析器 –bean classorg.springframework.web.servlet.view.InternalResourceViewResolver!– viewClass需要在pom中引入两个包standard.jar and jstl.jar –property nameviewClassvalueorg.springframework.web.servlet.view.JstlView/propertyproperty nameprefix value/WEB-INF/jsp//property namesuffix value.jsp//bean!–4) 单独处理图片、样式、js等资源 –!– mvc:resources location/css/ mapping/css//mvc:resources location/js/ mapping/js//mvc:resources locationWEB-INF/images/ mapping/images//–!– 处理static包里的所有静态资源 –mvc:resources location/static/ mapping/static///beans 配置web.xml 配置步骤 配置Spring与Web项目集成 配置中文乱码过滤器 配置SpringMVC核心控制器DispatcherServlet ?xml version1.0 encodingUTF-8?
web-app xmlnshttp://xmlns.jcp.org/xml/ns/javaeexmlns:xsihttp://www.w3.org/2001/XMLSchema-instancexsi:schemaLocationhttp://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsdversion3.1display-nameArchetype Created Web Application/display-name!– Spring和web项目集成start –!– spring上下文配置文件 –context-paramparam-namecontextConfigLocation/param-nameparam-valueclasspath:spring-context.xml/param-value/context-param!– 读取Spring上下文的监听器 –listenerlistener-classorg.springframework.web.context.ContextLoaderListener/listener-class/listener!– Spring和web项目集成end –!– 中文乱码处理 –filterfilter-nameencodingFilter/filter-namefilter-classorg.springframework.web.filter.CharacterEncodingFilter/filter-classasync-supportedtrue/async-supportedinit-paramparam-nameencoding/param-nameparam-valueUTF-8/param-value/init-param/filterfilter-mappingfilter-nameencodingFilter/filter-nameurl-pattern//url-pattern/filter-mapping!– Spring MVC servlet –servletservlet-nameSpringMVC/servlet-nameservlet-classorg.springframework.web.servlet.DispatcherServlet/servlet-class!–此参数可以不配置默认值为/WEB-INF/springmvc-servlet.xml–init-paramparam-namecontextConfigLocation/param-nameparam-valueclasspath:spring-mvc.xml/param-value/init-paramload-on-startup1/load-on-startup!–web.xml 3.0的新特性是否支持异步–async-supportedtrue/async-supported/servletservlet-mappingservlet-nameSpringMVC/servlet-nameurl-pattern//url-pattern/servlet-mapping
/web-app 创建一个 IndexController package com.CloudJun.web;import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;/** author CloudJun* create 2023-09-04 16:19*/
Controller
RequestMapping(/Cloud)
public class IndexController {RequestMapping(/Jun)public String primary(){System.out.println(SpringMVC 使用。。。。。);return hello;}
}之后我们开启服务器在浏览器中发送这个请求测试 : http://localhost:8080/index/Cloud/Jun ( 根据自己的配置进行请求访问才可以 ) 测试结果 : ( 2 ) 静态资源处理 首先先将随便一个静态资源放进项目的静态资源包中 这里我们以以下图片为例 然后在 spring-mvc.xml 配置文件中增加以下代码 !– 处理static包里的所有静态资源 –mvc:resources location/static/ mapping/static/**/ ( 这里是会处理所有的静态资源也就是处理static包里的所有静态资源 ) 开启服务器在浏览器中发送这个请求测试请求根据所在的资源目录结构来输入。 如我的图片资源目录结构如图 : 所有我需要发送的请求为 : http://localhost:8080/index/static/images/preview.jpg 测试结果如图 给我们带来的收获 学习了SpringMVC的工作流程和静态资源处理我们可以获得以下收获 1. 理解了SpringMVC的整体工作流程学习了请求的流程包括DispatcherServlet的作用、HandlerMapping的匹配过程、HandlerAdapter的处理过程以及ViewResolver的视图解析过程等。这使我们能够更好地理解SpringMVC框架的工作原理从而更好地进行开发和调试。2. 掌握了静态资源处理的方法学习了如何配置SpringMVC来处理静态资源包括图片、样式表、脚本等。这使我们可以将静态资源与动态内容分离提高网站的性能和可维护性。3. 学会了如何配置静态资源的映射学习了如何配置SpringMVC来映射静态资源的URL路径以及如何配置静态资源的存放位置。这使我们可以自定义静态资源的URL路径更好地组织和管理静态资源。4. 了解了静态资源的缓存机制学习了如何配置SpringMVC来启用静态资源的缓存以减少网络请求和提高网站的加载速度。这使我们可以更好地优化网站的性能提升用户体验。 总之学习了SpringMVC的工作流程和静态资源处理我们可以更好地理解和使用SpringMVC框架提高开发效率和网站性能。
- 上一篇: 社区网站免费制作如何建设一个收费的影视图文网站
- 下一篇: 社区自助建站网学校建设网站的目的和意义
相关文章
-
社区网站免费制作如何建设一个收费的影视图文网站
社区网站免费制作如何建设一个收费的影视图文网站
- 技术栈
- 2026年04月20日
-
社区推广普通话优化网站seo策略
社区推广普通话优化网站seo策略
- 技术栈
- 2026年04月20日
-
社区门户网站规范化建设做网站推销的如何谈客户
社区门户网站规范化建设做网站推销的如何谈客户
- 技术栈
- 2026年04月20日
-
社区自助建站网学校建设网站的目的和意义
社区自助建站网学校建设网站的目的和意义
- 技术栈
- 2026年04月20日
-
射阳做企业网站哪家好网站建设记录过程
射阳做企业网站哪家好网站建设记录过程
- 技术栈
- 2026年04月20日
-
摄像头怎么做直播网站公路局网站建设方案
摄像头怎么做直播网站公路局网站建设方案
- 技术栈
- 2026年04月20日
