servlet

Tomcat结构、启动过程、关键组件简单分析

戏子无情 提交于 2020-01-28 08:51:55
Tomcat 结构:   Tomcat最顶层容器叫Server,代表整个服务器,Server中包含至少一个Service,用于具体提供服务,Service主要包含:Connector和Container,前者处理链接并提供Socket与request和response的转换,Container用于封装和管理Servlet,以及具体处理request请求。   一个Tomcat里一个Server,包含多个Service,一个Service只有一个Container,可以有多个Connector。一个Container只有一个Engine,Engine里面可以有多个Host,每个Host(虚拟主机,站点)下可以有多个Context(代表一个应用),每个Context下可以有过个Wrapper(每个封装一个Servlet)。 Tomcat里的server由Catalina来管理,他是Tomcat的管理类,load(调server的init),start(调server的start,下同),stop三个方法管理服务器生命周期。 启动:   正常情况启动Tomcat就是调用Bootstrap的main方法,main,新建bootstrap,执行init初始化,并调用start。init里初始化classloader,由此创建Catalina实例,赋给catalinaDaemon变量。  

springMVC两种方式实现多文件上传及效率比较

折月煮酒 提交于 2020-01-28 08:51:38
springMVC实现 多文件上传的方式有两种,一种是我们经常使用的以字节流的方式进行文件上传,另外一种是使用springMVC包装好的解析器进行上传。这两种方式对于实 现多文件上传效率上却有着很大的差距,下面我们通过实例来看一下这两种方式的实现方式,同时比较一下在效率上到底存在着多大的差距。 1.下载相关jar包。 需要引入的jar出了springMVC的jar包外,还需要引入 com.springsource.org.apache.commons.fileupload-1.2.0.jar和 com.springsource.org.apache.commons.io-1.4.0.jar。所有的jar包可以通过“ 点击这里 ”进行下载。 2.配置springAnnotation-servlet.xml文件(文件名称可以自定义,只要和web.xml中引入的名称一样即可): [html] view plain copy <? xml version= "1.0" encoding= "UTF-8" ?> <!-- Bean头部 --> < beans xmlns= "http://www.springframework.org/schema/beans" xmlns:xsi= "http://www.w3.org/2001/XMLSchema-instance" xmlns:p=

Servlet概述

