Java Server Pages----JSP

 1、jsp(实质上就是一个servlet)
(1)jsp脚本:
   1)<% java代码 %>--相当于写在方法里;所以不能定义方法;
   2)<%= java变量或表达式%>---相当于写在out.print()里面
   3)<%!java代码%>---相当于成员变量;所以能定义方法;
(2)jsp注释:
   1)//java单行注释    jsp源码、翻译后的servlet、
   2)/*java多行注释*/   jsp源码、翻译后的servlet、
   3)<!--html注释-->     jsp源码、翻译后的servlet、html源代码
   4)<%--jsp注释--%>     jsp源码、
(3)jsp运行原理
   第一次访问index.jsp --> index_jsp.java [Tomcat下的work目录下] --> 编译运行;
(4)jsp三大指令
  1)page指令:
      language:jsp脚本可以嵌套的代码,但是只能是java;
      pageEncoding:当前jsp脚本的编码
      contentType:"text/html; charset=UTF-8"相当于响应的中文乱码问题解决;
      session:"true","false";
      import:导包;
      errorPage:当前页面出错跳转到其他页面;
      isErrorPage:当前页面是一个处理错误的页面;
  2)include指令:
      静态:<%@ include file="被包含的文件地址"%>;动态:<jsp:include page="被包含的页面"/>;
      静态包含:被包含文件不编译,直接以Html进入文件;动态包含:被包含文件编译,指向被包含文件地址,进行编译;
  3)taglib指令;
(5)九大内置对象:out、request、response、config、session、application、page、pagecontext、exception、
(6)out对象:out缓冲区的内容添加到response缓冲区、默认为buffer="8kb",设置"0kb"时直接进入response缓冲区;
(7)pageContext对象:pageContext可以向指定的其他域中存取数据;
            findAttribute(String name)依次从pageContext域,request域,session域,application域中获取属性,
            在某个域中获取后将不在向后寻找
    pageContext.getRequest();可以获得其他8大隐式对象
(8)jsp标签(动作):
    1)页面包含(动态包含):<jsp:include page="被包含的页面"/>
    2)请求转发:<jsp:forward page="要转发的资源" />

静态包含与动态包含的区别?

静态包含在翻译的时候,将多个JSP合并翻译成了一个Servlert。
动态包含在翻译的时候,每个JSP文件都翻译成了对应Servlet,在程序运行加载到JVM中的时候动态合并
动态包含可以传递参数。

<%@ page language="java" contentType="text/html; charset=utf-8"
    pageEncoding="utf-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>Insert title here</title>
</head>

<body>
<!-- include的静态包含 -->>
<%@ include file="/Header.jsp"%>
<h1>这是内容页!!!</h1>
<%@ include file="/Footer.jsp"%>
</body>

</html>
<%@ page language="java" contentType="text/html; charset=utf-8"
    pageEncoding="utf-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>Insert title here</title>
</head>
<body>
<h1>这是include1</h1>
</body>
</html>
<%@ page language="java" contentType="text/html; charset=utf-8"
    pageEncoding="utf-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>Insert title here</title>
</head>
<body>
<!--include的动态包含--> <jsp:include page ="/include1.jsp"/> <h1>这是include2</h1> </body> </html>
<%@ page language="java" contentType="text/html; charset=utf-8"
    pageEncoding="utf-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>Insert title here</title>
</head>
<body>
这是forward1.jsp
<!--include的动态转发-->
<jsp:forward page="/forward2"></jsp:forward> </body> </html>
<%@ page language="java" contentType="text/html; charset=utf-8"
    pageEncoding="utf-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>Insert title here</title>
</head>
<body>
这是forward2.jsp
</body>
</html>
原文地址:https://www.cnblogs.com/time-to-despair/p/9856941.html