web容器

Java web学习(五)

寵の児 提交于 2019-11-28 09:28:44
Struts2框架几乎是目前最优秀的MVC框架之一。Struts2框架是WebWork框架和Struts1框架的结合体。 Struts2结构体系 注:现在StrutsPrepareAndExecuteFilter过滤器已经代替了FilterDispatcher过滤器。 工作原理:当客户端发送一个HTTP请求时,需要经过一个过滤器链,这个过滤器链包括ActionContextClearUp过滤器,其他WEB应用过滤器及StrutsPrepareAndExecuteFilter过滤器,其中StrutsPrepareAndExecuteFilter过滤器是必须要配置的。 当StrutsPrepareAndExecuteFilter过滤器被调用时,ActionMapper将查找需要调用的Action对象,并返回该对象的代理ActionProxy。然后ActionProxy将从配置管理器ConfigurationManager中读取Struts2的相关配置(struts.xml)。Action容器ActionInvocation调用指定的Action对象,在调用之前需要经过Struts2的一系列拦截器。 当Action处理请求后,将返回相应的结果视图,在这些视图中可以使用Struts2标签显示数据并控制数据逻辑。然后HTTP请求回应给浏览器,在回应的过程中同样经过过滤器。

Spring与Web环境集成

不打扰是莪最后的温柔 提交于 2019-11-28 08:46:53
1.Spring与Web环境集成 1.1自定义监听器将Spring集成到web环境 1_需求:将spring集成到web开发环境中,将所有的bean对象创建交给spring,除了servlet,servlet可以理解为一个测试类.在servlet中获取ApplicationContext,获取对应的bean 环境搭建,这个是自己一步步取实现的,其实spring有提供简单的方法完成1.1的操作 <!--在pom文件中引入所需的依赖--> <!--Spring坐标--> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-context</artifactId> <version>5.0.5.RELEASE</version> </dependency> <!--SpringMVC坐标--> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-webmvc</artifactId> <version>5.0.5.RELEASE</version> </dependency> <!--Servlet坐标--> <dependency> <groupId>javax.servlet</groupId>

SpringBoot电商项目实战 — 前后端分离后的优雅部署及Nginx部署实现

落花浮王杯 提交于 2019-11-28 07:34:35
在如今的SpringBoot微服务项目中,前后端分离已成为业界标准使用方式,通过使用nginx等代理方式有效的进行解耦,并且前后端分离会为以后的大型分布式架构、弹性计算架构、微服务架构、多端化服务(多个客户展现端,例如:web端,安卓app,IOSapp,微信小程序等)打下坚实的基础。这个步骤是系统架构从猿进化成人的必经之路。 image 上图是简单的分布式微服务开发及前后端分离的示意图。展现层也就是所谓的前端(客户可直观看到的),比如电商项目前端包含:app(安卓和IOS)、微信小程序、PC商城、Web后台。后端是整个项目的核心,也就是系列项目中讲的内容,后端用Springboot+Dubbo实现分布式开发微服务落地,服务实现层的每一个服务都是一个独立部署的应用,并提供服务(Dubbo的提供者),接口层根据前端的请求,然后找对应的服务提供者消费服务。 在前后端分离的应用模式中,后端仅返回前端所需的数据,不再渲染HTML页面,不再控制前端的效果。至于前端用户看到什么效果,从后端请求的数据如何加载到前端中,都由前端自己决定,网页有网页的处理方式,各自有各自的处理方式,但无论哪种前端,所需的数据基本相同,后端仅需开发一套逻辑对外提供数据即可。前端(Web项目)分离处理,都是从原先的JSP转成了Html静态页面。 Web项目部署容器的选取 目前常用的部署Web项目的容器用Tomcat

ServletContext简介

