JavaWeb面试热门知识点:Servlet、JSP、XML解析

需积分: 10 1 下载量 157 浏览量 更新于2024-09-14 收藏 47KB DOC 举报
"JavaWeb面试常见问题集合,涵盖了JSP内置对象、动作、Servlet生命周期、版本差异、请求转发与重定向、XML解析等核心概念。" 在JavaWeb开发中,面试常常会涉及到以下知识点: 1. JSP内置对象:JSP有九个内置对象,包括request、response、session、application、page、pageContext、out、config和exception。它们提供了对HTTP请求和响应的处理能力,例如request对象用于获取请求参数,response对象用于设置响应头和内容,session对象用于管理会话状态,application对象则用于在整个应用范围内的共享数据。 2. JSP动作:JSP动作如<jsp:include>、<jsp:forward>、<jsp:useBean>等,用于动态地插入、转发或创建JavaBean。例如,<jsp:include>可以用来包含一个静态或动态的页面,而<jsp:forward>则可以将请求转发到另一个资源。 3. 动态INCLUDE与静态INCLUDE:动态INCLUDE(<jsp:include>)会在每次请求时执行被包含的页面,而静态INCLUDE( <%@ include %>)在编译时就合并到当前JSP页面中,只在首次编译时执行一次。 4. 跳转方式:两种跳转方式是请求转发(RequestDispatcher.forward())和重定向(Response.sendRedirect())。前者在服务器端完成,保持原始请求URL不变;后者在客户端完成,浏览器会发送一个新的请求。 5. Servlet生命周期:Servlet经历加载、初始化、服务、销毁四个阶段。init()方法在Servlet实例化后首次调用,service()方法处理每个请求,destroy()方法在Servlet卸载前调用,释放资源。 6. Servlet版本差异:不同版本的Servlet API可能会引入新的功能、优化性能或者修复bug。具体版本间的差异需查阅相关文档。 7. forward()与redirect():forward()在服务器端内部完成请求转发,保留原始请求URL;redirect()导致客户端发起新的请求,显示新URL,不共享请求属性。 8. Servlet基本架构:Servlet遵循单一实例模型,通常由Web容器管理,通过doGet()和doPost()方法处理HTTP请求。 9. Class.forName():该方法用于动态加载类,常用于数据库连接,因为连接池通常需要根据配置的驱动名动态加载对应的数据库驱动。 10. JDO(Java Data Objects):JDO是一种ORM(对象关系映射)规范,提供透明的数据持久化服务。 11. ORACLE大数据量分页:Oracle支持ROWNUM伪列进行分页,结合子查询或连接查询实现高效的分页。 12. XML解析技术:包括DOM(文档对象模型)、SAX(简单API for XML)、StAX(流式API for XML),DOM一次性加载整个XML文档,适合小文件;SAX事件驱动,只读取所需部分,适合大文件;StAX允许逐个事件读写,更高效。 13. XML在项目中的应用:可能涉及配置文件、数据交换、序列化等,实现方式通常使用DOM、SAX或JAXB等库。 14. 解决JDOM解析XML中文问题:通常需要设置编码,如ISO-8859-1转UTF-8,然后正确解析和写入。 15. JSP内置对象及其方法:例如,out对象用于输出内容,pageContext对象可访问所有上下文信息。 16. Servlet生命周期与CGI区别:Servlet生命周期更长,可复用,CGI每个请求创建新的进程。 17. JDBC检索数据:使用DriverManager.getConnection()建立连接,Statement或PreparedStatement执行SQL,ResultSet获取结果。 18. JSP分页:通过查询数据库获取指定页码的数据,使用JSP或Servlet渲染页面,显示分页链接。 19. XML解析方式和区别:DOM解析整个文档,SAX处理流式数据,StAX允许更灵活的迭代。 20. 隐含对象:包括上述的request、response等,每个都有其特定用途和生命周期。 21. forward()与redirect()的区别已在前面解释。 22. JSP的常用指令:如<%@ page %>设置页面属性,<jsp:include %>包含页面,<jsp:useBean>实例化JavaBean。 23. doGet()和doPost()调用条件:GET用于无副作用的请求,POST用于提交数据或有副作用操作。 24. init()与service()方法:init()在Servlet初始化时调用,service()处理每个请求,根据请求类型决定调用doGet()还是doPost()。 25. Servlet的生命周期已述。 26. 实现Servlet单线程模式:可以通过覆盖service()方法,使用同步机制控制同一时间只有一个请求处理。 27. Servlet配置:在web.xml中定义Servlet,指定映射路径、初始化参数等。 28. 四种会话跟踪技术:Cookie、Session、URL重写、隐藏表单字段。 29. 用于放置session ID到URL的方法:A. The encodeURL method of the HttpServletRequest interface. 30. 相等选项:这个问题没有给出完整答案,通常会涉及到URL编码与解码相关的方法。 这些知识点是JavaWeb开发者必须掌握的基础,对于面试和实际开发工作都至关重要。