南笙酒味 提交于 2020-01-28 05:19:04
Java Web应用程序中所有的请求-响应都是由Servlet来完成的。Servlet是Java Web的核心程序,所有的网址最终都交给Servlet来处理。 Servlet并没有main之类的执行方法。当用户访问服务器的时候,Tomcat是通过调用Servlet的某些方法来完成整个处理过程的。 Servlet工作流程 浏览器提交的请求是遵循HTTP协议的文本。这段文本由服务器也就是Tomcat接收并解析,封装成了 HttpServletRequest 类型的request对象。所有的HTTP头数据都可以通过request响应的方法查询到。 Tomcat同时把输出流封装为HttpServletResponse类型的response对象,通过设置response属性就可以控制输出的内容。然后,Tomcat把request、response作为参数,调用Servlet的相应的方法,例如: doGet ( javax . servlet . http . HttpServletRequest request , javax . servlet . http . HttpServletResponse response ) ; doPost ( javax . servlet . http . HttpServletRequest request , javax . servlet .

Spring MVC 搭建

自作多情 提交于 2020-01-28 03:13:48
1.新建一个 Java Web 项目 1-1 File > New >other 1.2 再 点击 Next 之后把 两个都勾选上 如下图 2 点击项目 > 鼠标右键 > MyEclise > Project Facets > Install Spring Facet 2.1 直接点击 Finish 完成之后 效果 如下图 3 搭建 Spring 框架最重要的步骤应该就是配置了。官网对框架的解释说明如下: Spring MVC 框架是围绕一个 DispatcherServlet 来设计的,这个 Servlet 会把请求分发给各个处理器,并支持可配置的处理器映射、视图渲染、本地化、时区与主题渲染等,甚至还能支持文件上传。处理器是你的应用中注解了 @Controller 和 @RequestMapping 的类和方法,Spring 为处理器方法提供了极其多样灵活的配置。 所以,首先我们应该在 /WebContent/WEB-INF/ web.xml 文件,接下来在这个文件中配置 DispatcherServlet。 <servlet> <servlet-name>springMVC</servlet-name> <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class> <load

Java Servlet监听器的分类

ぃ、小莉子 提交于 2020-01-28 01:49:14
Servlet中的监听器简介 在Servlet中定义了多种类型的监听器,它们用于监听的事件源分别是ServletContext、HttpSession和ServletRequest这三个域对象。 Servlet中的监听器的分类 一类:监听三个域对象的创建和销毁的监听器(三个) 二类:监听三个域对象的属性变更(属性添加、移除、替换)的监听器(三个) 三类:监听HttpSession中JavaBean的状态改变(钝化、活化、绑定、解除绑定)的监听(两个) 来源: CSDN 作者: 学亮编程手记 链接: https://blog.csdn.net/a772304419/article/details/104095033

Servlet 文件下载提示保存文件 Content-Disposition :attachment和inline的区别

有些话、适合烂在心里 提交于 2020-01-27 22:23:01
Servlet 文件下载提示保存文件 Content-Disposition :attachment和inline的区别 前端页面: < body > <!-- 无设置默认打开 inline --> < a href = " img/美女.jpg " > < img src = " img/美女.jpg " > 图片1 </ a > < br /> < a href = " mp4/01.课程内容简介.mp4 " > 视频 </ a > < hr /> <!-- attachment --> < a href = " DownloadServlet2?filename=美女.jpg " > 图片1 点击下载 </ a > < br /> < a href = " DownloadServlet2?filename=01.课程内容简介.mp4 " > 视频 点击下载 </ a > @WebServlet ( "/DownloadServlet2" ) public class DownloadServlet2 extends HttpServlet { protected void doPost ( HttpServletRequest request , HttpServletResponse response ) throws ServletException ,

Java企业微信开发_Exception_02_java.security.InvalidKeyException: Illegal key size

三世轮回 提交于 2020-01-27 19:34:13
一、准备阶段 需要准备事项: 1.一个能在公网上访问的项目: 见: Java微信公众平台开发_01_本地服务器映射外网 2.一个企业微信账号: 去注册:( https://work.weixin.qq.com ) 3.策略文件 见: Java企业微信开发_Exception_02_java.security.InvalidKeyException: Illegal key size 4.接入验证的 微信加解密包 此包封装了对 msg_signature对请求进行校验的相关操作,直接用就可以了 下载地址: http://qydev.weixin.qq.com/java.zip 二、接收消息服务器配置 2.1 接收消息服务器参数配置: 在企业微信的管理端后台,进入需要设置接收消息的目标应用,点击“接收消息”的“设置”,进入如下页面 URL是企业应用接收企业微信推送请求的访问协议和地址,支持http或https协议。 Token可由企业任意填写,用于生成签名。 EncodingAESKey用于消息体的加密,是AES密钥的Base64编码。 2.1.1 验证URL有效性 当点击“保存”提交以上信息时,企业微信将发送GET请求到填写的URL上,GET请求携带以下四个参数 参数 必须 说明 msg_signature 是 企业微信加密签名,msg_signature结合了企业填写的token

搭建入门ssm框架

别说谁变了你拦得住时间么 提交于 2020-01-27 14:12:37
1. 准备的jar包 如下图: mybatis和数据库连接的包: spring和mvc的包: 其他jar包: spring的jar包,可以在官网下载齐全的,其他的包都可以使用maven的仓库下载。使用maven可以将maven配置进项目来下载jar包,也可以去官网仓库下载(两者都可)。 最好给这些jar包详细分类,spring和mybatis的可以分一起,其他的jar包可以根据需求分,不同的jar包对应不同的功能。 2.项目文件架构 良好的文件架构有助于项目的开发和文件配置,不同的功能目录都需要配置的。 如下图: resources:主要放配置文件 dao:DAO接口和mybatis配置文件 po:持久化类 service:service层接口 service.impl:service层接口实现类 utils:分页工具类 web.controller:controller类 web文件夹就不用介绍了,学到ssm配置的,这些应该都清楚了。 3.配置文件 这里直说基础的spring+spring mvc+mybatis的配置,其他的配置根据自己需要再添加。 db.properties(这里放数据库连接配置) jdbc.driver=com.mysql.cj.jdbc.Driver jdbc.url=jdbc:mysql://localhost:3306/db_shop?useSSL

spring web.xml文件详解

耗尽温柔 提交于 2020-01-27 05:25:46
1、web.xml首先是肯定要包含它的schema. <web-app xmlns="http://java.sun.com/xml/ns/j2ee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd" version="2.4"> </web-app> 其它的元素都放在<web-app></web-app>之中。 <discription></discription> 是对站台的描述 <display-name></display-name> 定义站台的名称 <distributable/> 是指定该站台是否可分布式处理 <context-param></context-param> 用来设定web站台的环境参数,它包含两个子元素: <param-name></param-name> 用来指定参数的名称 <param-value></param-value> 用来设定参数值 比如: <context-param> <param-name>my_param</param-name> <param-value>hello</param-value> </context-param>

SpringMVC自学日志01(回顾servlet)

三世轮回 提交于 2020-01-27 03:23:27
MVC:模型(dao,service) 视图(jsp) 控制器(servlet) dao service servlet:转发,重定向。 导入总环境pom.xml依赖 < dependencies > < dependency > < groupId > junit < / groupId > < artifactId > junit < / artifactId > < version > 4.12 < / version > < / dependency > < dependency > < groupId > org . springframework < / groupId > < artifactId > spring - webmvc < / artifactId > < version > 5.1 .9 . RELEASE < / version > < / dependency > < dependency > < groupId > javax . servlet < / groupId > < artifactId > servlet - api < / artifactId > < version > 2.5 < / version > < / dependency > < dependency > < groupId > javax . servlet .