一、JSP 1、JSP实际上就是Servlet,他是由容器翻译成Servlet源文件,再编译,用户看到的是servelt的响应结果 二、JSP语法 1、JSP模板:JSP页面中的HTML都是模板代码 2、JSP表达式: 2.1作用:将程序数据输出到客户端 2.2语法:<%=变量或表达式%> 表达式后面不能有分号 3、Jsp脚本: 3.1作用:在JSP中编写Java代码 3.2语法:<% 第一行java代码; 第二行java代码; %> 4、JSP声明: 4.1作用:声明中的代码会出现在翻译后的Servlet的_jspService()外面,即为jsp对应的Servlet声明成员变量和成员方 法。 4.2语法:<%! java声明 %> 5、注释 4.2作用:注释的代码不会被翻译到Servlet中 4.3语法:<%--这是注释--%>(与HTML中的<!--HTML注释-->是完全不同,HTML注释对java脚本不起作用) 三、JSP指令 Note: 更改MyEclipse提供的默认JSP模板。查找Servlet.java所在的位置,再打开jsp文件夹,修改jsp.vtl和JSPMetaTags.vtl即可(注 意备份) 1、作用:指令并不产生任何页面输出。他只是通知JSP引擎(Tomcat)如何来对待该JSP文件,也就是说,指令给容器用的。 2、常用指令: 声明方式:<%@ 指令名称 属性名="值" 。。。。%> 多个属性可以写在一个指令中,也可以分开来写 2.1page指令 属性 a、language:指示该JSP页面所使用的脚本语言。目前只能是JAVA b、extends:指示该JSP生成的Servlet继承的父类是谁。大家不要改 *c、import:在JSP中java脚本中需要用的类,导入该类 如果导入多个类,比如java.util.List 和java.util.ArrayList <%@page import="java.util.List,java.util.ArrayList"%> 或者 <%@page import="java.util.List"%> <%@page import="java.util.ArrayList"%> JSP引擎会自动导入下面的包: import javax.servlet.*; import javax.servlet.http.*; import javax.servlet.jsp.*;//JSP的包 *d:session:true|false,默认为true,作用就是是否创建session对象。true时会创建session对象 e:buffer:jsp输出的缓存。none,表示不要缓存;8kb,这是默认值,一般情况不需要修改,或者指定大小的缓存,单 位是kb。 f:autoFlush:缓存满后自动刷新。true|false,默认是true g:isThreadSafe:该JSP是否是线程安全的。true|false 默认值是true:不安全的 false:线程安全的 该属性实际上就是指示JSP对应的Servlet类是否实现SingleThreadModel接口 *h:errorPage:指示错误页面是谁。如果路径以"/"开头,并不代表应用名称 也可以通过web。xml配置全局错误页面 <error-page> <!-- 异常类型 --> <exception-type>java.lang.Throwable</exception-type> <location>/errors/error.jsp</location> </error-page> <error-page> <!-- 针对响应错误码 --> <error-code>404</error-code> <location>/errors/404.jsp</location> </error-page> errorPage属性优先于web.xml中配置的错误页面 *i:isErrorPage:true|false(默认值),当前页面是否是错误处理页面。实际上是指对应的Servlet中加不加入Exception 对象。 *contentType="text/html;charset=UTF-8":指示页面显示的MIME类型和编码。(给客户端) *pageEncoding="UTF-8":告知引擎用什么编码来翻译(serlvet)该JSP文件 *isELIgnored=true|false:是否忽略EL表达式。true是忽略,false不会略 2.2include指令 静态包含 2.3taglib指令 四、9大隐式对象 1、request:HttpServletRequest 2、response:HttpServletResponse 3、config:ServletConfig 4、application:ServletContext 5、exception:异常对象(isErrorPage必须为true) 6、session:HttpSession(session=true) 7、page:this,代表当前Servlet对象 *8、out:JspWriter(作用等同于PrintWriter)输出对象 *9、pageContext:PageContext对象 五、PageContext对象 1、public void setAttribute(java.lang.String?name,java.lang.Object?value) public java.lang.Object?getAttribute(java.lang.String?name) public void?removeAttribute(java.lang.String?name) 针对page范围的域对象绑定、删除和获取 2、可以操纵其它域对象 public java.lang.Object?getAttribute(java.lang.String?name,int?scope) public void setAttribute(java.lang.String?name, java.lang.Object?value,int?scope) public void?removeAttribute(java.lang.String?name,int?scope) 3、findAttribute:依次从page request session application范围内搜寻指定的参数