Java作为一门广泛使用的编程语言,其面试题涵盖了众多的知识点,包括基础语法、类与对象、集合框架、多线程、网络编程、JSP、Servlet等。以下是对这些知识点的详细解析: **69、forward 和 redirect 的区别** 在Java Web开发中,`forward`和`redirect`是两种常见的请求处理方式。 - `forward`(转发):在服务器端内部完成,不涉及客户端的重定向,浏览器地址栏中的URL不会改变。服务器根据请求内容找到目标资源,然后将资源内容返回给客户端。这种方式适用于同一个应用内的页面跳转,可以共享请求和会话数据。 - `redirect`(重定向):是服务器告知客户端需要重新发起一个请求来获取资源,浏览器地址栏会显示新的URL。由于新的请求,原始的请求参数、session数据可能无法在新的请求中保留,除非再次手动传递。 **70、jsp 内置对象及其作用** JSP内置对象提供了一种方便的方式来访问Servlet API的功能,它们包括: - `request`:代表`HttpServletRequest`,提供获取客户端请求信息的方法,如参数、头信息等。 - `response`:代表`HttpServletResponse`,用于设置返回给客户端的响应,如状态码、头信息、内容等。 - `pageContext`:提供对整个页面范围的访问,可以获取和设置不同范围的属性。 - `session`:代表`HttpSession`,用于存储与用户会话相关的数据。 - `application`:代表`ServletContext`,提供访问整个Web应用的共享信息和配置。 - `out`:用于向客户端输出数据,是`JspWriter`的一个实例。 - `config`:代表`ServletConfig`,提供获取Servlet初始化参数的方法。 - `page`:表示当前生成的Servlet实例。 - `exception`:处理未捕获的异常,通常在错误处理页面中使用。 **71、jsp 动作** JSP的动作标签提供了一种声明式编程的方式,主要包括: - `jsp:include`:包含另一个页面,动态或静态取决于所包含页面的类型。 - `jsp:useBean`:查找或创建一个JavaBean,并将其绑定到JSP页面。 - `jsp:setProperty`:设置JavaBean的属性值。 - `jsp:getProperty`:获取JavaBean的属性值并输出。 - `jsp:forward`:将请求转发到另一个页面。 - `jsp:plugin`:根据浏览器类型生成Java插件的相关HTML标记。 **72、动态INCLUDE与静态INCLUDE的区别** - 动态`<jsp:include>`:在每次请求时都会重新包含目标页面,适用于动态内容。 - 静态`<%@ include file="">`:在编译JSP时即包含文件,不检查文件变化,适用于静态内容。 **73、跳转方式及区别** - `jsp:include`:页面不会真正转向,只是包含结果,执行后仍回到原页面,类似于函数调用。 - `jsp:forward`:实际的请求转向,客户端URL发生变化,相当于Go To语句,跳转后不会返回原页面。 **74、JSP内置对象的方法** 每个内置对象都有其特定的方法,例如: - `request`:可以获取请求参数,如`getParameter()`;设置和获取头信息,如`setHeader()`和`getHeader()`。 - `response`:可以设置响应状态码,如`setStatus()`;写入响应体,如`getOutputStream().write()`。 - `out`:输出数据,如`print()`和`write()`。 - `pageContext`:获取其他范围的对象,如`getAttribute()`;设置和移除属性,如`setAttribute()`和`removeAttribute()`。 - `session`:创建和管理会话,如`getSession()`;设置和获取会话属性,如`setAttribute()`和`getAttribute()`。 - `application`:获取应用范围的属性,如`getAttribute()`;设置全局应用信息,如`initParameter()`。 - `config`:获取Servlet的初始化参数,如`getInitParameter()`。 - `page`:访问Servlet实例的方法,如`getClass()`。 以上内容仅仅涵盖了JSP和Servlet的一部分核心知识点,实际的Java面试可能会涉及更深入的技术点,如异常处理、连接池、设计模式、Spring框架、MyBatis等。对于准备Java面试的开发者来说,掌握这些基础知识是必不可少的,同时需要不断学习和实践以应对更复杂的面试挑战。
- 粉丝: 0
- 资源: 3
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助