servlet

Servlet 工作原理解析【转】

旧巷老猫 提交于 2020-03-20 01:06:04
3 月,跳不动了?>>> 简介: Web 技术成为当今主流的互联网 Web 应用技术之一,而 Servlet 是 Java Web 技术的核心基础。因而掌握 Servlet 的工作原理是成为一名合格的 Java Web 技术开发人员的基本要求。本文将带你认识 Java Web 技术是如何基于 Servlet 工作,你将知道:以 Tomcat 为例了解 Servlet 容器是如何工作的?一个 Web 工程在 Servlet 容器中是如何启动的? Servlet 容器如何解析你在 web.xml 中定义的 Servlet ?用户的请求是如何被分配给指定的 Servlet 的? Servlet 容器如何管理 Servlet 生命周期?你还将了解到最新的 Servlet 的 API 的类层次结构,以及 Servlet 中一些难点问题的分析。 从 Servlet 容器说起 要介绍 Servlet 必须要先把 Servlet 容器说清楚,Servlet 与 Servlet 容器的关系有点像枪和子弹的关系,枪是为子弹而生,而子弹又让枪有了杀伤力。虽然它们是彼此依存的,但是又相互独立发展,这一切都是为了适应工业化生产的结果。从技术角度来说是为了解耦,通过标准化接口来相互协作。既然接口是连接 Servlet 与 Servlet 容器的关键,那我们就从它们的接口说起。 前面说了 Servlet

spring WebApplicationInitializer

心已入冬 提交于 2020-03-20 00:21:10
3 月,跳不动了?>>> 在spring中可以通过代码的方式配置原来的xml文件.在用java 代码配置web.xml时候,spring文档说配置类要实现WebApplicationInitializer接口.关于为什么要实现org.springframework.web.WebApplicationInitializer接口,记录下. 其实是对servlet规范的一种使用.servlet早就支持用代码实现相关的xml配置. servlet相关接口: ServletContainerInitializer @HandlesTypes: 解释: 实现了ServletContainerInitializer 接口的类在web程序启动的时候会被容器扫描加载并且调用其onStartup方法 (在方法中注册servlet或者filters等web.xml中会进行的配置).但是实现此接口的类必须在某个jar包中的META-INF/services路径下进行声明( java spi ).spring 中的实现类为org.springframework.web.SpringServletContainerInitializer,该类在springweb jar包中声明: @HandlesTypes(WebApplicationInitializer.class) public class

Servlet生命周期,JSP对比

倖福魔咒の 提交于 2020-03-19 17:22:15
Servlet生命周期大致分三个阶段: 初始化阶段----调用init()方法 请求响应阶段----调用service()方法,根据请求不同调用不同的doPost()/doGet()方法 终止阶段----调用destroy()方法 Servlet 和 JSP 相同点/不同点: JSP是Servlet技术的 扩展,本质上是 Servlet的简易方式,更强调应用的外表表达。JSP编译后是"类servlet"。 Servlet的应用逻辑是在Java文件中,并且完全从表示层中的HTML里分离开来。 JSP的情况是Java和HTML可以组合成一个扩展名为.jsp的文件。 JSP侧重于视图,Servlet主要用于控制逻辑。 两者都可以生成动态网页。Servlet是纯Java语言,擅长于处理流程和业务逻辑,缺点是生成动态网页不直观;JSP的优点是擅长于网页制作,生成动态页面比较直观,缺点是不容易跟踪与排错。 来源: https://www.cnblogs.com/realme/p/7228020.html

servlet生命周期

做~自己de王妃 提交于 2020-03-19 13:56:36
1. 生命周期 我们之前使用的都是javax.servlet.http.HttpServlet,这个类实现了javax.servlet.Servlet接口,而这个接口中定义的三个方法是所有servlet都必须实现的。 package javax.servlet; public interface Servlet { void init(ServletConfig config); void service(ServletRequest request, ServletResponse response); void destroy(); } 如图所示,tomcat之类的服务器首先根据web.xml中的定义实例化servlet,然后调用它的init()方法进行初始化,init()方法的ServletConfig参数是服务器传递进servlet的,其中包含web.xml配置的初始化信息和ServletContext对象等共享内容。 初始化后的servlet实例便进入等待请求的状态,当有与servlet-mapping匹配的请求进入时,服务器会调用servlet实例的service方法,传入ServletRequest与ServletResponse两个参数等待servlet处理完毕。 注意一点,对于每个web应用,内存中只存在一个servlet实例

servletConfig的应用

无人久伴 提交于 2020-03-19 13:45:34
在Servlet的配置文件中,可以使用一个或多个<init-param>标签为servlet配置一些初始化参数。 当servlet配置了初始化参数后,web容器在创建servlet实例对象时,会自动将这些初始化参数封装到ServletConfig对象中,并在调用servlet的init方法时,将ServletConfig对象传递给servlet。进而,程序员通过ServletConfig对象就可以得到当前servlet的初始化参数信息。 阅读ServletConfig API,并举例说明该对象的作用: 获得字符集编码 获得 数据库 连接信息 获得配置文件 ,查看struts案例的web.xml文件 view plain copy to clipboard print ? <? xml version= "1.0" encoding= "UTF-8" ?> < web-app version= "3.0" xmlns= "http://java.sun.com/xml/ns/javaee" xmlns:xsi= "http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web

JavaWeb Servlet

