servlet

Tomcat一

和自甴很熟 提交于 2020-01-02 01:15:20
Tomcat是如何处理http请求的 Tomcat有什么用? Tomcat是一个应用服务器,也是一个Servlet容器,用来接收前端传过来的请求,并将请求传给Servlet,并将Servlet的响应返回给客户端。 Tomcat的体系结构 Tomcat的两大核心组件:Connector和Container Connector负责在服务器端处理客户端的连接,接受客户端的消息报文以及消息报文的解析工作,并把解析后的内容发送给Container;而Container组件负责对客户端的请求进行逻辑处理,并把结果返回给客户端。 1、Connector 一个Connector组件负责监听某个端口的客户请求,接受来自客户的TCP连接请求,并创建一个request和一个response对象,然后产生一个线程来处理这个请求并把产生的Request和Response对象传给Engine组件,从Engine获取返回结果并返回给客户端。 Tomcat中的两个Connector 一个用于监听来自浏览器的请求,另一个用于监听来自其他webServer的请求。 Coyote HTTP/1.1 Connector用来监听8080端口来自客户端的请求; Coyote JK2 Connector用来监听8009端口来自其他WebServer的请求。 Connector的作用

自定义SpringMVC拦截器中HandlerMethod类型转换问题调研

半世苍凉 提交于 2020-01-01 23:39:58
摘要 在将a模块迁移到spring boot项目下、使用embeded tomcat启动项目后,在调用RESTfule接口时,模块中声明的一个SpringMVC拦截器"cn.xxx.thread.common.web.speedctrlforuser.SpeedctrlForUserInterceptor"中抛出了ClassCastException。但是使用外置Tomcat启动就没有这个问题。在逐行debug后发现是spring boot缺失一项配置导致了这个问题。 问题 在 TECHSTUDY-91 - THREAD模块接入服务注册/订阅服务 进行中 任务中,我为a模块定义了一个启动类(注解了@SpringBootApplication),并配置了对应的application.properties。由于目前只需要注册到eureka上,配置文件中只有如下两行配置: applictaion.properties spring.application.name=a eureka.client.serviceUrl.defaultZone= http://10.255.33.207:8080/eureka,http://10.255.33.208:8080/eureka,http://10.255.33.209:8080/eureka 在其它配置(如maven依赖关系

Java语法笔记

混江龙づ霸主 提交于 2020-01-01 22:49:52
目录 知识点 不支持 恶心事 与C#的区别 组件 学习资料 母版页 知识点 类 静态方法,即可以在类上被调用,也可以在实例对象上被调用。 Java类 先执行静态构造函数,再执行静态方法或静态字段,所以如果在类的静态构造函数中,执行了该类的静态方法,则会报错。因为类还没有初始化,不能调用类方法,这一点和C#不同。以下代码报错: public class obj{ static{ Init(); } public static void Init(){} } 使用 import static 包.类.*; 可以直接使用该类下的方法。 类上可以定义代码段,在执行完构造函数之后执行。如: public class test{ {system.out.println("OK");} {system.out.println("22");} } 一些考点: http://www.cnblogs.com/lanxuezaipiao/p/3371224.html getClass().getClassLoader() 根在哪? 在 target/@/Web-inf/classes 可能通过:this.getClass().getClassLoader().getResource("").getPath() 取得。 Jdbc executeQuery 是执行并返回结果 getResultSet

SpringMVC基础配置及使用

℡╲_俬逩灬. 提交于 2020-01-01 22:34:23
SpringMVC: 1.SpringMVC和Spring的关系: 软件开发的三层架构: web层【表示层、表现层】---->Service层---->Dao[DataBase Access Object]---->数据库! SpringMVC实际上是Spring的一个子模块,我们用SpringMVC来代替这个JavaWEB部分! MVC:也是一种设计模式:M:Model【模型】-->V[View]--->C[Controller]! Model用来封装数据的,View:用来显示数据 Controller:用于接收前端页面发送的请求,然后调用Service层处理,拿到处理结果,将该结果返回给前端页面! SpringMVC:相当于MVC架构中的C以及V! 2.SpringMVC有什么优势? Spring 为展现层提供的基于 MVC 设计理念的优秀的Web 框架,是目前最主流的 MVC 框架之一。 Spring3.0 后全面超越 Struts2,成为最优秀的 MVC 框架。 Spring MVC 通过一套 MVC 注解,让 POJO 成为处理请求的控制器,而无须实现任何接口。 支持 REST 风格的 URL 请求(包含以下操作)。 GET POST PUT DELTE 采用了松散耦合可插拔组件结构,比其他 MVC 框架更具扩展性和灵活性. 目前主流的开发软件,说白了,大家都在用! 3

servlet生命周期

淺唱寂寞╮ 提交于 2020-01-01 18:33:24
1 servlet生命周期中的4个重要方法 1)构造方法:创建servlet对象,默认情况下,第一次访问servlet的时候创建servlet对象,只调用一次。servlet对象是单实例的。 2)init方法:创建完servlet对象后调用,只调用一次。 3)service方法:每次发出请求时调用一次。 4)destroy方法:销毁servlet对象时候调用。停止tomcat服务器时调用。 2 Tomtcat内部代码运行: 1)通过映射找到到servlet-class的内容,字符串 2)通过反射构造Servlet对象 2.1 得到字节码对象 Class clazz = class.forName(" Servlet "); 2.2 调用无参数的构造方法来构造对象 Object obj = clazz.newInstance(); ---1.servlet的构造方法被调用 3)创建ServletConfig对象,通过反射调用init方法 3.1 得到方法对象 Method m = clazz.getDeclareMethod("init",ServletConfig.class); 3.2 调用方法 m.invoke(obj,config); --2.servlet的init方法被调用 4)创建request,response对象,通过反射调用service方法 4.1 得到方法对象

