1、Jsp 方面 1、jsp 有哪些内置对象? 作用分别是什么? 答:JSP 共有以下 9 种基本内置组件(可与 ASP 的 6 种内部组件相对应): request 用户端请求,此请求会包含来自 GET/POST 请求的参数 response 网页传回用户端的回应 pageContext 网页的属性是在这里管理 session 与请求有关的会话期 application servlet 正在执行的内容 out 用来传送回应的输出 config servlet 的构架部件 page JSP 网页本身 exception 针对错误网页,未捕捉的例外 2、jsp 有哪些动作? 作用分别是什么? 答:J
2、SP 共有以下 6 种基本动作 jsp:include:在页面被请求的时候引入一个文件。 jsp:useBean:寻找或者实例化一个 JavaBean。 jsp:setProperty:设置 JavaBean 的属性。 jsp:getProperty:输出某个 JavaBean 的属性。 jsp:forward:把请求转到一个新的页面。 jsp:plugin:根据浏览器类型为 Java 插件生成 OBJECT 或 EMBED 标记 3、JSP 中动态 INCLUDE 与静态 INCLUDE 的区别? 答:动态 INCLUDE 用 jsp:include 动作实现 它总是会检查所含文件中的变化,
3、适合用于包含动态页面,并且可以带参数 静态 INCLUDE 用 include 伪码实现,定不会检查所含文件的变化,适用于包含静态页面 4、两种跳转方式分别是什么?有什么区别? 答:有两种,分别为: 前者页面不会转向 include 所指的页面,只是显示该页的结果,主页面还是原来的页面。执行完后还会回来,相当于函数调用。并且可以带参数.后者完全转向新页面,不会再回来。相当于 go to 语句。 Servlet 方面 1、说一说 Servlet 的生命周期? 答:servlet 有良好的生存期的定义,包括加载和实例化、初始化、处理请求以及服务结束。这个生存期由 javax.servlet.Ser
4、vlet 接口的 init,service 和 destroy 方法表达。 2、Servlet 版本间(忘了问的是哪两个版本了)的不同? 3、JAVA SERVLET API 中 forward() 与 redirect()的区别? 答:前者仅是容器中控制权的转向,在客户端浏览器地址栏中不会显示出转向后的地址;后者则是完全的跳转,浏览器将会得到跳转的地址,并重新发送请求链接。这样,从浏览器的地址栏中可以看到跳转后的链接地址。所以,前者更加高效,在前者可以满足需要时,尽量使用 forward()方法,并且,这样也有助于隐藏实际的链接。在有些情况下,比如,需要跳转到一个其它服务器上的资源,则必须使
5、用sendRedirect()方法。 4、Servlet 的基本架构 public class ServletName extends HttpServlet public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOExc
6、eption Jdbc、Jdo 方面 1、可能会让你写一段 Jdbc 连 Oracle 的程序,并实现数据查询. 答:程序如下: package hello.ant; import java.sql.*; public class jdbc String dbUrl=jdbc:oracle:thin:127.0.0.1:1521:orcl; String theUser=admin; String thePw=manager; Connection c=null; Statement conn; ResultSet rs=null; public jdbc() try Class.forNam
7、e(oracle.jdbc.driver.OracleDriver).newInstance(); c = DriverManager.getConnection(dbUrl,theUser,thePw); conn=c.createStatement(); catch(Exception e) e.printStackTrace(); public boolean executeUpdate(String sql) try conn.executeUpdate(sql); return true; catch (SQLException e) e.printStackTrace(); ret
8、urn false; public ResultSet executeQuery(String sql) rs=null; try rs=conn.executeQuery(sql); catch (SQLException e) e.printStackTrace(); return rs; public void close() try conn.close(); c.close(); catch (Exception e) e.printStackTrace(); public static void main(String args) ResultSet rs; jdbc conn =
9、 new jdbc(); rs=conn.executeQuery(select * from test); try while (rs.next() System.out.println(rs.getString(id); System.out.println(rs.getString(name); catch(Exception e) e.printStackTrace(); 2、Class.forName 的作用? 为什么要用 ? 答:调用该访问返回一个以字符串指定类名的类的对象。 3、Jdo 是什么? 答:JDO 是 Java 对象持久化的新的规范,为 java data object
10、 的简称,也是一个用于存取某种数据仓库中的对象的标准化 API。JDO 提供了透明的对象存储,因此对开发人员来说,存储数据对象完全不需要额外的代码(如 JDBC API 的使用) 。这些繁琐的例行工作已经转移到 JDO 产品提供商身上,使开发人员解脱出来,从而集中时间和精力在业务逻辑上。另外,JDO 很灵活,因为它可以在任何数据底层上运行。JDBC 只是面向关系数据库(RDBMS)JDO 更通用,提供到任何数据底层的存储功能,比如关系数据库、文件、XML 以及对象数据库(ODBMS)等等,使得应用可移植性更强。 4、在 ORACLE 大数据量下的分页解决方法。一般用截取 ID 方法,还有是三层
11、嵌套方法。答:一种分页方法 =intPageCount) nextPage=intPageCount; upPage = currentPage-1; if (upPage /输出内容 /输出翻页连接 合计:/第一页上一页 下一页最后页Xml 方面 1、xml 有哪些解析技术?区别是什么? 答:有 DOM,SAX,STAX 等 DOM:处理大型文件时其性能下降的非常厉害。这个问题是由 DOM 的树结构所造成的,这种结构占用的内存较多,而且 DOM 必须在解析文件之前把整个文档装入内存,适合对XML 的随机访问 SAX:不现于 DOM,SAX 是事件驱动型的 XML 解析方式。它顺序读取XML
12、文件,不需要一次全部装载整个文件。当遇到像文件开头,文档结束,或者标签开头与标签结束时,它会触发一个事件,用户通过在其回调事件中写入处理代码来处理 XML文件,适合对 XML 的顺序访问 STAX:Streaming API for XML (StAX) 2、你在项目中用到了 xml 技术的哪些方面?如何实现的? 答:用到了数据存贮,信息配置两方面。在做数据交换平台时,将不能数据源的数据组装成XML 文件,然后将 XML 文件压缩打包加密后通过网络传送给接收者,接收解密与解压缩后再同 XML 文件中还原相关信息进行处理。在做软件配置时,利用 XML 可以很方便的进行,软件的各种配置参数都存贮在
13、 XML 文件中。 3、用 jdom 解析 xml 文件时如何解决中文问题?如何解析? 答:看如下代码,用编码方式加以解决 package test; import java.io.*; public class DOMTest private String inFile = c:people.xml; private String outFile = c:people.xml; public static void main(String args) new DOMTest(); public DOMTest() try javax.xml.parsers.DocumentBuilder b
14、uilder = javax.xml.parsers.DocumentBuilderFactory.newInstance().newDocumentBuilder();org.w3c.dom.Document doc = builder.newDocument(); org.w3c.dom.Element root = doc.createElement(老师); org.w3c.dom.Element wang = doc.createElement(王); org.w3c.dom.Element liu = doc.createElement(刘); wang.appendChild(d
15、oc.createTextNode(我是王老师); root.appendChild(wang); doc.appendChild(root); javax.xml.transform.Transformer transformer = javax.xml.transform.TransformerFactory.newInstance().newTransformer(); transformer.setOutputProperty(javax.xml.transform.OutputKeys.ENCODING, gb2312); transformer.setOutputProperty(
16、javax.xml.transform.OutputKeys.INDENT, yes); transformer.transform(new javax.xml.transform.dom.DOMSource(doc), new javax.xml.transform.stream.StreamResult(outFile); catch (Exception e) System.out.println (e.getMessage(); 4、编程用 JAVA 解析 XML 的方式. 答:用 SAX 方式解析 XML,XML 文件如下: 王小明 信息学院 6258113 男,1955 年生,博士
17、,95 年调入海南大学 事件回调类 SAXHandler.java import java.io.*; import java.util.Hashtable; import org.xml.sax.*; public class SAXHandler extends HandlerBase private Hashtable table = new Hashtable(); private String currentElement = null; private String currentValue = null; public void setTable(Hashtable table)
18、 this.table = table; public Hashtable getTable() return table; public void startElement(String tag, AttributeList attrs) throws SAXException currentElement = tag; public void characters(char ch, int start, int length) throws SAXException currentValue = new String(ch, start, length); public void endE
19、lement(String name) throws SAXException if (currentElement.equals(name) table.put(currentElement, currentValue); JSP 内容显示源码,SaxXml.jsp: 剖析 XML 文件 people.xml 教师信息表); out.println(姓名 + + (String)hashTable.get(new String(name) + ); out.println(学院 + + (String)hashTable.get(new String(college)+); out.prin
20、tln(电话 + + (String)hashTable.get(new String(telephone) + ); out.println(备注 + + (String)hashTable.get(new String(notes) + ); out.println(); % EJB 方面 1、EJB2.0 有哪些内容? 分别用在什么场合? EJB2.0 和 EJB1.1 的区别? 答:规范内容包括 Bean 提供者,应用程序装配者,EJB 容器,EJB 配置工具,EJB 服务提供者,系统管理员。这里面,EJB 容器是 EJB 之所以能够运行的核心。 EJB 容器管理着EJB 的创建,撤消
21、,激活,去活,与数据库的连接等等重要的核心工作。JSP,Servlet,EJB,JNDI,JDBC,JMS. 2、EJB 与 JAVA BEAN 的区别? 答:Java Bean 是可复用的组件,对 Java Bean 并没有严格的规范,理论上讲,任何一个 Java类都可以是一个 Bean。但通常情况下,由于 Java Bean 是被容器所创建(如 Tomcat)的,所以 Java Bean 应具有一个无参的构造器,另外,通常 Java Bean 还要实现 Serializable 接口用于实现 Bean 的持久性。Java Bean 实际上相当于微软 COM 模型中的本地进程内 COM 组件
22、,它是不能被跨进程访问的。Enterprise Java Bean 相当于 DCOM,即分布式组件。它是基于 Java 的远程方法调用(RMI)技术的,所以 EJB 可以被远程访问(跨进程、跨计算机) 。但 EJB 必须被布署在诸如Webspere、WebLogic 这样的容器中, EJB 客户从不直接访问真正的 EJB 组件,而是通过其容器访问。EJB 容器是 EJB 组件的代理,EJB 组件由容器所创建和管理。客户通过容器来访问真正的 EJB 组件。 3、EJB 的基本架构 答:一个 EJB 包括三个部分: Remote Interface 接口的代码 package Beans; imp
23、ort javax.ejb.EJBObject; import java.rmi.RemoteException; public interface Add extends EJBObject /some method declare Home Interface 接口的代码 package Beans; import java.rmi.RemoteException; import jaax.ejb.CreateException; import javax.ejb.EJBHome; public interface AddHome extends EJBHome /some method
24、declare EJB 类的代码 package Beans; import java.rmi.RemoteException; import javax.ejb.SessionBean; import javx.ejb.SessionContext; public class AddBean Implements SessionBean /some method declare J2EE,MVC 方面 1、MVC 的各个部分都有那些技术来实现?如何实现? 答:MVC 是 ModelView Controller 的简写。Model 代表的是应用的业务逻辑(通过JavaBean,EJB 组件实
25、现) , View 是应用的表示面(由 JSP 页面产生) ,Controller 是提供应用的处理过程控制(一般是一个 Servlet) ,通过这种设计模型把应用逻辑,处理过程和显示逻辑分成不同的组件实现。这些组件可以进行交互和重用。 2、应用服务器与 WEB SERVER 的区别? 3、J2EE 是什么? 答:Je22 是 Sun 公司提出的多层(multi-diered),分布式(distributed),基于组件(component-base)的企业级应用模型(enterpriese application model).在这样的一个应用系统中,可按照功能划分为不同的组件,这些组件又可在不同计算机上,并且处于相应的层次(tier)中。所属层次包括客户层(clietn tier)组件,web 层和组件,Business 层和组件,企业信息系统(EIS) 层。 4、WEB SERVICE 名词解释。JSWDL 开发包的介绍。JAXP、JAXM 的解释。SOAP、UDDI,WSDL 解释。