回眸只為那壹抹淺笑 提交于 2020-03-19 13:42:18
1. Servlet 介绍 1.1. 百度百科 Servlet是在服务器上运行的小程序。这个词是在Java applet的环境中创造的,Java applet是一种当作单独文件跟网页一起发送的小程序,它通常用于在客户端运行,结果得到为用户进行运算或者根据用户互作用定位图形等服务。 服务器上需要一些程序,常常是根据用户输入访问数据库的程序。这些通常是使用公共网关接口( CGI(Common Gateway Interface))应用程序完成的。然而,在服务器上运行Java,这种程序可使用Java编程语言实现。在通信量大的服务器上,Javaservlet的优点在于它们的执行速度更快于CGI程序。各个用户请求被激活成单个程序中的一个线程,而 无需 创建单独的进程,这意味着服务器端处理请求的系统开销将明显降低。 1.2. 维基百科 Servlet(Server Applet),全称Java Servlet,未有中文译文。是用Java编写的服务器端程序。其主要功能在于交互式地浏览和修改数据,生成动态Web内容。狭义的Servlet是指Java语言实现的一个接口 ,广义的 Servlet是指任何实现了这个Servlet接口的类,一般情况下,人们将Servlet理解为后者。 Servlet运行于支持Java的应用服务器中。从实现上讲,Servlet可以响应任何类型的请求

Openfire的web插件开发

倖福魔咒の 提交于 2020-03-18 17:49:09
概要 Openfire不仅支持普通插件开发,还支持完整的web插件开发,这次就web插件开发做一个小的实例,本文主要讲解如何加入Servlet和Jsp页面,基本插件的开发请参照上一篇文章。 准备 系统环境:window10(surface pro4) JDK:1.7 or later 开发工具:eclipse-Mars.2 Release (4.5.2) Openfire版本:4.0.3 步骤 在openfire根目录下创建资源包和class包,然后创建一个Servlet类。 创建一个类实现Plugin用来被openfire识别 Servlet创建完成,我们参照其他web插件手动创建src/plugins/helloweb下的web结构,跟javaweb中的结构类似。 配置servlet到web.xml 创建helloweb.jsp页面 配置plugin.xml 编译运行 验证是否成功 说明 Web插件开发时候,必须有一个类实现Plugin接口来注册这个插件,否则添加不成功(推测,你们可以尝试下)。 所有Servlet的地址为plugins/服务名称/url-pattern(url-pattern是web.xml中拦截的地址,连接全部都要小写)。 若web插件不需要登陆openfire就能访问的话需要在Servlet启动的时候将地址加入例外 AuthCheckFilter

[项目分享]JSP+Servlet+JDBC实现的云端汽修后台管理系统

折月煮酒 提交于 2020-03-18 17:22:19
本文存在 视频版本 ,请知悉 项目简介 项目来源于: https://gitee.com/chenlinSir/CloudDemo-servlet 难度等级:简单 基于 JSP+Servlet+Jdbc 的云端汽修后台管理系统。涉及技术少,易于理解,适合 JavaWeb初学者 学习使用。 难度等级:简单 技术栈 编辑器 Eclipse Version: 2019-12 (4.14.0) 前端技术 基础:html+css+JavaScript 框架: JQuery + layui 后端技术 Jsp+Servlet 数据库:mysql 5.7.27(个人测试使用) jdk版本:1.8.0_181(个人测试使用) tomcat版本:8.5.34(个人测试使用) 本地运行 Eclipse环境准备 1. eclipse新增jdk 2. eclipse新增tomcat 导入项目 下载zip直接解压或安装git后执行克隆命令 git clone https://gitee.com/chenlinSir/CloudDemo-servlet.git 使用eclipse打开项目,配置jdk、tomcat和所需jar包。 项目所依赖jar包在WebContent/WEB-INF/lib文件夹下。 复制CloudDermos.sql文件内容,并粘贴到Navicat中运行。 修改com.cloud.util

简单模拟tomcat环境测试HttpSessionBindingListener实现效果

雨燕双飞 提交于 2020-03-18 16:04:20
某厂面试归来,发现自己落伍了!>>> HttpSessionBindingListener接口在很多情况下用于在线用户人数的统计与管理。不言而喻,session是必须的,但又不想专门启动tomcat运行一个web程序来测试它的效果。那么有没有办法直接调用tomcat自己的jar包来构造一个session来实现我的目的。比如: 1.调用tomcat的某个jar,这个包就是在tomcat运行时接收远程客户端的http请求时,用来构造HttpServletRequest、HttpServletResponse、HttpSession等我们熟知的servlet API中的实现类,现在我只需要HttpSession接口的实现。 2.获得了HttpSession实例之后,我就可以用session.setAttribute()方法将HttpSessionBindingListener的实例放入session,然后又调用session.removeAttribute()删除这个属性,看看HttpSessionBindingListener的实例中相应方法是否被触发,从而实现测试目的。 通过多番测试,证明上面的步骤是完全能实现的。 一、首先将tomcat安装目录下面的所有jar包引入工程(其实并非全部需要,只是为了操作简单),包括lib及bin目录下的。 二

web.xml文件的作用

牧云@^-^@ 提交于 2020-03-18 11:26:16
每个javaEE工程中都有web.xml文件,那么它的作用是什么呢?它是每个web.xml工程都必须的吗? 一个web中可以没有web.xml文件,也就是说,web.xml文件并不是web工程必须的。 web.xml文件是用来初始化配置信息:比如Welcome页面、servlet、servlet-mapping、filter、listener、启动加载级别等。 当你的web工程没用到这些时,你可以不用web.xml文件来配置你的Application。 每个xml文件都有定义它书写规则的Schema文件,也就是说javaEE的定义web.xml所对应的xml Schema文件中定义了多少种标签元素,web.xml中就可以出现它所定义的标签元素,也就具备哪些特定的功能。web.xml的模式文件是由Sun 公司定义的,每个web.xml文件的根元素为<web-app>中,必须标明这个web.xml使用的是哪个模式文件。如: <?xml version="1.0" encoding="UTF-8"?> <web-app version="2.5" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http:/