无人久伴 提交于 2019-11-28 07:30:40
ServletContext 简介 1.什么是ServletContext   ServletContext 是表示整个WEB应用的对象   ServletContext对象是在服务器启动,web应用被加载之后,服务器会立即创建出代表整个web应用的ServletContext对象   创建之后,该对象会一直驻留在服务器的内存中,唯一的表示当前web应用。知道服务器关闭或者web应用被移除容器为止,随着web应用的销毁,ServletContext对象也会跟着销毁。   他是最大的一个域对象!!! 2.提供操作域属性的方法   setAttribute(String name,Object value);  添加一个域属性   getAttribute(String name)  获取域属性   removeAttribute(String name)  删除域属性 3.三大特征 (1)生命周期   在web应用被加载之后,服务器会立即创建ServletContext对象   在web应用被移除或者服务器关闭时,服务器会立即销毁ServletContext对象 (2)作用范围   整个web应用中 (3)主要功能   在web应用中共享数据 来源: https://www.cnblogs.com/gxlaqj/p/11399249.html

Spring整体架构

对着背影说爱祢 提交于 2019-11-28 07:21:47
Spring整体架构 Spring的整体架构 Spring框架是分层架构的,它包含了一系列的功能要素。             Spring整体架构图 模块分类 1. Core Container   Core Container (核心容器)包含 Core,Beans,Context,Expression Language四个模块。   Core和Beans是Spring的基础部分,提供Ioc(控制反转)和依赖注入。     ●Core模块:见名知意就是核心的意思。该模块主要包含Spring基本的核心工具类,Spring的其他组件都要使用其中的类,Core模块是其他组件的基本核心。     ●Beans模块是所有应用都要用到的,它包含访问配置文件,创建和管理bean以及进行(Ioc/DI)操作相关的类。     ●Context模块构建在Core和Beans的基础之上,提供了一种类似于JNDI(Java命名和目录接口,详情百度)注册器的框架式的对象访问方法。Context模块为Spring的核心提供了大量扩展。ApplicationContext接口是Context模块的关键。     ●Expression Language模块提供了一个强大的表达式语言用于在运行时查询和操作对象。 2. Data Access/Integration    Data Access

Spring整体架构

喜你入骨 提交于 2019-11-28 07:21:39
前言   Spring是2003年兴起的一个轻量级的java开源框架,Spring是为了解决企业应用开发的复杂性而创建的,它使用JavaBean来完成以前只可能由EJB完成的事情。   (EJB是sun的JavaEE服务器端组件模型,设计目标与核心应用是部署分布式应用程序。简单来说就是把已经编写好的程序(即:类)打包放在服务器上执行) Spring的整体架构   Spring框架是一个分层框架,包含一系列的功能要素,被分为大约20个模块,如图:    1.Core Container   Core Container(核心容器)包含有Core、Beans、Contexts 和 Expression Language模块。   Core 和 Beans模块是框架的基础部分,提供 IoC(Inversion of Control,控制反转) 和依赖注入特性。 Core 模块主要包含Spring 框架基本的核心工具类,Spring的其他组件都要使用到这个包里的类,Core 模块是其他组件的基本核心,当然也可以在自己的应用系统中使用这些工具类 Beans 模块是框架是所有应用都要用到的,它包含访问配置文件、创建和管理bean以及进行 Inversion of Control / Dependency Injection(IoC/DI)操作相关的所有类 Context 模块构建于 Core

Spring Boot开发Web应用之JSP篇

☆樱花仙子☆ 提交于 2019-11-28 05:42:53
前言 上一篇介绍了Spring Boot中使用Thymeleaf模板引擎,今天来介绍一下如何使用SpringBoot官方不推荐的jsp,虽然难度有点大,但是玩起来还是蛮有意思的。 正文 先来看看整体的框架结构,跟前面介绍Thymeleaf的时候差不多,只是多了webapp这个用来存放jsp的目录,静态资源还是放在resources的static下面。 引入依赖 123456789101112131415161718 <!--WEB支持--><dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId></dependency><!--jsp页面使用jstl标签--><dependency> <groupId>javax.servlet</groupId> <artifactId>jstl</artifactId></dependency><!--用于编译jsp--><dependency> <groupId>org.apache.tomcat.embed</groupId> <artifactId>tomcat-embed-jasper</artifactId> <scope>provided</scope></dependency>

