分享web开发知识

注册/登录|最近发布|今日推荐

主页 IT知识网页技术软件开发前端开发代码编程运营维护技术分享教程案例
当前位置:首页 > 教程案例

对web开发的个人反省

发布时间:2023-09-06 01:49责任编辑:彭小芳关键词:暂无标签

Tomcat概括:

Tomcat为一款开源的应用服务器,用如下简单的流程来表示:

至于与浏览器端的交互,我们可以写一个简单的myTomcat来盗取浏览器发送给Tomcat的信息,具体代码如下:

package tom;import java.net.*;import java.io.*;public class mytomcat { ???public static void main(String args[]) ???{ ???????try{ ???????????ServerSocket ss=new ServerSocket(8080); ???????????System.out.println("Sever startup in 1428ms"); ???????????Socket s=ss.accept(); ???????????InputStream is=s.getInputStream(); ???????????InputStreamReader isr=new InputStreamReader(is); ???????????BufferedReader br=new BufferedReader(isr); ???????????System.out.println(br.readLine()); ???????????System.out.println(br.readLine()); ???????????System.out.println(br.readLine()); ???????????System.out.println(br.readLine()); ???????????System.out.println(br.readLine()); ???????????System.out.println(br.readLine()); ???????????System.out.println(br.readLine()); ???????????System.out.println(br.readLine()); ???????}catch(Exception e){} ???}}

通过对打印信息的分析,可以得出诸多结论,其中时间戳这个概念最为有意思,访问了浏览器,便会被浏览器所记忆,浏览器作为不稳定连接,每次都会以“时间戳”返回个服务器。如果我们自己写一个myIE。若是在一个网站投票,设定好将要投的字符串,然后每次修改时间戳,就会实现刷票功能。

同时我们写一个简单的myIE程序,也可以骗取Tomcat发给浏览器的信息。这些信息基本意义都是与发送信息相对,代码如下:

package myir;import java.net.*;import java.io.*;public class MyIE { ??public static void main(String args[]) ??{ ??????try { ??????????Socket s=new Socket("127.0.0.1",8080); ??????????OutputStream os =s.getOutputStream(); ??????????OutputStreamWriter osw=new OutputStreamWriter(os); ??????????PrintWriter pw=new PrintWriter(osw,true); ??????????pw.println("GET /test.html HTTP/1.1"); ??????????pw.println("Accept: */*"); ??????????pw.println("Accept-Language: zh-CN"); ??????????pw.println("User-Agent:Mozilla/4.0 (compatible; MSIE 8.0;" + ??????????????????"Windows NT 6.1; Trident/4.0; SLCC2; .NET CLR 2.0.50727; .NET CLR" + ??????????????????"3.5.30729; .NET CLR 3.0.30729; .NET)"); ??????????pw.println("Accept: */*"); ??????????pw.println("Accept: */*"); ??????} ??}}

这样来讲,tomcat的整个机理便没那没难以理解了。

Servelt概括:

Servlet为web后台的衍生技术,它是java中的一个类,一般来说,当我们在运行Tomcat的时候,有用户访问浏览器,servelt就调用java的calss文件。因为是运行结果,所以在页面的提前设计中,我们也不知道会得到什么样的内容,所以通常吧这样的页面叫做动态页面。

另外有个问题,如果有用户访问浏览器,servelt就得调用一次class文件,得生成对象,然后调用,然后再经过jvm删除掉,这样显然是低效的做法,因此tomcat的开发者的设计是,

之前就把servelt的类创建成对象放在内存中,这样再用户访问的时候我们就可以直接调用这个对象了。

然而,这样的方式又会衍生出两个问题,(1)如果一个系统中,servelt的数量过多,必然有一些无用的,或很少用到的,生成太多会造成冗余。(2)当多个用户同时访问servelt,一个对象是不够用的,必然得使用多线程。

针对这两个问题解决的方法是,servelt会再第一次被调用的时候创建对象,这样就很巧妙的解决了以上问题。

XML概述:

当今的数据库都是二维表存放数据的,而xml是用树形结构存放数据的,加之xml的共用性,所以说xml可作为轻量级数据库。实现两个不同数据库传输的媒介。而在非数据库领域里,xml也可以用来协调不同计算机语言,不同服务器之间的数据融合。

Xml文件负责存放数据,DTD和schema负责约束,css和xsl负责转换成表现形式,dom和sax负责解析,这些技术完整的构成了xml体系。

DOM的思想是将xml的内容形成一个对象读取到内存中,这个对象映射这xml的树形结构,可以通过调用对象的成员的方法来访问这些内容。

对web开发的个人反省

原文地址:https://www.cnblogs.com/masking-timeflows/p/8848693.html

知识推荐

我的编程学习网——分享web前端后端开发技术知识。 垃圾信息处理邮箱 tousu563@163.com 网站地图
icp备案号 闽ICP备2023006418号-8 不良信息举报平台 互联网安全管理备案 Copyright 2023 www.wodecom.cn All Rights Reserved