JspFactory.getDefaultFactory().getPageContext(this) //this extends HttpJspBase implements JspSourceDependent
ctx.getServletContext()
getServletConfig()
getSession()
getOut()
***********************每个Servlet在容器中只有一个实例 ********************
JSP中声明的变量是类成员变量,在创建实例时初始化,保存知道实例销毁。
1.page
<%@page language="Java" extends="" %>
<%@page import="" session= buffer= autoFlush= isThreadSafe= info contentType errorPage isErrorPage %>
( info="" -> getServletInfo() )
2.include
<%@include file="" %>
3.jsp
jsp:forward
<jsp:forward page="a.jsp"><jsp:param name="age" value="29" /></jsp:forward> (jsp:param)
jsp:param
jsp:include
<jsp:include page="" flush="true"/> (jsp:param)
jsp:userBean
jsp:setProperty
jsp:getProperty
<jsp:userBean id="name" class="" scope=""/> //application session request page
<jsp:getProperty name="" property=""/>
application - javax.servlet.ServletContext - getAttribute , getInitParameter
config - javax.servlet.ServletConfig - getInitParameter , getInitParameternames()
config 当前JSP配置信息
exception: java.lang.Throwable
out - javax.servlet.jsp.JspWriter
page - (Servlet)this -
pageContext - javax.servlet.jsp.PageContext - getServletContext() , getServletConfig()
request - javax.servlet.http.HttpServletRequest -
response
session - javax.servlet.http.HttpSession
---
getServletConfig().getServletContext() - application
pageContext对象用于访问页面共享数据,直接访问request,session,application:
pageContext.getAttribute("" , pageContext.SESSION_SCOPE);
response
.sendRedirect("");
Cookie c=new ("name",value); c.setMaxAge(24*3600); response.addCookie(c);
request
Cookie[] cs=request.getCookies();
foreach c
c.getName() , c.getValue()
--------------------
Servlet
extends HttpServlet
doGet
doPost
doPut
doDelete
init(ServletConfig config)
service();
destroy();
<servlet>
<servlet-name>
<servlet-class>
</>
<servlet-mapping>
<servlet-name>
<url-pattern>
</>
load-on-startup Servlet
---MVC:
RequestDispatcher rd=request.getRequestDispatcher("url");
rd.forward(req,resp);
-----
<servlet>
<servlet-name>
<servlet-class>
<load-on-startup>
</>
init(ServletConfig config)
{
super.init(config);
...
}
-------------ServletConfig
cf=getServletConfig();
cf.getInitParameter("");
<servlet>
<init-param>..
------------------------------------------------------
自定义标签
java.Servlet.jsp.tagext.TagSupport
HelloWorldTag extends TagSupport
{
public int doEndTag()
{
pageContext.getOut().write();
return EVAL_PAGE;
}
}
TLD文件:
<taglib>
<tlib-version>
<jsp-version>
<tag>
<name>
<tag-class>
<body-content>
<attribute>
<name>
<required>
<rtexprvalue>true
</>
web.xml
<taglib>
<taglib-uri>/tags/tldtest.tld</>
<taglib-location>/web-inf/.....
</>
import taglib:
<%@taglib uri="b" prefix="a"% param1="" param2=""...>
<a:b/>
P101