|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
JAVA学习必须明确这是一项投资,对于大多数的人来说,学习JAVA是为了就业,还有就是刚走向工作位置的朋友想尽快赶上工作的节奏。js|servlet|成绩 为何GenericServlet在init(ServletConfigconfig)基本上增添了一个init()办法?
init()办法被GenericServlet.init(ServletConfigconfig)办法挪用。
init()办法便利了开辟职员定制Servlet的初始化,而不必往保护ServletConfig对象的存储事情。
重写GenericServlet.init(ServletConfigconfig)必需要显现的挪用super.init(config)办法。
ServletContext.getContect(java.lang.Stringuripath)的感化是甚么?
前往统一Server中指定的path对应的ServletContext对象,经由过程该对象能够完成与Server中的其他Context打交道。
uripath必需是以"/"入手下手(该路径的寄义是相对全部Servlet文档的根路径,而不是以后ServletContext的根路径)。
Servlet性命周期是甚么?
一样平常的Servlet(GenericServlet,即与协定有关的Servlet)的性命周期:init()-->GenericServlet.service(ServletRequestreq,ServletResponseres)-->destroy.
HttpServlet的性命周期:init()-->GenericServlet.service(ServletRequestreq,ServletResponseres)--->service(HttpServletRequestreq,HttpServletResponseresp)-->doXXXX()-->destroy.
有无需要重写GenericServlet.service()办法?
关于HttpServlet来讲没有需要。只必要重写它的doXXXX()办法就能够了。HttpServlet中service()办法会主动的依据用户哀求范例把哀求转发给响应的doXXXX()办法(比方doGet()办法)。
ServletRequest.getReader()和ServletRequest.getInputStream()怎样利用?
注重两个办法不克不及同时利用。
ServletRequest.getRealPath(Stringpath)办法已不保举利用。
请利用ServletContext.getRealPath(Stringpath)办法。
ServletResponse缺省的字符集(charset)是甚么?
ServletResponse缺省的字符集(charset)是ISO-8859-1,能够经由过程setContentType(java.lang.String)办法改动新的字符集。
比方:setContentType("text/html;charset=Shift_JIS").
关于字符集信息,能够扫瞄RFC2045
HttpServletRequest.getRequestURI()和HttpServletRequest.getRequestURL()区分是甚么?
request.getRequestURI()前往值相似:/xuejava/requestdemo.jsp
request.getRequestURL()前往值相似:http://localhost:8080/xuejava/requestdemo.jsp
HttpServletRequest.encodeURL()和HttpServletRequest.encodeRedirectURL(()区分是甚么?为何要有两个分歧的办法呢?
当用URL-rewriting体例来办理Session的时分,必要用到以上的两个办法。
两个办法的分歧点是:两个办法断定是不是必要包括sessionID的逻辑分歧。
在挪用HttpServletResponse.sendRedirect前,应当先挪用encodeRedirectURL()办法,不然大概会丧失Sesssion信息。...
怎样使你的Servlet大概JSP完成SingleThreadModel?
关于Servlet完成javax.single.SingleThreadModel接口。
关于JSP,在PageDirective中写以下的语句<%@pageisThreadSafe="false"%>
JSPTag和JSPXML-basedTag
...
怎样把某一个JSPPage界说成为ErrorPage?为何要如许做?
完成办法:<%@pageisErrorPage="true"%>
为何?由于必要猎取Exception对象(缺省情形下,在JSPPage中是不克不及间接利用“隐含对象”exception的)。
JSPPage的实行按次是怎样的?
JSPPage的实行按次以下:
JSPPageTranslation.JSPPage-->Servletsourcecode.
JSPPageCompilation.Servletsourcecode-->Servletclass.
LoadClass(Firsttimeortheserverrestarted)
Createinstance(大概会良多次,假如JSPPage中声了然<%@pageisThreadSafe="false"%>)
CalljspInitmethod(一样平常的JSPPage都没有重写这个办法,重写必要在声明语句段中)。
Call_jspServicemethod(相似与一样平常HttpServlet的doGet和doPost办法,可是能够同时用来处置Post和Getq哀求)。
CalljspDestroymethod(Server在卸载Servet的时分,比方当Servlet好久没有利用的情形)。
JSPPage中有哪些隐含对象(ImplicityObject)?各自的范例和感化是甚么?
request--
reponse--
session--
application--
out--
page--
pagecontext--
exception--只要在以后JSPPage为ErrorPage的时分才无效。
config--
<jsp:includepage="/foo/foo.jsp"%>和<@includefile="/foo/foo.jsp"%>的区分是甚么?
<jsp:include...--requesttime.
<@include...--Pagetranslationtime.
Servlets/JSPContainer(Engine)有几种运转体例?
Standalone
Tomcatstandalonemode
In-process
TomcatrunninginsideApacheWebServer.
Out-of-process
Apache+mod_jk+Tomcat
Servlet,Servlet开辟职员,ServletAPI,ServletContainer的干系是甚么?
Servlet,Servlet开辟职员--->ServletAPI-->ServletContainer
ThepartsofanHTTPmessage
MessagepartDescription
Theinitialline:Specifiesthepurposeoftherequestorresponsemessage
例子:GET/reports/sales/index.htmlHTTP/1.0
Theheadersection:Specifiesthemeta-information,suchassize,type,andencoding,
aboutthecontentofthemessage
Ablankline:
Anoptionalmessagebody:Themaincontentoftherequestorresponsemessage
上面是一个Response的例子:
HTTP/1.0200OK
Date:Tue,01Dec200123:59:59GMT
Content-Type:text/html
Content-Length:52
<html>
<body>
<h1>Hello,John!</h1>
</body>
</html>
HTTP标准中界说了哪些办法?各自有甚么用处?
GET
HEAD
POST
从Http1.1标准入手下手,增添了以下的办法:
PUT
OPTIONS
TRACE
DELETE
CONNECT
ServetRequest中为何要界说:getContentType(),getContentLength()办法。
依据HTTP协定标准,Request和Response一样也有这些必不成少的内容!
以是必要起首懂得HTTPMessage的观点和其内容的格局,这些工具关于Request和Reponse是一样的。
关于GET体例发送的哀求,其内容范例为:null
关于POST体例发送的哀求,其内容范例为:application/x-www-form-urlencoded
POST体例发送哀求的内容相似于:username=xuejava.
RequestDispatcher.forward()和HttpServletResponse.sendRedirect()的区分是甚么?
RequestDispatcher.forward()是在服务器端运转;HttpServletResponse.sendRedirect()是经由过程向客户扫瞄器发送死令来完成。
以是RequestDispatcher.forward()关于扫瞄器来讲是“通明的”;而HttpServletResponse.sendRedirect()则不是。
别的,还要注重RequestDispatcher.forward()在挪用的时分Response不克不及已Commit了(Response.isCommitted())。
ServletContext.getRequestDispatcher(Stringurl)和ServletRequest.getRequestDispatcher(Stringurl)的区分是甚么?为何?
ServletContext.getRequestDispatcher(Stringurl)中的url只能利用相对路径;而ServletRequest.getRequestDispatcher(Stringurl)中的url可使用绝对路径。
由于ServletRequest具有绝对路径的观点;而ServletContext对象无次观点。
怎样把哀求转移到别的一个WebApp中的某个地点?
ServletContext.getRequestDispatcher(Stringurl)和ServletRequest.getRequestDispatcher(Stringurl)只能把哀求转移到统一个WebApp中的地点。
假如必要把哀求转移到别的一个WebApp中的某个地点,能够按上面的做法:
1.取得别的一个WebApp的ServletConext对象(currentServletContext.getContext(uripath)).
2.挪用ServletContext.getRequestDispatcher(Stringurl)办法。
微软什么都提供了。你可以试想一下,如果你是新手,你是希望你点一下按钮程序就能运行那,还是想自己一点一点的组织结构,然后打包发部,调错再打包...... |
|