您的位置:首页 > 职场人生

面试题整理:JavaWeb部分

2014-02-19 22:52 537 查看
1、Tomcat的优化经验

去掉对web.xml的监视,把jsp提前编辑成Servlet。(未知实现,等待解答,暂时答案将jsp访问一遍)

有富余物理内存的情况,加大tomcat使用的jvm的内存。

修改 \tomcat\bin\catalina.bat 文件:
在set JAVA_OPTS=%JAVA_OPTS% %LOGGING_CONFIG%
这行下面前面加上
JAVA_OPTS='-Xms512m -Xmx1024m'
JAVA_OPTS="$JAVA_OPTS -server -XX:PermSize=64M -XX:MaxPermSize=256m"
其中
JAVA_OPTS='-Xms512m -Xmx1024m' 是设置Tomcat使用的内存的大小。
-XX:PermSize=64M -XX:MaxPermSize=256m 指定类空间(用于加载类)的内存大小 。


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

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

3、解释一下什么是servlet

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

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

[b]SERVLET的基本架构:[/b]

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/");

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动态包含和静态包含

<jsp:include page=included.jsp flush=true /> 它总是会检查所含文件中的变化,适合用于包含动态页面,并且可以带参数;

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

JSP页面间对象传递的方法 :request,session,application,cookie等。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  面试题 javaweb