
JavaWeb技术原理分析
老莫1688
生命不息 学习不止
展开
-
【web开发原理】B/S架构原理分析
欢迎关注公众号:----------------------------------------------正文---------------------------------------------------- Web的工作原理1.工作过程:如下图所示描述了Web的工作原理。 (1) 用户打开计算机(客户机),启动浏览器程序,并在浏览器中指定一个URL(...原创 2016-07-08 19:22:50 · 22176 阅读 · 0 评论 -
【web容器】Tomcat Connector的三种运行模式
欢迎关注公众号:Tomcat是一个小型的轻量级应用服务器,也是JavaEE开发人员最常用的服务器之一。不过,许多开发人员不知道的是,Tomcat Connector(Tomcat连接器)有bio、nio、apr三种运行模式,那么这三种运行模式有什么区别呢,我们又如何修改Tomcat Connector的运行模式来提高Tomcat的运行性能呢?下面,我们先大致了解Tomcat Con...原创 2017-02-16 20:23:21 · 1071 阅读 · 0 评论 -
【Session】多服务器节点间session共享
在做了web集群后,你肯定会首先考虑session同步问题,因为通过负载均衡后,同一个IP访问同一个页面会被分配到不同的服务器上,如果session不同步的话,一个登录用户,一会是登录状态,一会又不是登录状态。所以本文就根据这种情况给出三种不同的方法来解决这个问题: 一、利用数据库同步session 在做多服务器session同步时我没有用这种方法,如果非要用这种方法的话,我想过二种方法: ...原创 2017-01-12 09:14:09 · 7872 阅读 · 1 评论 -
【Session】深入分析session与cookie(1)
虽然session机制在web应用程序中被采用已经很长时间了,但是仍然有很多人不清楚session机制的本质,以至不能正确的应用这一技术。本文将详细讨论session的工作机制并且对在Java web application中应用session机制时常见的问题作出解答。 一、术语session 在我的经验里,session这个词被滥用的程度大概仅次于trans原创 2017-01-12 09:03:23 · 376 阅读 · 0 评论 -
【Session】深入分析session与cookie(2)
摘要: Session 与 Cookie 不管是对 Java Web 的初学者还是熟练使用者来说都是一个令人头疼的问题。在初入职场时恐怕很多程序员在面试的时候都被问到过这个问题。其实这个问题回答起来既简单又复杂,简单是因为它们本身只是 HTTP 协议中的一个配置项,在 Servlet 规范中也只是对应到一个类而已;说它复杂原因在于当我们的系统大到需要用到很多 Cookie 的时候,我们不得不考虑 ...原创 2017-01-20 20:12:19 · 418 阅读 · 0 评论 -
【Rest】REST和SOAP Web Service的区别比较
本文转载自他人的博客,ArcGIS Server 推出了 对 SOAP 和 REST两种接口(用接口类型也许并不准确)类型的支持,本文非常清晰的比较了SOAP和Rest的区别联系!////////////////////////////////////////////////////////////////////////////////////////////////////////////...原创 2017-05-19 10:14:08 · 2449 阅读 · 0 评论 -
session 生命周期,cookie详解
http://my.oschina.net/u/576942/blog/211863http://blog.sina.com.cn/s/blog_599ed7120100anxf.html欢迎关注公众号:原创 2015-10-22 13:44:08 · 478 阅读 · 0 评论 -
【设计】RESTful API的十个最佳实践
WebAPI在过去几年里非常的盛行,我们很多以往的技术手段都慢慢的转换为使用WebAPI来开发,因为它的语法简单规范化,以及轻量级等特点,这种方式收到了广泛的推崇。通常我们使用RESTFul(Representational State Transfer)的设计方式来设计Web api,这通常用来分离API结构了业务逻辑,它使用典型的HTTP方法,诸如GET,POST.DELETE,PU...原创 2017-07-12 10:36:04 · 711 阅读 · 0 评论 -
【权限设计】采用BigInteger进行的权限设计
最近看到了一个项目的权限是根据bigineger来进行计算的菜单权限,觉得还是不错,存储上只需要存储在一个字段里就可以了,通过计算算出该角色的菜单权限即可,效率也非常的快,放在session中也非常的小,下面简单说一下思路。 首先,将界面中选好的菜单树,勾选完成后传到后台,后台通过转成字符串数组来进行设值 [java] view plain c原创 2017-09-04 10:08:35 · 559 阅读 · 0 评论 -
【Thymeleaf】新一代Java模板引擎Thymeleaf
Thymeleaf是一款用于渲染XML/XHTML/HTML5内容的模板引擎。类似JSP,Velocity,FreeMaker等,它也可以轻易的与Spring MVC等Web框架进行集成作为Web应用的模板引擎。与其它模板引擎相比,Thymeleaf最大的特点是能够直接在浏览器中打开并正确显示模板页面,而不需要启动整个Web应用。Thymeleaf初探相比于其他的模板引擎,Thymelea...转载 2017-09-22 13:22:27 · 571 阅读 · 0 评论 -
【JS】JS——正则详解
文章内容摘自阮一峰大大—RegExp对象,总结一下方便自己记忆:1.正则匹配规则字面量字符串/dog/ 匹配 ‘dog’元字符:点字符(.) 匹配 除回车(\r)、换行(\n) 、行分隔符(\u2028)和段分隔符(\u2029)以外的所有字符。位置字符(^ / $) ^/$ 表示字符串开始/结束的位置选择符(|) 表示或关系,即cat|转载 2017-10-10 16:18:29 · 809 阅读 · 0 评论 -
微信公众号开发--获取用户信息中文乱码的解决方案
问题描述不过获取到的数据却是中文乱码 而用java程序获取的结果也是一样的解决方案这个乱码主要是由于微信使用UTF-8来编码返回字符串,我们获取到返回的字节流后,转成字符串的时候默认使用ISO-8859-1解码,所以出现乱码,所以需要做的是用UTF-8解码字节流即可。我们对获取的结果进行编码关键代码 String token = AccessToke...原创 2017-12-13 11:12:25 · 3273 阅读 · 1 评论 -
【前端】浏览器同源政策及其规避方法
浏览器安全的基石是"同源政策"(same-origin policy)。很多开发者都知道这一点,但了解得不全面。本文详细介绍"同源政策"的各个方面,以及如何规避它。一、概述1.1 含义1995年,同源政策由 Netscape 公司引入浏览器。目前,所有浏览器都实行这个政策。最初,它的含义是指,A网页设置的 Cookie,B网页不能打开,除非这两个网页转载 2017-12-22 16:24:43 · 290 阅读 · 0 评论 -
【前端】ajax跨域,这应该是最全的解决方案了
原文出处: 撒网要见鱼 前言从刚接触前端开发起,跨域这个词就一直以很高的频率在身边重复出现,一直到现在,已经调试过N个跨域相关的问题了,16年时也整理过一篇相关文章,但是感觉还是差了点什么,于是现在重新梳理了一下。个人见识有限,如有差错,请多多见谅,欢迎提出issue,另外看到这个标题,请勿喷~题纲关于跨域,有N种类型,本文只专注于ajax请求跨域(,ajax跨域只是属于浏...转载 2017-12-22 16:25:45 · 15291 阅读 · 1 评论 -
thymeleaf 学习笔记-基础篇(中文教程)
(一)Thymeleaf 是个什么? 简单说, Thymeleaf 是一个跟 Velocity、FreeMarker 类似的模板引擎,它可以完全替代 JSP 。相较与其他的模板引擎,它有如下三个极吸引人的特点: 1.Thymeleaf 在有网络和无网络的环境下皆可运行,即它可以让美工在浏览器查看页面的静态效果,也可以让程序员在服务器查看带数据的动态页面效果。这是由于它支持...转载 2017-12-14 17:00:11 · 4284 阅读 · 1 评论 -
事务超时
事务超时 本文概览:介绍了超时有关的概念:@Transaction的timeout、mybatis的timeout、mysql的innodb_lock_wait_timeout。1 问题1.1 背景在一个事务中完成解析一个大文件,分批存入到数据库。遇到问题,执行时间比较长,就讨论了事务超时的问题,担心执行时间太长,事务超时自动回滚了。为了考虑这个问题,需要考虑如下...转载 2018-08-29 10:35:07 · 12736 阅读 · 0 评论 -
【HTTP】单点登录原理与简单实现
一、单系统登录机制 1、http无状态协议 web应用采用browser/server架构,http作为通信协议。http是无状态协议,浏览器的每一次请求,服务器会独立处理,不与之前或之后的请求产生关联,这个过程用下图说明,三次请求/响应对之间没有任何联系 但这也同时意味着,任何用户都能通过浏览器访问服务器资源,如果想保护服务器的某些资源,必须限制浏览器请求;要限...转载 2016-12-18 21:38:07 · 3116 阅读 · 0 评论 -
【HTTP】(1)HTTP 协议入门
引言HTTP是一个属于应用层的面向对象的协议,由于其简捷、快速的方式,适用于分布式超媒体信息系统。它于1990年提出,经过几年的使用与发展,得到不断地完善和扩展。目前在WWW中使用的是HTTP/1.0的第六版,HTTP/1.1的规范化工作正在进行之中,而且HTTP-NG(Next Generation of HTTP)的建议已经提出。HTTP协议的主要特点可概括如下:1.支持客户/服...原创 2016-11-01 21:14:13 · 576 阅读 · 0 评论 -
【Web开发原理】web发展历史
Web的诞生 提到Web,不得不提一个词就是“互联网”。Web是World Wide Web的简称,中文译为万维网。“万维网”和我们经常说的“互联网”是两个联系极其紧密但却不尽相同的概念。今天“互联网”三个字已经承载了太多的内涵,提到互联网,我们通常想到的一种战略思维,或者是一种颠覆传统的商业模式。抛开那些纷繁凌乱的商业化概念,回归技术本身,互联网就是指通过TCP/IP协议族互相连接在一起...原创 2016-06-05 19:01:19 · 6768 阅读 · 0 评论 -
【Web开发原理】HTTP协议详解
一、概念协议是指计算机通信网络中两台计算机之间进行通信所必须共同遵守的规定或规则,超文本传输协议(HTTP)是一种通信协议,它允许将超文本标记语言(HTML)文档从Web服务器传送到客户端的浏览器。HTTP协议,即超文本传输协议(Hypertext transfer protocol)。是一种详细规定了浏览器和万维网(WWW = World Wide Web)服务器之间互相通信的规则...转载 2016-07-23 11:28:58 · 2492 阅读 · 0 评论 -
【Web容器原理】web容器设计(1)
开发一个web容器涉及很多不同方面不同层面的技术,例如通信层的知识,程序语言层面的知识等等,且一个可用的web容器是一个比较庞大的系统,要说清楚需要很长的篇幅,本文旨在介绍如何设计一个web容器,只探讨实现的思路,并不涉及过多的具体实现。把它分解划分成若干模块和组件,每个组件模块负责不同的功能,下图列出一些基本的组件,并将对每个组件进行介绍。 连接接收器主要的职责就是监听是否有客...原创 2016-07-07 10:24:46 · 2836 阅读 · 0 评论 -
【JSP原理】EL表达式入门知识
一、el从scope中取变量的顺序:pageScope , requestScope, sessionScope, applicationScope如:${sessionScope.username}==========================================================================二、如何用el表达式取变量、数组、map...原创 2016-07-24 20:51:06 · 2840 阅读 · 0 评论 -
【缓存技术原理】浏览器端缓存机制详解
欢迎关注公众号:-----------------------------------------正文-------------------------------------------------- 浏览器缓存是浏览器端保存数据用于快速读取或避免重复资源请求的优化机制,有效的缓存使用可以避免重复的网络请求和浏览器快速地读取本地数据,整体上加速网页展示给用户。浏览器端缓存的机...原创 2016-07-25 09:07:56 · 14807 阅读 · 1 评论 -
【Web容器】Tomcat源码分析(4)-启动与停止服务
前言 熟悉Tomcat的工程师们,肯定都知道Tomcat是如何启动与停止的。对于startup.sh、startup.bat、shutdown.sh、shutdown.bat等脚本或者批处理命令,大家一定知道改如何使用它,但是它们究竟是如何实现的,尤其是shutdown.sh脚本(或者shutdown.bat)究竟是如何和Tomcat进程通信的呢?本文将通过对Tomcat7.0的源码阅读,深...转载 2016-07-30 19:23:22 · 1150 阅读 · 0 评论 -
【Web容器】Tomcat源码分析(3)-生命周期管理
前言 从server.xml文件解析出来的各个对象都是容器,比如:Server、Service、Connector等。这些容器都具有新建、初始化完成、启动、停止、失败、销毁等状态。tomcat的实现提供了对这些容器的生命周期管理,本文将通过对Tomcat7.0的源码阅读,深入剖析这一过程。 Tomcat生命周期类接口设计 我们先阅读图1,从中了解Tomcat涉...原创 2016-07-30 19:21:42 · 3002 阅读 · 0 评论 -
【Web容器】Tomcat源码分析(2)-server.xml文件的加载与解析
前言 作为Java程序员,对于tomcat的server.xml想必都不陌生。本文基于Tomcat7.0的Java源码,对server.xml文件是如何加载和解析进行分析。 加载过程分析 Bootstrap的load方法用于加载tomcat的server.xml,实际是通过反射调用Catalina的load方法,代码如下: [java] view plain cop...转载 2016-07-30 19:19:40 · 954 阅读 · 0 评论 -
【Web容器】Tomcat源码分析(1)-类加载体系
前言Tomcat遵循J2EE规范,实现了Web容器。很多有关web的书籍和文章都离不开对Tomcat的分析,初学者可以从Tomcat的实现对J2EE有更深入的了解。此外,Tomcat还根据Java虚拟机规范实现了经典的双亲委派模式的类加载体系。本文基于Tomcat7.0的Java源码,对其类加载体系进行分析。概述 首先简单介绍下Java虚拟机规范中提到的主要类加载器; ...原创 2016-07-28 14:18:44 · 711 阅读 · 0 评论 -
【Web容器】Tomcat源码分析(5)-请求原理分析(上)
前言 谈起Tomcat的诞生,最早可以追溯到1995年。近20年来,Tomcat始终是使用最广泛的Web服务器,由于其使用Java语言开发,所以广为Java程序员所熟悉。很多人早期的J2EE项目,由程序员自己实现Jsp页面或者Servlet接受请求,后来借助Struts1、Struts2、Spring等中间件后,实际也是利用Filter或者Servlet处理请求,大家肯定要问了,这些Serv...原创 2016-07-30 19:25:09 · 743 阅读 · 0 评论 -
【Web容器】Tomcat源码分析(6)-请求原理分析(中)
前言 本文继续讲解TOMCAT的请求原理分析,建议朋友们阅读本文时首先阅读过《Tomcat7.0源码分析——请求原理分析(上)》和《Tomcat7.0源码分析——请求原理分析(中)》。在《Tomcat7.0源码分析——请求原理分析(中)》一文我简单讲到了Pipeline,但并未完全展开,本文将从Pipeline开始讲解请求原理的剩余内容。管道 在Tomcat中管道Pipelin原创 2016-07-30 19:27:43 · 573 阅读 · 0 评论 -
【Web容器】Tomcat源码分析(7)-请求原理分析(下)
前言 本文继续讲解TOMCAT的请求原理分析,建议朋友们阅读本文时首先阅读过《Tomcat7.0源码分析——请求原理分析(上)》和《Tomcat7.0源码分析——请求原理分析(中)》。在《Tomcat7.0源码分析——请求原理分析(中)》一文我简单讲到了Pipeline,但并未完全展开,本文将从Pipeline开始讲解请求原理的剩余内容。管道 在Tomcat中管道Pipeline是...原创 2016-07-30 19:30:49 · 769 阅读 · 0 评论 -
Java Web开发-目录
本系列文章从原理以及应用角度剖析JAVA WEB开发过程中所涉及的技术。一、Web开发原理分析 -web开发技术发展 -B/S架构原理分析 -理解HTTP协议 -session与cookie原理剖析二、Servlet原理分析三、Web容器原理分析四、JSP原理分析五、Ajax原理分析六、缓存技术原理分析 --mememcached...原创 2016-05-11 16:48:14 · 542 阅读 · 0 评论 -
【WEB开发原理】Session与Cookie详解
session原创 2016-08-03 10:09:25 · 348 阅读 · 0 评论 -
【WEB开发原理】servlet原理
1、servlet容器 1.1 容器的启动 1.2 web应用的启动2、servlet原理 2.1 servlet生命周期 2.2 servlet体系结构2.3、filter与servlet原创 2016-09-09 14:18:26 · 435 阅读 · 0 评论 -
URL中文乱码及特殊字符处理
一、中文乱码IE高版本(应该是9以上,不确定),在get方式请求中中文传到后台容易出现乱码问题。解决方法如下:1、第一种,换成post方式如果可以得话换成post方式就可以。如果采用表单或者ajax,都可以把数据放到表单域或者ajax的data中,采用post请求。注:经测试,把数据放入form表单中,使用jQuery的serialize()方法获取要传输的数据,通过ajax的GE...原创 2018-09-09 15:33:49 · 928 阅读 · 0 评论