web容器

html和jsp的区别--静态页面和动态页面的区别

匿名 (未验证) 提交于 2019-12-02 20:37:20
一、静态web页面,一般指html: 1、在静态Web程序中,客户端使用Web浏览器(IE、FireFox等)经过网络(Network)连接到服务器上,使用HTTP协议发起一个请求(Request),告诉服务器我现在需要得到哪个页面,所有的请求交给Web服务器,之后WEB服务器根据用户的需要,从文件系统(存放了所有静态页面的磁盘)取出内容。之后通过Web服务器返回给客户端,客户端接收到内容之后经过浏览器渲染解析,得到显示的效果。 2、为了让静态web页面显示更加好看,使用javascript/VBScript/ajax(AJAX即“Asynchronous Javascript And XML”(异步JavaScript和XML),是指一种创建交互式网页应用的网页开发技术。)但是这些特效都是在客户端上借助于浏览器展现给用户的,所以在服务器上本身并没有任何的变化。 3、静态web无法连接数据库; 4、静态web资源开发技术:HTML; 5、由于现在的web页面中,大量使用JS,导致浏览器打开页面,就会占用大量的内存,服务端的压力是减轻了,但压力转移到了客户端。 二、动态web页面,一般指jsp: 动态WEB中,程序依然使用客户端和服务端,客户端依然使用浏览器(IE、FireFox等),通过网络(Network)连接到服务器上,使用HTTP协议发起请求(Request)

web.xml作用

戏子无情 提交于 2019-12-02 20:23:40
启动一个WEB项目的时候,WEB容器会去读取它的配置文件web.xml,读取<listener>和<context-param>两个结点。 紧急着,容创建一个ServletContext(servlet上下文),这个web项目的所有部分都将共享这个上下文。 容器将<context-param>转换为键值对,并交给servletContext。 容器创建<listener>中的类实例,创建监听器。 https://blog.csdn.net/ckc_666/article/details/82964812 来源: https://www.cnblogs.com/mobies/p/11762570.html

Java Web 学习(2) —— JSP

狂风中的少年 提交于 2019-12-02 19:54:20
JSP 一、 什么是 JSP JSP 和 Servlet Servlet 有两个缺点是无法克服的:首先,写在 Servlet 中的所有 HTML 标签必须包含 Java 字符串,这使得处理HTTP响应报文的工作十分繁琐;第二,所有的文本和 HTML 标记是硬编码,导致即使是表现层的微小变化,如改变背景颜色,也需要重新编译。 JavaServer Pages(JSP)解决了上述两个问题。同时,JSP 不会取代 Servlet,相反,它们具有互补性。 JSP 页面本质上是一个 Servlet。然而,用 JSP 页面开发比使用 Servlet 更容易。首先,不必编译 JSP 页面;其次,JSP 页面是一个以 jsp 为扩展名的文本文件,可以使用任何文本编辑器来编写它们。 JSP 不需要添加注解或在部署描述符配置映射 URL。应用程序目录中的每一个JSP页面可以直接在浏览器中输入路径页面来访问。添加新的 JSP 界面后,无需重启 Tomcat。 二、 运行 JSP JSP页面在JSP容器中运行,一个Servlet容器通常也是JSP容器。例如,Tomcat 就是一个 Servlet/JSP 容器。 当一个 JSP 页面第一次被请求时,Servlet/JSP 容器主要做以下两件事情: 1. 把 JSP 页面转换到 JSP 页面实现类,该实现类是一个实现 javax.servlet.jsp

Spring源码分析(一):从哪里开始看spring源码(系列文章基于Spring5.0)

我怕爱的太早我们不能终老 提交于 2019-12-02 18:54:02
概述 对于大多数第一次看spring源码的人来说,都会感觉不知从哪开始看起,因为spring项目源码由多个子项目组成,如spring-beans,spring-context,spring-core,spring-aop,spring-web,spring-webmvc等,整个项目结构如图: 可能有人会觉得,既然spring是一个IOC容器或者说是一个bean的容器,那么应该从spring-beans看起,先了解spring是如何从xml文件配置获取需要创建的bean的信息,但是这里有个问题就是虽然知道怎么遍历初始化,但是不知道哪里用到或者说哪里让这些初始化开始,而且像BeanFactory,FactoryBean,Environment,PropertySource等接口还是比较抽象的,比较难看懂,所以很容易让人感觉枯燥,然后就放弃了。 我们可以换个思路,从能接触到的角度开始,即我们通常会使用spring-mvc来进行web开发,如@Controller,@RequestMapping都是再熟悉不过的了。如果搭过spring-mvc项目都知道,通常需要在web.xml文件中,配置一个ContextLoaderListener,contextConfigLocation,DispatcherServlet

