Java EE

手写Tomcat服务器

那年仲夏 提交于 2020-12-20 03:01:13
预备知识 编写服务器用到的知识点 1) Socket 编程 2) HTML 3) HTTP 协议 4) 反射 5) XML 解析 6) 服务器编写 Socket编程 https://www.cnblogs.com/bfcs/p/10790130.html HTML知识 HTML:HyperText Markup Language 超文本标记语言用于描述网页文档的一种标记语言 表单(form):与用户之间进行交互   method:请求方式 get/post      get 数据量小,安全性低,默认方式      post 数据量大,安全性高   action:请求的服务器路径   id :(用户的的浏览器在文档里区分唯一性)前端区分唯一性,js 中   name:名称,后端(服务器)区分唯一性,获取值,只要提交数据给后台(服务器)必须存在 name 1 < html > 2 < head > 3 < title > 登陆界面 </ title > 4 </ head > 5 < body > 6 < form action ="" method ="post" > 7 < p > 用户名: < input type ="text" name ="username" id ="name" /></ p > 8 < p > 密码: < input type ="password"

大佬说:怎么手写一个Tomcat然后、给这个Tomcat 部署项目并且成功处理请求 ? 我TM当时就吓尿了!

五迷三道 提交于 2020-12-20 00:10:07
@ TOC </font> <hr style=" border:solid; width:100px; height:1px;" color=#000000 size=1"> 前言 <font color=#999AAA >提示:上篇我们自定义了简单的Tomcat,但是不能去部署web项目,当然也不能从根据url进行访问: </font> 阅读本文前请先阅读: 自定义一个简单的Tomcat 即:自定义一个简单的Tomcat 可以访问静态页面,返回字符串等; <hr style=" border:solid; width:100px; height:1px;" color=#000000 size=1"> <font color=#999AAA >提示:如何在自定义Tomcat中部署外部的web项目呢? 一、怎么部署项目? <font color=#999AAA >示例:通常我们部署项目是在Tomcat的webapps下面将打好的1个或多个war包进去,也可以配置响应的上下文以及具体的项目路径,然后tomcat会根据指定的路径去访问,这期间Tomcat是怎么来根据这个路径去解析这些项目?怎么去根据不同的url去找到不同的项目以及处理不同的请求? 二、分析以及思路 1.Tomcat的配置文件 精简后的server.xml <?xml version="1.0" encoding=

每个人都应该知道网站建设的制作流程与方法!

ぐ巨炮叔叔 提交于 2020-12-19 23:19:23
企业网站是客户获悉众多信息的主要渠道之一,个人网站是专业领域的精华呈现,而网站的建设与维护,其实是行业及个人的梦想延伸,一个更为宽广的世界就此形成。尤其是在互联网转型期间,掌握网站建设的流程与方法,对于实现全网联动互通、营销推广等,都具有特别重要的意义。 简而概之,从网站建设的起点开始,一条新时代的起跑线正清晰呈现。想获取客户增量?建设网站!想掌握客户信息?建设网站!想吸引更多流量?网站建设!想实现全网覆盖?网站建设! 在以网站建设为核心的PC站点、移动站点、微信站点、APP等多端模式形成后,全面的生态发展才算迈出第一步,先进的智能营销才是落在实处,梦想的舞台才算初具规模! 1、网站建设的定义 网站建设是指使用标识语言(markuplanguage),通过一系列设计、建模、和执行的过程将电子格式的信息通过互联网传输,最终以图形用户界面(GUI)的形式被用户所浏览。简单来说,网页设计的目的就是产生网站。简单的信息如文字,图片(GIF,JPEG,PNG)和表格,都可以通过使超文件标示语言、可扩展超文本标记语言等标示语言放置到网站页面上。而更复杂的信息如矢量图形、动画、视频、声频等多媒体档案则需要插件程序来运行,同样地它们亦需要标示语言移植在网站内。 2、网站建设流程 那么,网站建设制作的流程与方法有哪些?如何掌握最全面、先进的建站技术与信息呢? 许多企业及个人都迫切地想拥有自己的网站

震惊,小白看了都知道的!!Mysql6000w数据表的查询优化到0.023S

