JSP的7个动作指令
jsp:forward:执行页面转向,将请求的处理转发到下一个页面
jsp:param:用于传递参数,必须与其他支持参数的标签一起使用
jsp:include:动态引入一个JSP页面
jsp:plugin:用于下载JavaBean或Applet到客户端执行
jsp:useBean:创建一个JavaBean实例
jsp:setProperty:设置JavaBean实例的属性值
jsp:getProperty:输出JavaBean实例的属性值
forward指令
注:forward指令执行时,用户请求的地址没有发生改变,但页面内容却完全变为forward目标页内容,同时客户端的请求参数不会丢失
include指令
动态和静态指令的区别:
1.静态导入是将被导入的页面的代码完全融入,成一个整体的Servlet;动态则是在Servlet中使用include方法来导入页面的内容
2.讲台导入时被导入页面的编译指令会其作用,而动态导入时被导入页面的编译指令失去作用,只是插入被导入页面的body内容
3.动态包含还可以增加额外的参数
<jsp:include page="forward-result.jsp">
<jsp:param name="age" value="32" />
</jsp:include>
forward和include比较:forward拿目标页面代替原有页面,include拿目标页面插入原有页面
useBean、setProperty、getProperty指令
useBean指令用于在JSP页面初始化一个Java实例;
setProperty指令用于为JavaBean设置属性值
getProperty指令用于输出JavaBean属性值
<jsp:useBean id="p1" class="lee.Person" scope="request" /> //id属性是JavaBean实例名,class是实现类,scope属性指定JavaBean的作用范围
//page:该JavaBean实例仅在该页面有效
//request:该JavaBean本次请求有效
//session:该JavaBean本次回话有效
//application:该JavaBean应用期间有效,从上到下变大
<jsp:setproperty name="p1" property="name" value="wa" /> //name属性是JavaBean的实例名,property属性确定需要输出的属性名
<jsp:setProperty name="p1" property="age" value="25" />
<jsp:getProperty name="p1" property="name" />
<jsp:getProperty name="p1" property="age" />
JSP九大内置对象
application:
javax.servlet.ServletContext实例,代表JSP所属的WEB应用本身,可以用于JSP页面或在Servlet之间的信息交换
常用方法:getAttribute、setAttribute、getInitParameter
config:
javax.servlet.servletConfig实例,该实例代表该JSP的配置信息。实际上,JSP页面无需配置,所以更多在Servlet上有效
常用方法:getInitParameter、getInitParameternames
exception:
java.lang.Throwable实例,代表其他页面中的异常和错误。只有当页面是错误处理页面,即编译指令page的isErrorPage属性为true时,才可使用
常用方法:getMessage、printStackTrace
out:
javax.servlet.jsp.JspWriter实例,代表JSP页面的输出流,用于输出内容,形成HTML页面
page:
代表页面本身,没有太大用处。也就是Servlet中的this,其类型就是生成Servlet类,能用page就可以用this
pageContext:
javax.servlet.PageCOntext实例,代表该JSP页面上下文,使用该对象可以访问页面中的共享数据。
常用方法:getServletContext、getServletConfig
request:
javax.servlet.http.HttpServletRequest实例,该对像封装了一次请求,客户端的请求参数都在该对象中,获取客户端请求参数必须使用该参数
常用方法:getParameter、getParameterValues、setAttribute、getAttribute、setCharacterEncoding
response:
javax.servlet.http.HttpServletResponse实例,代表服务器对客户端的相应,通常很少使用该对象直接响应,而是使用out对象,除非需要生成非字符响应
常用方法:getOutputStream、sendRedirect
session:
javax.servlet.http.HttpSession实例,代表一次会话。当客户端浏览器与站点建立连接,会话开始;当客户端关闭浏览器,会话结束
常用方法:getAttribute、setAttribute