SpringMVC 源码解析

不羁岁月 提交于 2019-11-28 05:34:51
前言 年初面试时接触到一道面试题,在聊到SpringMVC时提到了SpringMVC的开发者为何要设计父子容器呢,又或者说是父子容器的设计有什么更实际的作用呢? 首先要理解对于一个web应用,当期部署在web容器上时,容器会为其提供一个全局上下文环境ServletContext,这个上下文环境将为后续的Spring提供宿主环境。 SpringMVC工作流程 DispatcherServlet上下文继承关系 SpringMVC设计的父子容器 父子容器配置文件 --在web.xml中配置,两个重要的xml:applicationContext.xml和SpringMVC-conf.xml <context-param> <param-name>contextConfigLocation</param-name> <param-value>classpath*:applictionContext.xml</param-value> </context-param> <listener> <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class> </listener> <servlet> <servlet-name>dispatcher-servlet</servlet

三种数据库连接池的配置及使用(For JDBC)

牧云@^-^@ 提交于 2019-11-28 05:03:28
连接池的优缺点 优点 使用连接池的最主要的优点是性能。创建一个新的数据库连接所耗费的时间主要取决于网络的速 度以及应用程序和数据库服务器的 ( 网络 ) 距离,而且这个过程通常是一个很耗时的过程。而采用 数据库连接池后,数据库连接请求可以直接通过连接池满足而不需要为该请求重新连接、认证到 数据库服务器,这样就节省了时间。 缺点 数据库连接池中可能存在着多个没有被使用的连接一直连接着数据库 ( 这意味着资源的浪费 ) 。 DBCP 一、导包 Apache官网下载DBCP包,导入两个包路径如下: commons-dbcp-1.4-bin\commons-dbcp-1.4\commons-dbcp-1.4.jar:连接池的实现 commons-pool-1.5.6-bin\commons-pool-1.5.6\commons-pool-1.5.6.jar:连接池实现的依赖库 CSDN上jar包的下载地址:http://download.csdn.net/detail/u012802702/9491642 二、代码示例: 方式一:使用BasicDataSource 通过方法设置连接参数。 [java] view plain copy //获取BasicDataSource并配置,开始.... BasicDataSource source = new BasicDataSource();

Web应用运行原理

久未见 提交于 2019-11-27 23:59:30
web应用启动做了什么? 读取web.xml文件 - web.xml常用配置参数: 1) .context-param(上下文参数) 2) .listener(监听器配置参数) 3) .filter(过滤器配置参数) 4) .servle(servlet页面参数) 5).其他 - 读取顺序: 1)>>> 2)>>> 3)>>> 4)( 5))(具体对应的执行顺序也是如此) - 原理及过程 1)应用在服务器上启动,容器按上述顺序自动读取 web .xml中的参数 2)容器创建一个上下文对象,即 ServletContext,整个 web应用共享这个对象 3)容器将读取到的 context-param配置参数转化为键值对,封装到 ServletContext 4)创建监听器对象(Servlet容器实例化所有监听器,回调无参构造方法,调用init初始化方法) 5)创建过滤器对象(Servlet容器实例化所有过滤器,回调无参构造方法,调用init初始化方法) 注意:此时只是 web应用启动时的读取文件以及初始化阶段,客户端没有发送的请求的情况下不会有其他任何操作 浏览器到服务器解析? A.浏览器发送请求到服务器 1.在浏览器地址栏输入请求地址,浏览器解析请求URL,解析出IP地址等信息(域名解析) 2.解析后的URL信息封装成HTTP报文 3.浏览器创建一个socket调用send(