1. spring在web项目中配置的几种方式的分析
1. 加载spring容器
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>classpath:spring/application-*</param-value>
</context-param>
2. 配置监听器 作用: 在启动web容器的时候 自动装配Spring application.xml配置信息
<listener>
<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>
3. springmvc前端控制器 -->
<servlet>
<servlet-name>springmvc</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<init-param>
<param-name>contextConfigLocation</param-name>
<param-value>classpath:spring/springmvc.xml</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>
4. /
<servlet-mapping>
<servlet-name>springmVC</servlet-name>
<!--
第一种: *.action,访问以。action结尾 由DispatcherServlet解析
第二种 : /,所以访问的地址都由DispatcherServlet进行解析,对于静态文件的解析需要配置不让Dispatcher进行解析
第三种:/*,这样配置不对,使用这种配置,最终要转发到一个jsp页面,仍然有Dispatcher进行解析 Handler找不到这样就会报错
*/
-->
<url-pattern>/</url-pattern>
</servlet-mapping>
5. 解决乱码的问题
<filter>
<filter-name>CharacterEncodingFilter</filter-name>
<filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class>
<init-param>
<param-name>encoding</param-name>
<param-value>utf-8</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>CharacterEncodingFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
2. 如何用Spring Web MVC架构图进行开发
SpringMVC工作流程描述
(1)向服务器发送HTTP请求,请求被前端控制器DispatcherServlet捕获。
(2)DispatcherServlet 根据<servlet-name>-servlet.xml中的配置对请求的URL进行解析,得到请求资源标识符(URI)。
然后根据该URI,调用HandlerMapping获得该Handler配置的所有相关的对象(包括Handler对象以及Handler对象对应的拦截器),最后以HandlerExecutionChain对象的形式返回。
(3)DispatcherServlet 根据获得的Handler,选择一个合适的HandlerAdapter。(附注:如果成功获得HandlerAdapter后,此时将开始执行拦截器的preHandler(...)方法)。
(4)提取Request中的模型数据,填充Handler入参,开始执行Handler(Controller)。 在填充Handler的入参过程中,根据你的配置,Spring将帮你做一些额外的工作:
HttpMessageConveter: 将请求消息(如Json、xml等数据)转换成一个对象,将对象转换为指定的响应信息。
数据转换:对请求消息进行数据转换。如String转换成Integer、Double等。
数据根式化:对请求消息进行数据格式化。 如将字符串转换成格式化数字或格式化日期等。
数据验证: 验证数据的有效性(长度、格式等),验证结果存储到BindingResult或Error中。
(5)Handler(Controller)执行完成后,向 DispatcherServlet 返回一个ModelAndView对象;
(6)根据返回的ModelAndView,选择一个适合的ViewResolver(必须是已经注册到Spring容器中的ViewResolver)返回给DispatcherServlet。
(7)ViewResolver 结合Model和View,来渲染视图。
(8)视图负责将渲染结果返回给客户端。
3. 如何加入Spring到web框架中
第一步,按照图片指示,右击要添加Spring框架的项目,如下图,按照红线部分找到Add Spring,点击,进行到下一步
第二步,此处,要选择六个包,选择在第三步
第三步,选择的6个包如下图,其他选择默认,然后点击下一步
第四步,这一步,什么都不用设置,直接点击finish。
这样整个添加spring框架就完成了。
4. spring只适用于web项目么
Spring是一个开源框架,它由Rod Johnson创建。它是为了解决企业应用开发的复杂性而创建的。Spring使用基本的JavaBean来完成以前只可能由EJB完成的事情。然而,Spring的用途不仅限于服务器端的开发。从简单性、可测试性和松耦合的角度而言,任何Java应用都可以从Spring中受益。
• 目的:解决企业应用开发的复杂性
• 功能:使用基本的JavaBean代替EJB,并提供了更多的企业应用功能
• 范围:任何Java应用
简单来说,Spring是一个轻量级的控制反转(IoC)和面向切面(AOP)的容器框架。
■ 轻量——从大小与开销两方面而言Spring都是轻量的。完整的Spring框架可以在一个大小只有1MB多的JAR文件里发布。并且Spring所需的处理开销也是微不足道的。此外,Spring是非侵入式的:典型地,Spring应用中的对象不依赖于Spring的特定类。
■ 控制反转——Spring通过一种称作控制反转(IoC)的技术促进了松耦合。当应用了IoC,一个对象依赖的其它对象会通过被动的方式传递进来,而不是这个对象自己创建或者查找依赖对象。你可以认为IoC与JNDI相反——不是对象从容器中查找依赖,而是容器在对象初始化时不等对象请求就主动将依赖传递给它。
■ 面向切面——Spring提供了面向切面编程的丰富支持,允许通过分离应用的业务逻辑与系统级服务(例如审计(auditing)和事务()管理)进行内聚性的开发。应用对象只实现它们应该做的——完成业务逻辑——仅此而已。它们并不负责(甚至是意识)其它的系统级关注点,例如日志或事务支持。
■ 容器——Spring包含并管理应用对象的配置和生命周期,在这个意义上它是一种容器,你可以配置你的每个bean如何被创建——基于一个可配置原型(prototype),你的bean可以创建一个单独的实例或者每次需要时都生成一个新的实例——以及它们是如何相互关联的。然而,Spring不应该被混同于传统的重量级的EJB容器,它们经常是庞大与笨重的,难以使用。
■ 框架——Spring可以将简单的组件配置、组合成为复杂的应用。在Spring中,应用对象被声明式地组合,典型地是在一个XML文件里。Spring也提供了很多基础功能(事务管理、持久化框架集成等等),将应用逻辑的开发留给了你。
所有Spring的这些特征使你能够编写更干净、更可管理、并且更易于测试的代码。它们也为Spring中的各种模块提供了基础支持。
5. java的三大框架属于web,还是属于什么
java的三大框架属于web。
java三大框架的各自作用:
hibernate是底层基于jdbc的orm(对象关系映射)持久化框架,即:表与类的映射,字段与属性的映射,记录与对象的映射 数据库模型 也就是Model;
struts提供的丰富标签是用于显示层View;同时struts也充当了实现Control的功能(不管是Struts1,还是Struts2),接收参数,视图分发。
Spring是用于降低层与层间耦合度的,就是所有的类都可以由spring统一创建,用时只需注入即可(IOC)
从功能上来说,hibernate为M,struts2 为V,也可以为C,spring可以为C。
但大多数项目中,hibernate为M,struts2 为V+C,spring用来帮助管理类以及实现一些业务无关功能,如日志记录等,大多数都是用struts来做C的。
6. java编程spring里org.springframework.web这个包是干啥的
首先这个包是spring用来支持web应用的。
关于你说的监听,其实是当web应用启动时来执行的,举个例子
org.springframework.web.context.ContextLoaderListener
比如这个类,我们会在web.xml中这样来配置
<listener>
<listener-class>
org.springframework.web.context.ContextLoaderListener
</listener-class>
</listener>
这个监听类的作用就是当spring发现<context-param>这个标签内包含其他的xml配置文件,将这些xml文件对应的application content加载到web容器中,使得将多个application content建立起关联。
希望对你有帮助,谢谢。
你说的很多种监听,你现在没必要花时间在这些细枝末节上,技术是为了应用服务的,根据需求去学习使用研究,会更好的。
7. spring-boot 适合开发web应用吗
spring-boot 适合开发web应用的
静态资源访问
在我们开发Web应用的时候,需要引用大量的js、css、图片等静态资源。
默认配置
Spring Boot默认提供静态资源目录位置需置于classpath下,目录名需符合如下规则:
/static
/public
/resources
/META-INF/resources
举例:我们可以在src/main/resources/目录下创建static,在该位置放置一个图片文件。启动程序后,尝试访问http://localhost:8080/D.jpg。如能显示图片,配置成功。
渲染Web页面
在之前的示例中,我们都是通过@RestController来处理请求,所以返回的内容为json对象。那么如果需要渲染html页面的时候,要如何实现呢?
模板引擎
在动态HTML实现上Spring Boot依然可以完美胜任,并且提供了多种模板引擎的默认配置支持,所以在推荐的模板引擎下,我们可以很快的上手开发动态网站。
Spring Boot提供了默认配置的模板引擎主要有以下几种:
Thymeleaf
FreeMarker
Velocity
Groovy
Mustache
Spring Boot建议使用这些模板引擎,避免使用JSP,若一定要使用JSP将无法实现Spring Boot的多种特性,具体可见后文:支持JSP的配置
当你使用上述模板引擎中的任何一个,它们默认的模板配置路径为:src/main/resources/templates。当然也可以修改这个路径,具体如何修改,可在后续各模板引擎的配置属性中查询并修改。
Thymeleaf
Thymeleaf是一个XML/XHTML/HTML5模板引擎,可用于Web与非Web环境中的应用开发。它是一个开源的Java库,基于Apache License 2.0许可,由Daniel Fernández创建,该作者还是Java加密库Jasypt的作者。
Thymeleaf提供了一个用于整合Spring MVC的可选模块,在应用开发中,你可以使用Thymeleaf来完全代替JSP或其他模板引擎,如Velocity、FreeMarker等。Thymeleaf的主要目标在于提供一种可被浏览器正确显示的、格式良好的模板创建方式,因此也可以用作静态建模。你可以使用它创建经过验证的XML与HTML模板。相对于编写逻辑或代码,开发者只需将标签属性添加到模板中即可。接下来,这些标签属性就会在DOM(文档对象模型)上执行预先制定好的逻辑。
8. spring,spring framework,spring mvc,spring web flow有什么区别和联系
spring 是一种实现了 ioc 跟AOP 这两种思想的框架 spring 跟
spring framework 是同一个东西,ioc跟aop是两种编程上的理念,跟别的东西没什么关系
spring mvc 是在spring 这个框架的基础上,做得一个web框架,某种意义上来说,就是把 ioc跟aop这两种编程的理念移到web开发上来,
spring web flow 是基于spring mvc的,它所关注的是web工作流,在spring mvc的基础上,增加对web工作流的支持,
个人理解,错了,别见怪
9. spring-webmvc和spring-web有什么区别
1、定义不同
spring-web是一个一站式的框架,提供了表现层(springmvc)到业务层(spring)再到数据层的全套解决方案;spring的两大核心IOC(控制反转)和AOP(面向切面编程)更是给我们的程序解耦和代码的简介提供了支持。
而Spring-webMVC是基于Spring功能之上添加的Web框架,想用pring-webMVC必须先依赖pring-web,pring-webMVC仅给spring的表现层提供支持。
2、项目范围
pring-web可以说是一个管理bean的容器,也可以说是包括很多开源项目的总称。
而pring-webMVC只是其中一个开源项目。
(9)springweb扩展阅读:
spring框架的优点有以下几点:
1、JAVA EE应该更加容易使用。
2、面向对象的设计比任何实现技术(比如JAVA EE)都重要。
3、面向接口编程,而不是针对类编程。Spring将使用接口的复杂度降低到零。(面向接口编程有哪些复杂度?)
4、代码应该易于测试。Spring框架会帮助你,使代码的测试更加简单。
5、提供了应用程序配置的最好方法。
10. spring web reactive mvc哪个好
无论MVC,MVP,MVVM都只能算是架构模型吧,不能称之为开发框架。 如果真的要说开发框架的话 Google的dagger2依赖注入、databinding数据绑定,还有ReactiveJava应该算是 Android框架中比较常用到的一些开发框架。