【WebApp】webApp开发总结(集合转贴)

本小妞迷上赌 提交于 2019-12-02 18:44:36
【来源地址】 http://www.cnblogs.com/pifoo/archive/2011/05/28/webkit-webapp.html http://classjs.com/tag/%E7%A7%BB%E5%8A%A8%E7%AB%AF%E5%BC%80%E5%8F%91/ http://java-mans.iteye.com/blog/1639503 http://www.zhangxinxu.com/wordpress/?p=2568 一、 移动WebApp简单介绍 WebApp 简介 Web app是一种通过网络(如互联网或内联网)访问的应用程序;也可以指计算机软件承载在浏览器支持环境下或使用浏览器支持语言(如JavaScript)并依赖于web 浏览器来渲染的应用程序。Web app的流行归功于网页浏览器的普及,以及使用这一轻薄客户端方便的用户体验。不必下载安装就可以实现更新和维护,具有支持跨平台的内在属性,是web app开始流行的关键原因。典型的web app产品包括web邮箱、web商店、wikis等等。 WebApp的优点 ◆通过兼容性浏览器实现配置而不需要任何复杂的“转出”步骤; ◆浏览器应用程序几乎不需要客户端上的磁盘空间; ◆新功能从服务器自动传递给用户,用户自己不必升级程序; ◆可以轻松整合进入其他服务类web程序; ◆跨平台的兼容性

Jetty嵌入式Web容器攻略

此生再无相见时 提交于 2019-12-02 17:12:24
Jetty 是一个用 Java 实现、开源、基于标准的,并且具有丰富功能的 Http 服务器和 Web 容器。Jetty中应用最广泛的一项功能就是可以作为嵌入式Web容器。 在开发阶段,可以使用Jetty在Eclipse里直接启动应用,而不是像Tomcat那样繁琐,先把几十兆应用打包,然后再复制到某个目录后再启动。 在测试阶段,可以直接在测试用例中启动Jetty,而不是先将应用打包部署到容器。 在运行阶段,可以将war包配置成直接能够运行的应用 本文将着重介绍如何配置使用Jetty的嵌入式Web容器功能,关于Jetty的基本配置和功能请参考 http://www.ibm.com/developerworks/cn/web/wa-lo-jetty/ 一、开发阶段 1、使用maven启动Jetty 我们修改了源码的时候eclipse会自动编译, Jetty Maven Plugin 插件发现编译文件有变化后会自动更新到jetty容器中,非常方便我们进行开发。 首先定义Jetty的版本属性 <properties> <jetty.version>8.1.9.v20130131</jetty.version> </properties> 然后引入Jetty依赖 <!-- jetty --> <dependency> <groupId>org.eclipse.jetty.aggregate<

Java Web 学习(1) —— Servlet

北城以北 提交于 2019-12-02 16:46:58
Java Web 学习(1) —— Servlet 一、 什么是 Servlet Java Servlet 技术是Java体系中用于开发 Web 应用的底层技术。 Servlet 是运行在 Servlet 容器(如 Tomcat)中的Java程序,而 Servlet 容器或 Servlet 引擎相当于一个 Web 服务器,但是可以产生动态内容,而不仅是静态资源。一个 Servlet 是一个 Java 程序,一个 Servlet 应用包含了一个或多个 Servlet,一个 JSP 页面会被翻译并编译成一个 Servlet。 Servlet 应用运行在一个 Servlet 容器中,它无法独立运行。Servlet 容器将来自用户的请求传递给 Servlet 应用,并将 Servlet 应用的响应返回给用户。 二、 Servlet API Servlet API 有以下4个Java包: javax.servlet:包含定义 Servlet 和 Servlet 容器之间契约的类和接口。主要包含:Servlet 接口,ServletRequest 接口,ServletResponse 接口,ServletContext 接口,ServletConfig 接口,RequestDispatcher 接口,Filter 接口,GenericServlet 类等。 javax.servlet.http

