1. class.forname的做用?为何要用?html
1)、获取Class对象的方式:类名.class、对象.getClass()、Class.forName(“类名”);
2)、经过Class对象自审
3)、动态调用方法java
2. 在oracle大数据量下的分页解决方法mysql
页面
DB a:自身特色(limit,rownum,row_num函数) b:ResultSet
数据量少,缓存DB: { r* _2 o: B0 r. V; }9 Aweb
3. mySQl的分页是怎么实现的?ajax
Select * from limit 0,3正则表达式
4. cookie被禁止后怎样使用session?sql
request.getSession().setAttribute(“aa”, “ss”);
response.sendRedirect(response.encodeURL(“”));数据库
5. 项目开发经历了哪几个阶段编程
需求分析及变动管理
项目模型及业务流程分析
系统分析及建模设计
界面设计及代码开发
系统测试,部署和文档编写
维护浏览器
6. 谈谈项目的体系统架构:客户层,表示层,业务层,数据层
客户层:用来实现企业级应用系统的操做界面和客户表示,(如HTML和能够显示WEB页面的浏览器).
表示层:主要是为企业提供WEB服务,包括JSP页面和Servlet技术.
业务层:也叫应用层封装了企业全部的业务逻辑(JAVA Bean,JAVA类).
数据层:用来储存企业数据信息,(如oracle,mysql).
7. J2EE规范中的组件技术在项目中用到了哪些?
JSP,servlet.,JDBC,XML, JNDL,JAVABEAN
8. TCP/IP通信和UDP通迅的区别?
1) TCP/IP面向链接,可靠链接,UDP面向不链接,不可靠链接
2) 创建链接经历3次握手,udp无需链接,ip和port封装在datagram数据包中,自寻址。
9. 浏览器和WEB服务器是用什么协议通迅的?
应用层使用的是 HTTP协议,传输和路由使用的是TCP/IP
10. 网络通信中,端口有什么含义。端口的取值范围?
端口用于区分基于TCP/IP通信的不一样应用程序, 能够认为是计算机与外界交流的出口。端口取值范围>1024,系统使用的端口范围0 — 1024
11. 说出3个常见协议的默认端口。
21 ftp File Transfer [Control] 文件传输协议(控制)
80 http World Wide Web HTTP 全球信息网超文本传输协议
25 smtp Simple Mail Transfer 简单邮件发送协议
12. socket是什么,它有什么做用?
Socket是通信的端点。是黑盒子的出入口。对于应用层来讲,socket封装了底层的全部通信细节。
13. TCP/IP通信的基本步骤是什么?
1) 向操做系统注册:让操做系统将一个端口和服务器通信进程绑定。这个端口就表明了这通信进程。ServerSocket ss = new ServerSocket(port),服务端通信进程在port端口监听。
2) Socket socket = serverSocket.accept();取出一个客户端的socket链接。若是没有客户端的链接到来,就一直等待,也就是阻塞状态
3)和服务器创建链接:Socket socket = new Socket(ip地址,port);
若是建立socket对象成功,表明链接创建。若是抛出异常,链接建 立不成功。
4)在发送方经过socket获取输出流对象,socket.getOutputStream()并执行写入操做
5)在接收放经过socket获取输入流,socket.getInputStream()并执行读取操做
14. UDP通信的基本步骤是什么?
建立客服端的DatagramSocket,建立时,定义客服端的监听端口
建立服务端的DatagramSocket,建立时,定义服务端的监听端口
在服务端定义DatagramPaket对象,封装待发送的数据包
服务端讲数据发送出去
客服端接收数据
15. JDBC访问数据库的基本步骤是什么(手写)?
以查询为例:
步骤一:注册并加载驱动程序
Class.forName(“oracle.jdbc.driver.OracleDriver”)
步骤二:建立链接
Connection conn = DriverManager.getConnection(url,user,password);
步骤三:建立sql语句对象
Statement st = conn.createStatement()
步骤四:提交sql语句
String sql = “select * from tablename”;
ResultSet rs = st.executeQuery(sql);
步骤五:显示结果
While(rs.next()){
}
步骤六:关闭链接
Rs.close();
St.close();
Conn.close();
16. 说说preparedStatement和Statement的区别
1) 提升效率,数据库系统只编译一次sql语句。而经过statement的sql语句每次数据库系统都会编译。
2) 防范sql注入攻击
17. 说说事务的概念,在JDBC编程中处理事务的步骤。
1):事务(Transaction)是并发控制的单位,是用户定义的一个操做序列。这些操做要么都作,要么都不作,是一个不可分割的工做单位。
2) JDBC API中使用事务处理步骤: a. 用false做为参数调用setAutoCommit方法; b. 执行一或多个关于数据库的操做; c. 调用commit方法完成改变; d. 恢复上次提交后的改变,调用rollback()方法
18. 数据库链接池的原理。为何要使用链接池。
数据库链接池在初始化时将建立必定数量的数据库链接放到链接池中,这些数据库链接的数量是由最小数据库链接数来设定的。不管这些数据库链接是否被使用,链接池都将一直保证至少拥有这么多的链接数量。链接池的最大数据库链接数量限定了这个链接池能占有的最大链接数,当应用程序向链接池请求的链接数超过最大链接数量时,这些请求将被加入到等待队列中。为了解决资源的频繁分配,释放所形成的问题,提供高效率的链接分配,实现链接的高效安全避免了数据库频繁创建,关闭的开销
19. servlet和jsp有什么关系?
1;jsp从本质上讲就是一个servlet
2;Jsp经过编译后,会生成.java 文件,它extends与HttpJspBase.
20. 编写一个servlet的步骤。
public calss MyServlet extends HttpServlet(){
public void init(){};
public void destroy(){};
public void doGet(HttpServletRequest req,HttpServletResponse res) throws ServlerException,IOException{};
}
web.xml中配置—-
<servlet>
<serlvet-name> </>
<serlvet-calss></>
</servlet>
<serlvet-mapping>
<serlvet-name></>
<url-pattern>/x</>
</serlvet-mapping>
21.HttpservletResponse的sendError方法的做用
向客户端发送一个错误的HTTP状态码
22.什么状况下使用URL重写
当cookie被禁用后,能够经过URL重写将sessionid附加在URL后发送.
好处:
1.缩短url,隐藏实际路径提升安全性
2 易于用户记忆和键入。
3 易于被搜索引擎收录
其中详细以下
1.经过URL重写,把动态地址转换成更容易被搜索引擎收录的形式-静态页面地址,是一种对搜索引擎友好的方法。google虽然能够抓取动态页面,可是对动态页面的评分通常低于静态页面。因此,对大量信息发布的网站,把网站地址改变成静态的绝对是值得的。
2.若是网站改版或目录结构更改时,不少页面的连接可能会发生变化,许多搜索引擎已索引的页面及用户的历史收藏可能会成为死链。使用URL重写技术,则因为能够构建虚拟的网站目录和结构,可有效的防止因改版而使搜索引擎已索引的页面没法访问的问题,在信息量相同的状况下,反而会增长可索引的页面数量。如:之前可能会经过http://www.xxx.com/news/detail.asp?id=2436访问某个页面,重写后该页面的网址可能会变成 http://www.xxx.com/news/detail/2436.html(甚至能够不用扩展名),以这两种形式的网址访问的真实页面仍然是 http://www.xxx.com/news/detail.asp?id=2436。
3.使用URL重写,经过URL到URL、URL到文件名,甚至文件名到文件名的转换,为网站创建了一种新的层次清晰、紧凑简洁的目录结构,隐藏了真实的目录和文件。同时服务器可根据请求中诸如浏览器类型、源IP地址等特征来决定最终提交给客户的内容,或限制某个列表中主机对WEB服务器的访问,极大地提升了网站的安全性。
4.直接生成静态页面虽然能提升访问速度,但因为该静态页面通常是在信息发布时生成的,会出现页面上的其余信息没法更新的问题,除非之后从新生成全部内容页面(从新生成应该是很耗费资源的)。而经过URL重写技术,尽管是以静态网址发出请求,但经过正则表达式匹配后,对应的仍然是动态网页,所以不存在数据更新的问题。
23.doGet和doPost在何时调用?区别?
方法GET和HEAD应该被全部的通用WEB服务器支持,其余全部方法的实现是可选的。GET方法取回由Request-URI标识的信息。HEAD方法也是取回由Request-URI标识的信息,只是能够在响应时,不返回消息体。POST方法能够请求服务器接收包含在请求中的实体信息,能够用于提交表单,向新闻组、BBS、邮件群组和数据库发送消息。
get和post提交的数据量是不同的.
get好像最多只能在url后跟2K 由于get只能发送一个byte的请求
而post则没有限制
建议用Get方法提交数据时,字节大小不要超过1300,也就是1.3KB。超过这个大小就需用POST方法了
24.response对象的做用
setContentType设置内容格式 如AJAX时response.setContentType(“text/xml;charset=gbk”)
setHeader设置响应头 response.setHeader(“Cache-Control”,”no-cache”)禁用页面缓存
sendError 发送一个错误的HTTP状态码
sendRedirect 重定向
25.jsp中import指令的做用
导入须要引用的类
26 文件上传的步骤与原理
首先<from enctepy=”multiptart/form-data” method=”post”>
表示这个表单用post提交的是 二进制文件.
这种方式提交的话,在serlvet中的request.getparamer(“”);是得不到内容的.必须用 getIntputStream()来获得字节输入流
经过字节输入流获得3部分:1,分界符.2,头(普通表单域,文件上传域).3,消息体(普通表单域的内容,文件上传域的内容).
27.ajax的步骤与原理
1,建立一个XmlHttpRequest对象.
2,调用open方法 (准备发起请求).
open(“提交方式”,”URL地址”,”是否同步(false/true)”).
3,若是是提交方式是post,就须要设置请求头.SetrequestHeard(“content-Type”,application/X-www;1;);
4,设置回调函数 XmlRequest.onredystatechang=XX;
5,在服务器端 response.setContType(“”);
response.setHeard(“”);
6,经过判断XmlHttpRequest.readystatc==4 是否会应.
XmlHttpRequest.status==200 判断状态码.
7,用XmlRequest.responseText 接受文本内容或者是用Xmlrequest.XmlResponse接受Xml内容.