spring boot 启动报错 Unable to start embedded Tomcat

浪子不回头ぞ 提交于 2020-01-01 13:37:25
**背景:**spring boot启动时候报错(项目中有servlet): Unable to start embedded Tomcat - Spring Boot **原因:**是因为没有装servlet相关的依赖 **解决方法:**添加依赖如下 <dependency> <groupId>javax.servlet</groupId> <artifactId>servlet-api</artifactId> <version>2.5</version> </dependency> 参考如下:https://stackoverflow.com/questions/36859646/springboot-unable-to-start-embedded-tomcat 来源: CSDN 作者: qijingpei 链接: https://blog.csdn.net/qijingpei/article/details/103791659

阿里巴巴-德鲁伊druid连接池配置

巧了我就是萌 提交于 2020-01-01 12:44:16
阿里巴巴推出的国产数据库连接池,据网上测试对比,比目前的DBCP或C3P0数据库连接池性能更好,Druid与其他数据库连接池使用方法基本一样(与DBCP非常相似),将数据库的连接信息全部配置给DataSource对象。 spring .xml配置: <!-- 阿里 druid数据库连接池 --> <bean id="dataSource" class="com.alibaba.druid.pool.DruidDataSource" destroy-method="close"> <!-- 数据库基本信息配置 --> <property name="url" value="${url}" /> <property name="username" value="${username}" /> <property name="password" value="${password}" /> <property name="driverClassName" value="${driverClassName}" /> <property name="filters" value="${filters}" /> <!-- 最大并发连接数 --> <property name="maxActive" value="${maxActive}" /> <!-- 初始化连接数量 -->

【SSM框架】Spring + Springmvc + Mybatis 基本框架搭建集成教程

跟風遠走 提交于 2020-01-01 12:18:20
本文将讲解SSM框架的基本搭建集成,并有一个简单demo案例 说明:1、本文暂未使用maven集成,jar包需要手动导入。    2、本文为基础教程,大神切勿见笑。    3、如果对您学习有帮助,欢迎各种转载,注明出处。    4、本文涉及源码和jar包下载地址: 一、导包 需要准备的包:   1、spring包   2、springmvc 包   3、mybatis 包 请自行下载导入,也可以去本人分享的网盘下载。 在lib目录创建spring,mybatis分类管理,将包复制进入各自的文件夹,并加载包。 二、配置文件 创建名为: config 的Source Folder文件夹。新建xml文件, 命名为: springmvc.xml 2.1springmvc.xml 配置    2.1.1、加入需要的beans标签库(aop.tx.context.mvc) <?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:p="http://www.springframework.org/schema/p" xmlns:aop=

JAVA学习的一些重点

半腔热情 提交于 2020-01-01 09:11:54
1. Java语言基础 谈到Java语言基础学习的书籍,大家肯定会推荐Bruce Eckel的《Thinking in Java》。它是一本写的相当深刻的技术书籍,Java语言基础部分基本没有其它任何一本书可以超越它。该书的作者Bruce Eckel在网络上被称为天才的投机者,作者的《Thinking in C++》在1995年曾获SoftwareDevelopment Jolt Award最佳书籍大奖,《Thinking in Java》被评为1999年Java World“最爱读者欢迎图书”,并且赢得了编辑首选图书奖。作者从1986年至今,已经发表了超过150篇计算机技术文章,出版了6本书(其中4本是关于C++的),并且在全世界做了数百次演讲。他是《Thinking in Java》、《Thinking in C++》、《C++ Inside & Out》《Using C++》和《Thinking in Patterns》的作者,同时还是《Black Belt C++》文集的编辑。他的书被读者称为“最好的Java参考书……绝对让人震惊”;“购买Java参考书最明智的选择”;“我见过的最棒的编程指南”。作者的非凡才华,极其跨越语言的能力,使作者被选为Java发展10年间与Java关系最密切的10个人物之一。 《Thinking in Java》讲述了Java语言的方方面面

intelj idea 创建聚合项目(典型web项目,包括子项目util、dao、service)

纵饮孤独 提交于 2020-01-01 05:08:22
需求:第三方提供了http api接口,我们需要将其数据全部取回来,存放到本地Mysql数据库。 开发工具是intelj idea,准备基于maven创建聚合项目,util作为工具包,单独作为一个工程,打包时打成jar包; dao层依赖util,打包时也打成jar包; service依赖dao层,打包时也是打成jar包; controller层依赖service层,打包时打成war包。 1.新建root工程 File--New Project-- 2.新建子module 在下图中,对着步骤一新建的root工程右击,新建module 3.分别查看root工程和子工程的pom文件 4、新建dao 子工程,依赖common-utils 在pom文件中,手动添加依赖: 5、新建service 子工程,依赖dao子工程 操作同第四步。 同样,我们要修改service的pom文件,手动加dao子工程的依赖进来。 6、新建controller工程,该工程应该为web工程,依赖service层 完成后在pom文件中增加对service的依赖。 7、测试工程是否正常 设想:因为clicent是web工程,pom文件中依赖service组件;于是---将service.jar拷贝到web/lib目录下 在本地maven找到service组件后,根据service的pom文件,发现其依赖dao组件