Spring原理的一些问题

こ雲淡風輕ζ 提交于 2019-12-02 16:42:36
1、什么是 Spring 框架?Spring 框架有哪些主要模块? Spring 框架是一个为 Java 应用程序的开发提供了综合、广泛的基础性支持的 Java 平台。Spring 帮助开发者解决了开发中基础性的问题,使得开发人员可以专注于应用程序的开发。Spring 框 架本身亦是按照设计模式精心打造,这使得我们可以在开发环境中安心的集成 Spring 框架,不 必担心 Spring 是如何在后台进行工作的。 Spring 框架至今已集成了 20 多个模块。这些模块主要被分如下图所示的核心容器、数据访问/ 集成,、Web、AOP(面向切面编程)、工具、消息和测试模块。 2、使用 Spring 框架能带来哪些好处? 下面列举了一些使用 Spring 框架带来的主要好处: 1、Dependency Injection(DI) 方法使得构造器和 JavaBean properties 文件中的依赖关系一 目了然。 2、与 EJB 容器相比较,IOC 容器更加趋向于轻量级。这样一来 IOC 容器在有限的内存和 CPU 资源的情况下进行应用程序的开发和发布就变得十分有利。 3、Spring 并没有闭门造车,Spring 利用了已有的技术比如 ORM 框架、logging 框架、J2EE、 Quartz 和 JDK Timer,以及其他视图技术。 4、Spring

一次spring boot web服务响应缓慢的排查

家住魔仙堡 提交于 2019-12-02 16:24:17
  使用spring boot搭建了一个web服务,部署在docker容器中。使用中出现了一个性能问题:多次接口请求中,偶尔会出现一次响应非常慢的情况。正常情况下接口的响应时间在10-20ms,偶尔会出现一次3s以上的响应。下面是自己的一个排查过程   1、验证本地开发环境。   首先考虑的是在本地开发环境中找出问题所在。经过测试,本地并未出现这个问题。   2、数据库优化。   考虑到本地开发环境和部署的版本使用的数据库不同。通过建立索引,查询优化等方案,对数据库的查询进行了优化。然而问题依旧。   3、添加详细日志,定位问题   首先考虑的是业务代码可能存在问题,通过分析日志,发现响应慢的并不是业务代码,而是spring boot框架中的代码。主要耗时在过滤器和拦截器中。   4、添加gc日志   考虑可能由于过一段时间会出现一次gc,接口也是偶尔出现一次响应慢的情况,猜测两者可能有关系。通过日志发现,响应慢的时候并不一定出现gc,并且每次gc的时间都很短,在ms级别。   5、更换servlet容器   spring boot内置了多个servlet容器,默认使用的是tomcat。从上面日志定位的情况来看,servlet容器可能是主要原因。把tomcat换成undertow之后,问题得以解决,响应时间都固定在10-20ms范围。   6、为什么tomcat会出现这个问题

Spring域属性和代理模式

孤者浪人 提交于 2019-12-02 16:14:15
Spring域属性和代理模式 一、域属性 好处:大幅度减少Spring配置 坏处:依赖不能明确管理,可能会有多个bean同时符合注入规则。没有清晰的依赖关系。 1,byName 根据属性名自动装配。此选项将检查容器并根据名字查找 与属性完全一致的bean,并将其与属性自动装配。 2,byType 如果容器中存在一个与指定属性类型相同的bean,那么将与 该属性自动装配;如果存在多个该类型bean,那么抛出异常, 并指出不能使用byType方式进行自动装配;如果没有找 到相匹配的bean,则什么事都不发生,也可以通过设置 二、Bean的生命周期 在IoC容器启动之后,并不会马上就实例化相应的bean,此时容器仅仅拥有所有对象的BeanDefinition(BeanDefinition:是容器依赖某些工具加载的XML配置信息进行解析和分析, 并将分析后的信息编组为相应的BeanDefinition)。只有当getBean()调用时才是有可能触发Bean实例化阶段的活动 Bean一生的过程 ####可以简述为以下九步 实例化bean对象(通过构造方法或者工厂方法) 设置对象属性(setter等)(依赖注入) 如果Bean实现了BeanNameAware接口,工厂调用Bean的setBeanName()方法传递Bean的ID。(和下面的一条均属于检查Aware接口)