JSP入门
JSP语法
Jsp模板元素 <html>
脚本片段:<%Java代码 必须遵循java的语法规则%>
脚本表达式:<%=表达式>
S声明:<%! 声明 %>
注释: html注释 <!-- --> jsp<%-- --%>
Page
Language = "Jave"
pageEncoding="UTF-8"
import="" importjavax.servlet.*;
import javax.servlet.http.*;
import javax.servlet.jsp.*;
buffer="none| 8kb | sizekb"
buffer的大小被out对象用于处理执行后的JSP对客户浏览器的输出。缺省值是8kb
autoFlush="true| false"
设置如果buffer溢出,是否需要强制输出,如果其值被定义为true(缺省值),输出正常,如果它被设置为false,如果这个buffer溢出,就会导致一个意外错误的发生.如果你把buffer设置为none,那么你就不能把autoFlush设置为false.
isErrorPage="false"
isErrorPage 默认值false 如果值为true的,这个页面就是个异常处理页,有个隐式exception对象,通过这个对象来显示错误信息,值为false的页面是没有这个对象的。
isErrorPage
errorPage=“错误页面”//当页面中游异常的时候
Web.xml
<error-page>
<error-type>404</error-type>
<location>/error.jsp</location>
</error-page>
isThreadSafe="true" 多线程 线程不安全
isThreadSafe="false" 单线程 实现SingleThreadSafe接口
要是不希望被多个线程同时共享,那就应该将isThreadSafe设置为false。这将会使得转换得到的Servlet实现了SingleThreadModel接口,这也就是说,_jspService这个方法只会被单线程的调用。
JSP工作原理:
1.jsp----------转换成1_jsp.java(httpServlet类)
在_jspService(request,response)中执行
//声明隐藏对象:
Final PageContext pageContext;
//final 修饰的成员变量是最终的不可改变的
//直接赋值 或在构造函数中赋值
HttpSession session;//一次会话
ServletContext application;//web应用程序共享的对象 作用于整个web程序
ServletConfig config;
JspWriter out;//字节流response.getOurputStream(); 字符流 不能同时使用;