JAVA简答(三)

  1. 什么是JDBC?
    JDBC(Java DataBase Connectivity),是一套面向对象的应用程序接口(API),制定了统一的访问各类关系数据库的标准接口,为各个数据库厂商提供了标准的实现。通过JDBC技术,开发人员可以用纯Java语言和标准的SQL语句编写完整的数据库应用程序,并且真正地实现了软件的跨平台性。
  • 通常情况下使用JDBC完成以下操作:
    ①同数据库建立连接;
    ②向数据库发送SQL语句;
    ③处理从数据库返回的结果;
  • 驱动(Driver)在JDBC中的角色
    jdbc本身是一套接口,驱动其实就是它的实现类,只有提供了驱动才能与对应的数据库建立连接的通道。驱动必须要提供java.sql包下面这些类的实现:Connection, Statement, PreparedStatement,CallableStatement, ResultSet和Driver。
  • Class.forName()方法
    Class.forName(xxx.xx.xx)的作用是初始化参数指定的类,并且返回此类对应的Class 对象,即要求JVM查找并加载指定的类。forName() + newinstance()new的作用相当,如A a =(A) Class.forName ("pacage.A").newInstance()这和 A a =new A();是一样的效果。
    JDBC中使用class.forname()加载驱动。
  1. PreparedStatement比Statement有什么优势?
    PreparedStatements作为statement的子类,继承了statement的所有方法
  • PreparedStatement是预编译的,性能会比Statement好
  • PreparedStatement可以防止sql注入,安全性比Statement高
  • PreparedStatements可以写动态参数化的查询,提高了代码的可扩展性与可维护性
  1. 数据库连接池是什么意思?
    数据库连接的建立、关闭资源消耗巨大。
    传统数据库访问方式:一次数据访问对应一个物理连接,每次操作数据库都要打开关闭该物理连接,系统性能严重受损。
    解决方案:数据库连接池。系统初始运行时,主动建立足够足够的连接,组成一个池,每次应用程序请求数据库连接时,无需重新打开连接,而是从池中取出已有的连接,使用完后,不再关闭,而是归还。

  2. 什么是RMI?

  • 定义:Remote Method Invocation,远程方法调用,是Java所特有的分布式计算技术。其基本原则就是把对象的使用和对象的创建相分离,它允许运行在一个Java虚拟机上的对象调用运行在另一个Java虚拟机上的对象的方法。
  • 开发步骤:
    ①定义一个远程接口(远程接口必须继承接口,每个方法必须抛出远程异常,方法参数和方法返回值都必须是可序列化的
    ②实现远程接口
    ③定义使用远程对象的客户程序
    ④产生远程访问对象的桩和框
    ⑤注册远程对象
    ⑥运行服务器和客户程序
  • RMI体系结构
    ①存根和骨架层(Stub and Skeleton layer):这一层对程序员是透明的,它主要负责拦截客户端发出的方法调用请求,然后把请求重定向给远程的RMI服务。
    ②远程引用层(Remote Reference Layer):RMI体系结构的第二层用来解析客户端对服务端远程对象的引用。这一层解析并管理客户端对服务端远程对象的引用。连接是点到点的。
    ③传输层(Transport layer):这一层负责连接参与服务的两个JVM。这一层是建立在网络上机器间的TCP/IP连接之上的。它提供了基本的连接服务,还有一些防火墙穿透策略。
  • java.rmi.Naming
    该类主要用于存储或获取远程对象的引用,参数是是URL格式的String。
    bindrebind方法注册对象,把对象与一个名字name绑定。比如,通过Naming.rebind("//localhost/MyServer", new ServerOperation());ServerOperation对象赋给一个URI,让客户端可以通过这个URI访问该对象。其中bind需要未绑定的地址,否则将会报错。
  • 分布式垃圾回收(DGC)
    当客户机创建(序列化)远程引用时,会在服务器端 DGC 上调用 dirty()。当客户机完成远程引用后,它会调用对应的 clean() 方法。
  • Marshallingdemarshalling
    Marshalling就是object->xml,把内存对象跨网络传递到另一台主机或者是持久化到存储,demarshalling是其反过程。
  1. 什么是Servlet?
    servlet是基于java语言的web服务器端编程技术,运行在servlet容器中的java类,它能处理客户端的http请求并产生http响应。
  • 体系结构:
    Servlet类 ← GenericServlet类 ← HttpServlet类 ← MyServlet类(自己建的类) (←代表继承)
    ①GenericServlet类实现了Servlet和ServletConfig接口。实现了除了service()之外的其他方法,在创建Servlet对象时,可以继承GenericServlet类来简化程序的代码,但需要实现service()方法。
    ②HttpServlet类继承了GeneriServlet类。实际开发中,通常继承HttpServlet类,重写我们需要的doGet(),doPost()请求即可。
  • 使用过程
    ①init()初试化Servlet
    ②service()相应Servlet请求
    ③destroy()销毁Servlet
  • doGetdoPOST
    分别用于处理get和post请求。Get是路径传参,效率高,安全性差;POST是实体传参,效率低,安全性好。
  • Servlet链(Servlet Chaining):是把一个Servlet的输出发送给另一个Servlet的方法,依次类推。链条上最后一个Servlet负责把响应发送给客户端。提供了将一个servlet的输出重定向为另一个servlet的输入的能力,这样就可以划分工作。
  • 判断Servlet请求来源

request.getRemoteAddr();//ipaddr
request.getRemoteHost();//主机名
request.getRequestURL();//返回全路径
request.getRequestURI();//返回除去host(域名或者ip)部分的路径
request.getContextPath();//返回工程名部分,如果工程映射为/,此处返回则为空
request.getServletPath();//返回除去host和工程名部分的路径

  1. 什么是JSP
  • jsp的9个内置对象

request:封装客户端的请求,其中包含来自GET或POST请求的参数;
response:封装服务器对客户端的响应;
pageContext:通过该对象可以获取其他对象;
session:封装用户会话的对象;
application:封装服务器运行环境的对象;
out:输出服务器响应的输出流对象;
config:Web应用的配置对象;
page:JSP页面本身(相当于Java程序中的this);
exception:封装页面抛出异常的对象。

  • jsp的4个作用域

page代表与一个页面相关的对象和属性。
request代表与Web客户机发出的一个请求相关的对象和属性。
session代表与某个用户与服务器建立的一次会话相关的对象和属性。
application代表与整个Web应用程序相关的对象和属性。

  • jsp 和 servlet
    JSP的本质就是Servlet,是Servlet的一种简化,jsp经编译后就变成了Servlet。
    ① jsp更擅长表现于页面显示,servlet更擅长于逻辑控制。
    ② Servlet中没有内置对象,Jsp中有内置对象
  1. session和cookie有什么区别?
  • 区别:cookie保存在客户端浏览器中,而session保存在服务器上。
  • cookie:实际上是一小段的文本信息。服务器还可以根据需要修改cookie的内容。
    过程:客户端请求服务——>服务器向客户端浏览器颁发一个cookie——>客户端浏览器保存cookie——>客户端请求服务——>客户端发送请求地址和cookie——>服务器检查该cookie,从而判断用户的状态。
    典型的应用如,将用户名和密码信息存入cookie中,下次登录时读取cookie内容能自动填入。
  • session:另一种记录客户状态的机制。不同的是客户端浏览器访问服务器的时候,服务器把客户端信息以某种形式记录在服务器上,这就是session。类似于一个大号的map,里面的键存储的是用户的Session ID。一般Session ID是通过Cookie来传递的。但禁用cookie之后,也可以通过URL传值等方式获取ID从而使用session。
  1. HTTP请求和响应结构
  • HTTP响应由三部分组成:状态行、响应头、响应正文:
    状态行:包括协议版本Version、状态码Status Code、回应短语;
    响应头:包括搭建服务器的软件,发送响应的时间,回应数据的格式等信息;
    响应正文:就是响应的具体数据。
  • HTTP请求由状态行、请求头、请求正文三部分组成:
    状态行:包括请求方式Method、资源路径URL、协议版本Version;
    请求头:包括一些访问的域名、用户***、Cookie等信息;
    请求正文:就是HTTP请求的数据。
  1. HTTP隧道
    有时候需要访问服务器除了80端口之外的其他端口,但是服务器上装有的防火墙软件 会阻止客户端访问除了80端口之外的其他端口,这个时候需要将访问其他端口的协议“包装”一下 变成访问80端口的http协议,这个就是http隧道。

  2. sendRedirect()和forward()方法有什么区别?
    forward(转发):是服务器内部的跳转,浏览器的地址栏不会发生变化,同时可以把request和response传递给后一个请求。
    sendRedirect(重定向):是浏览器方面的跳转,要发送两次请求,地址栏也会发生变化,同时request和response也会发生变化,重新生成新的对象。

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 222,252评论 6 516
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 94,886评论 3 399
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 168,814评论 0 361
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 59,869评论 1 299
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 68,888评论 6 398
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 52,475评论 1 312
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 41,010评论 3 422
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 39,924评论 0 277
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 46,469评论 1 319
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 38,552评论 3 342
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 40,680评论 1 353
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 36,362评论 5 351
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 42,037评论 3 335
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 32,519评论 0 25
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 33,621评论 1 274
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 49,099评论 3 378
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 45,691评论 2 361

推荐阅读更多精彩内容