JavaWeb部分面试题整理

文章目录

    • 1、HTTP请求的GET与POST方式的区别
    • 2、解释一下什么是servlet
    • 3、Request对象的主要方法:
    • 4、关于JSP的相关的资料

1、HTTP请求的GET与POST方式的区别

  Get是向服务器发索取数据的一种请求,提交数据位于HTTP请求协议头中,最多只有2048字节(包括url+params);而Post是向服务器提交数据的一种请求,要提交的数据位于信息头后面的实体中。

2、解释一下什么是servlet

  Servlet有良好的生存期的定义,包括加载和实例化、初始化、处理请求以及服务结束。这个生存期由javax.servlet.Servlet 接口的init,service 和destroy方法表达。

  Web容器加载Servlet,Servlet被服务器实例化后,生命周期开始。通过调用servlet的init()方法进行servlet的初始化。通过调用service()方法实现,根据请求的不同调用不同的doXXX方法(doGet,doPost)方法。结束服务,web容器调用servlet的destroy()方法。

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, IOException {
 
       } 
}

Servlet API中forward()与redirect()的区别:

forward 是服务器转发,浏览器地址栏不会显示出转发后的地址;forward比较高效,而且有助于隐藏实际地址。

eg: getServletContext().getRequest Dispatcher(“/servlet/secondservlet”).forward(request, response);

redirect 是重定向,浏览器会得到跳转地址,对新地址重新发送请求。

eg: response.sendRedirect("http://www.baidu.com/");

3、Request对象的主要方法:

  • setAttribute(String name,Object):设置名字为name的request 的参数值
  • getAttribute(String name):返回由name指定的属性值
  • getAttributeNames():返回request对象所有属性的名字集合,结果是一个枚举的实例
  • getCookies():返回客户端的所有Cookie对象,结果是一个Cookie数组
  • getCharacterEncoding():返回请求中的字符编码方式
  • getContentLength():返回请求的Body的长度
  • getHeader(String name):获得HTTP协议定义的文件头信息
  • getHeaders(String name):返回指定名字的request Header的所有值,结果是一个枚举的实例
  • getHeaderNames():返回所以request Header的名字,结果是一个枚举的实例
  • getInputStream():返回请求的输入流,用于获得请求中的数据
  • getMethod():获得客户端向服务器端传送数据的方法
  • getParameter(String name):获得客户端传送给服务器端的有name指定的参数值
  • getParameterNames():获得客户端传送给服务器端的所有参数的名字,结果是一个枚举的实例
  • getParametervalues(String name):获得有name指定的参数的所有值
  • getProtocol():获取客户端向服务器端传送数据所依据的协议名称
  • getQueryString():获得查询字符串
  • getRequestURI():获取发出请求字符串的客户端地址
  • getRemoteAddr():获取客户端的IP 地址
  • getRemoteHost():获取客户端的名字
  • getSession([Boolean create]):返回和请求相关Session
  • getServerName():获取服务器的名字
  • getServletPath():获取客户端所请求的脚本文件的路径
  • getServerPort():获取服务器的端口号
  • removeAttribute(String name):删除请求中的一个属性

4、关于JSP的相关的资料

JSP的9个内置的对象:

  • request 表示HttpServletRequest 对象。它包含了有关浏览器请求的信息,并且提供了几个用于获取cookie, header,和session数据的有用的方法。
  • response 表示HttpServletResponse对象,并提供了几个用于设置送回浏览器的响应的方法(如cookies,头信息等)
  • out 对象是javax.jsp.JspWriter 的一个实例,并提供了几个方法使你能用于向浏览器回送输出结果。
  • pageContext 表示一个javax.servlet.jsp.PageContext 对象。它是用于方便存取各种范围的名字空间、servlet相关的对象的API,并且包装了通用的servlet相关功能的方法。
  • session 表示一个请求的javax.servlet.http.HttpSession 对象。Session可以存贮用户的状态信息
  • applicaton 表示一个javax.servle.ServletContext 对象。这有助于查找有关servlet引擎和servlet环境的信息
  • config 表示一个javax.servlet.ServletConfig 对象。该对象用于存取servlet实例的初始化参数。
  • page 表示从该页面产生的一个servlet实例
  • exception 针对错误网页,未捕捉的例外

JSP的6种基本动作

  • jsp:include:在页面被请求的时候引入一个文件。
  • jsp:useBean:寻找或者实例化一个JavaBean。
  • jsp:setProperty:设置JavaBean的属性。
  • jsp:getProperty:输出某个JavaBean的属性。
  • jsp:forward:把请求转到一个新的页面。 (sendRedirect)
  • jsp:plugin:根据浏览器类型为Java插件生成OBJECT或EMBED标记

JSP的常用指令

isErrorPage(设置一个error_page是否能使用Exception对象),isELIgnored(是否忽略表达式) 。eg: <%@page isELIgnored=“true|false”%>

JSP动态包含和静态包含

它总是会检查所含文件中的变化,适合用于包含动态页面,并且可以带参数;

<%@include file=included.htm %> 静态INCLUDE用include伪码实现,定不会检查所含文件的变化,适用于包含静态页面 。

JSP页面间对象传递的方法 :request,session,application,cookie等。

你可能感兴趣的:(Java面试题,面试题)