Java面试题库之Jsp&Servlet(二)

14.在JSP中如何读取客户端的请求,如何确定某个Jsp文件的真实路径?

Request.getparameter("")
<%=application.getRealPath("aa.jsp") %>

15.描述Cookie和Session的作用,区别和各自的应用范围,Session工作原理。

Cookie:主要用在保存客户端,其值在客户端与服务端之间传送,不安全,存储的数据量有限。

Session:保存在服务端,每一个session在服务端有一个sessionID作一个标识。存储的数据量大,安全性高。占用服务端的内存资源。

16.说明Jsp中errorPage的作用,应用范围。

正常页面中
<%@page erropage=”error.jsp”%>
错误页面
<%@page iserrorpage=”true”%>
有一内置对象:exception

17.介绍在Jsp中如何使用JavaBeans


<%
	New 类();
%>

[v_notice]JSP中操作Java Beans(https://www.cnblogs.com/EasonJim/p/6968215.html)[/v_notice]

18.简单介绍JSP的标记库

做一个标记处理类 extends TagSupport
通过tld说明标记处理的类的前缀及后缀
在web.xml中说明tld文件


		
		

在jsp页面是引用tld<%@taglib uri=”” prefix=””%>

19.Servlet中的核心类有那些,各有什么特点?

ServletContext:容器,放置全局变量
* setAtribute()
* getAttribute()

ServletConfig:一个servlet的配置
* getInitParameter(”名称”)

HttpServletRequest:封装的所有的请求
* getParameterValue(”名称”)
* getParameterValues(”称”)

getSession();
* getAttribute(” 名称”);
* getRequestDispatch(”a.jsp”).forward(request,response)

HttpServletResponse:响应
* getOut();
* sendRedirect(””)

HttpSession:一个用户多个页面共享同一变量
* setAttribute(””,””)

20.Servlet中重要的包有那些,有什么区别?

javax.servlet.*;javax.servlet.http.*;

21.说出Servlet的生命周期,并说出Servlet和CGI的区别?

Servlet被服务器实例化后,容器运行其init方法,请求到达时运行其service方法,service方法自动派遣运行与请求对应的doXXX方法(doGet,doPost)等,当服务器决定将实例销毁的时候调用其destroy方法。

与cgi的区别在于servlet处理服务器进程中,它通过多线程方式运行其service方法,一个实例可以服务于多个请求,并且其实例一般不会销毁,而CGI对每个请求都产生新的进程,服务完成后就销毁,所以效率上低于servlet。

22.什么情况下调用doGet()和doPost()?

Jsp页面中的form标签里的method属性为get时调用doGet(),为post时调用doPost()。

23.如何现实servlet的单线程模式

在doGet及doPost方法前加入synchoronized
JSP:<%@ page isThreadSafe="true"%>

24.Request对象的主要方法

setAttribute(String name,Object):设置名字为name的request的参数值
getAttribute(String name):返回由name指定的属性值
getAttributeNames():返回request对象所有属性的名字集合,结果是一个枚举的实例
getCookies():返回客户端的所有Cookie对象,结果是一个Cookie数组
getCharacterEncoding():返回请求中的字符编码方式
getContentLength():返回请求的Body的长度
实例
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):删除请求中的一个属性

25.我们在web应用开发过程中经常遇到输出某种编码的字符,如iso8859-1等,如何输出一个某种编码的字符串?

Public String translate (String str) {
    String tempStr = "";
    try {
      tempStr = new String(str.getBytes("ISO-8859-1"), "GBK");
      tempStr = tempStr.trim();
    }
    catch (Exception e) {
      System.err.println(e.getMessage());
    }
    return tempStr;
  }

26.Servlet执行时一般实现哪几个方法?

public void init(ServletConfig config)
public ServletConfig getServletConfig()
public String getServletInfo()
public void service(ServletRequest request,ServletResponse response)
public void destroy()
本站所有文章均由网友分享,仅用于参考学习用,请勿直接转载,如有侵权,请联系网站客服删除相关文章。若由于商用引起版权纠纷,一切责任均由使用者承担
极客文库 » Java面试题库之Jsp&Servlet(二)

欢迎加入「极客文库」,成为原创作者从这里开始!

立即加入 了解更多