JSP
1. jsp
java server page Java服务器页
2. 作用
在html中嵌入java代码
在java中嵌入html代码:out.write(" ");
3. jsp语法
表达式:<%= "hello"%>
<%="hello" %><br>
<%int i=9; %>
i=<%=i %>
语句块:<%符合java规范%>
<%for(i=6;i>=1;i--){
out.println("<h"+i+">"+"hello"+"</h"+i+">");
}%>
<%for(i=6;i>=1;i--){%>
<h<%=i %>>hello</h<%=i %>>
<%}%>
声明:<%! %>
注释:在页面不可见
1.<%--jsp注释:不参与Java编译运行,给jsp程序员看--%>
2.<% // java注释:不参与java编译运行,给java程序员看%>
3.<!--<%html注释:参与java编译运行%>-->
4. 静态指令
<%@ page%>
页面配置,定义文档的基本结构放到页面首部
<%@ page import="java.util.*,java.io.*"%>导包,可以定义多个
<%@ page errorPage="error.jsp"%>当前页面出现异常(包括java异常)时的跳转页面,url不会改变
<%@ page isErrorPage="true/false"%>为true时,才可以使用内置对象exception
<%@ include file=" " %>
静态包含,比动态包含效率高
特点:把包含的片段在转换成.java文件时包含,生成一个.java文件
<%@ taglib%>使用标签库
5. 动态指令
<jsp:include page=" "></jsp:include>
动态包含
特点:包含文件和当前文件都会转化成.java文件,然后编译成.class文件,在发送请求的时候,通过方法的调用包含文件内容
<jsp:param value="" name=""></jsp:forward>
动态传值
一般用于转发或包含子标签传值,可以用request.getParameter("");获取到
<jsp:forward page=""></jsp:forward>
动态转发
6. jsp的生命周期
jsp转换java文件,编译class,类加载器加载,创建对象,_jspInit方法,_jspService处理,_jspDestory方法
7. 九大内置对象
pageContext:PageContext
<%
pageContext.setAttribute("name", "admin");
Object obj=pageContext.getAttribute("name");
//第三个属性设定范围
pageContext.setAttribute("name", "admin",PageContext.REQUEST_SCOPE);
//等价于
application.setAttribute("name", "admin");
%>
<%=obj %>
request:HttpServletRequest
session:HttpSession
application:SercletContext
response:HttpServletResponse
out:JspWriter
page:this
config:ServletConfig
exception:Exception
8. 初始化参数的配置
web.xml
<servlet>
<servlet-name>hello</servlet-name>
<jsp-file>/test2.jsp</jsp-file>
<init-param>
<param-name>url</param-name>
<param-value>/test2.jsp</param-value>
</init-param>
</servlet>
<servlet-mapping>
<servlet-name>hello</servlet-name>
<url-pattern>/test2.html</url-pattern>
</servlet-mapping>