柔情痞子 提交于 2020-12-19 11:02:37
前言 很抱歉现在才把这篇文章发出来,这几天事情比较多,周四把任务完成才得空写一写,闲话不多说请看下↓↓↓ 详细需求 需求: 系统中有一个专门存车流量的库(没有主键),其中一个历史表数据量太大,表空间占据太大,每天有500w的数据写入,然后老大给我安排了个任务,让我写个按天分表的定时任务,每次把一天的数据转移到按天生成的表中,并删除原表中的数据,主要目的是不想再增长表空间了,保持一个平衡,因为每天删500w也会加500w 表空间和数据量: 实现思路 我本人实现的做法流程,如图 实现伪代码(删减了部分代码): /** * 转移数据 每天凌晨3点 每次只能转移一天的数据 */ @Scheduled ( cron = "0 0 3 * * ?" ) public void dataTransfer ( ) throws Exception { System . out . println ( "定时器开始运行------------------------------------------" ) ; String tabaleName = "XXX" ; String isTable = getTableName ( tabaleName ) ; // 当返回为空时,代表该表不存在,则创建 if ( ObjectUtils . isNull ( isTable ) ) {

读书笔记《SpringBoot编程思想》

给你一囗甜甜゛ 提交于 2020-12-19 08:27:01
[toc] 一、 springboot总览 1.springboot特性 独立的spring应用 springboot可以以jar包的形式独立运行,使用 java -jar xxx.jar 就可以成功运行项目, 内嵌servlet容器 使我们在应用项目的主程序中运行main函数即可快速运行。 内嵌web容器 直接嵌入tomcat、jetty等web容器(不需要部署war文件) 提供固话的starter依赖 简化maven配置,使常见的依赖聚集在一起,形成单条依赖 组件自动装配 Spring Boot会根据我们项目中类路径的jar包/类,为jar包的类进行自动配置Bean,大大简化了配置 应用监控 springboot提供了基于HTTP、ssh、telnet对运行时的项目进行监控。 不需要配置xml 可以完全不使用xml配置,只需要自动配置和Java config 2.准备运行环境 JDK1.8 MAVEN 二、理解独立的spring应用 1.应用类型 非web应用 : 主要用于服务提供、调度任务、消息处理 web应用 : 内嵌servlet或web容器,对外提供HTTP服务 2.@RestController @RestController注解用作类的请求控制 @RequestMapping注解用作方法的请求映射 @ResponseBody注解用作方法的返回对象映射 当有

解决新建Maven项目webapp-- index.jsp报错

只愿长相守 提交于 2020-12-19 08:18:27
现在,随着项目开发的不断增长,项目变得庞大,jar包管理起来也很费时。使用maven工程可以很轻松的帮助我们管理jar包,省时。 今天,我在公司电脑新建的maven工程,新建完后 index.jsp报了个错,以前也遇到过,现在写篇随笔记录下,希望能新接触的同学有所帮助。 1.先贴出报了什么错    2。解决步骤: 先解决项目包结构不完整的问题: 点击项目,右键--Build Path--Configure Build Path 选中图中要的点击,然后点击旁边的Libraries ,双击JRE System Library ,切换成更高级的jre ,最后Finish ,最后Apply. 解决index.jsp报错有两个方法: 1.为项目添加Tomcat支持: 第一步:选中项目点击右键,选择“Build Path”,选择“configure build path”。 第二步:点击Libraries选项卡,点击Add Library按钮 第三步:选择Server Runtime,接着选择tomcat,如图 第四步:点击Next ,添加tomcat ,finish 最后Apply and Close,报错就会消失了。 还有一种方法:直接在pom.xml文件中添加jar包支持 <dependency> <groupId>javax.servlet</groupId> <artifactId

【Java Web】简易商品信息管理系统——首个Web项目

点点圈 提交于 2020-12-19 06:23:50
###正文之前 在学习了一段时间的Java Web的内容之后,当然需要有个项目来练练手,我相信大多数人的首选项目都是信息管理系统吧,所以我选择了商品信息管理系统 目前项目源码已全部上传至GitHub,欢迎大家来 fork —— 商品信息管理系统 ###正文 ####项目构思 简易的管理系统,结构为 Servlet + JSP + MySQL ,使用IntelliJ IDEA,搭建起了这个项目,源码中有很详细的注释,如果刚开始学习JavaWeb的内容,学一下Servlet,再搭配这个项目,岂不是美滋滋,有需要就拿去,如果能够有帮助,在fork的同时也赏一个Star吧! 接下来就介绍一下过程: #####1. 数据库连接 在这个项目中,并不是单独编写Java程序来连接数据库,而是使用 c3p0-config.xml 文件来配置数据库连接池,使用 QueryRunner 来执行数据库操作 在运行项目之前,需要在图中所示文件中设置你自己的本地数据库名称和密码,否则,无法连接数据库 #####2. JAR文件 在构建项目时,需要导入所需的Library #####3. 建表 在创建数据库时,也需要一张表来配合运行项目,在项目中也给出了这张表的结构 #####4. 建包 采用MVC设计模式,建包时我分成了这几个方面: dao page product service servlet

JavaWeb入门

坚强是说给别人听的谎言 提交于 2020-12-19 06:22:08
JSP 语法 JSP Scriptlet 需要用 ;结尾 <% java code %> JSP Expression 一行,两行那种表达式 不需要用 ; 结尾 <%= expression %> JSP 和 Servlet 区别与联系 JSP 经过编译之后就 变成了 Servlet Servlet 本质上就是一个 Java的类 (是一个完整的Java类 class) JSP 擅长前端的页面显示,Servlet 更擅长后端的逻辑控制 技术在不断扩展,会越来越复杂 5. 部署 Deployment 最开始的时候,我们的开发是在本地IDE里面进行开发的,如果需要访问,本质上也是 IDE 集成了服务器,然后我们自己访问自己,localhost. 将项目放到 Tomcat 服务器中 我们可以将文件进行打包(Java Archive -- JAR), 把这些文件放到Tomcat目录下,这样我们可以直接通过运行Tomcat进行访问我们的网站。 WAR (Web Application Archive) 再通过 WAR 文件将进行部署的时候,不能再程序运行的时候进行修改 -- 所以即使做一个非常小的修改,也需要重新生成 WAR 文件以及重新部署 ### 一些云服务计算机的选择 阿里云 国内首推 华为云 价格实惠 腾讯云 也可以 亚马逊 没有域名 Ucloud 游戏开发时,服务器首推

Java之Filter过滤器

醉酒当歌 提交于 2020-12-19 04:48:56
Filter过滤器   配置方式:web.xml <filter>   <filter-name>Demo097</filter-name>   <filter-class>cn.xinx.web.FilterDemo097</filter-class> </filter> <filter-mapping>   <filter-name>Demo097</filter-name>   <!-- 拦截路径 -->   <url-pattern>/*</url-pattern> </filter-mapping>   过滤器生命周期     init:在服务器启动后,会创建Filter对象,然后调用init方法;     doFilter:每一次请求被拦截资源时,会执行;     destroy:在服务器正常关闭后,Filter对象被销毁;释放资源;   注解方式:     @WebFilter("/*")  访问所有资源之前,都会执行该过滤器   过滤器配置 具体资源路径: /index.jsp  只有访问index.jsp资源时,过滤器才会被执行 拦截目录: /xin/*  访问/xin下的所有资源时,过滤器都会被执行 后缀名拦截: *.jsp  访问所有后缀名为jsp资源时,过滤器都会被执行 拦截所有资源:/*  访问所有资源时,过滤器都会被执行   拦截方式配置: 

Mybatis的关联映射

社会主义新天地 提交于 2020-12-19 04:34:09
##Mybatis的关联映射 实际的开发中,对数据库的操作常常会涉及到多张表,这在面向对象中就涉及到了对象与对象之间的关联关系。针对多表之间的操作,MyBatis提供了关联映射, 通过关联映射就可以很好的处理对象与对象之间的关联关系。 ###1.1 关联关系概述 在关系型数据库中,多表之间存在着三种关联关系,分别为一对一、一对多和多对多,如下图所示: 三种关系如下: 一对一:在任意一方引入对方主键作为外键。 一对多:在“多”的一方,添加“一”的一方的主键作为外键。 多对多:产生中间关系表,引入两张表的主键作为外键,两个主键成为联合主键或使用新的字段作为主键。 在Java中,通过对象也可以进行关联关系描述,如图下图所示: 一对一的关系:就是在本类中定义对方类型的对象,如A类中定义B类类型的属性b,B类中定义A类类型的属性a。 一对多的关系:就是一个A类类型对应多个B类类型的情况,需要在A类中以集合的方式引入B类类型的对象,在B类中定义A类类型的属性a。 多对多的关系:在A类中定义B类类型的集合,在B类中定义A类类型的集合。 ###1.2 一对一 在现实生活中,一对一关联关系是十分常见的。例如,一个人只能有一个身份证,同时一个身份证也只会对应一个人 <resultMap>元素中,包含了一个<association>子元素,MyBatis就是通过该元素来处理一对一关联关系的。 在