有好多话,想说确无从说起。有时候,触碰着自己的痛点,我总会避开他不去谈论。例如我现在,就是这样的。本来想着说点自己迫切要说的,但是还是扯到了别的地方---笔者买了一个平板,外加一个256gTF卡。虽然2000块就这么干没了,但是自己想做的想买的做到了,就是最大的慰藉。----闲扯结束。

一、什么是jsp

虽然,笔者写过好多好多的jsp代码。但是对jsp的具体定义,今天也是第一次。对于一个触碰电脑只有几年的人来说。一切都是未知的,充满好奇的领域。 百度百科里这样说:“ ①JSP全名为Java Server Pages,中文名叫java服务器页面,其根本是一个简化的Servlet设计。 ②JSP技术有点类似ASP技术,它是在传统的网页HTML(标准通用标记语言的子集)文件(.htm,.html)中插入Java程序段(Scriptlet)和JSP标记(tag),从而形成JSP文件,后缀名为(.jsp)。 ③用JSP开发的Web应用是跨平台的,既能在Linux下运行,也能在其他操作系统上运行它实现了Html语法中的java扩展(以 <%, %>形式)。 ④JSP与Servlet一样,是在服务器端执行的。通常返回给客户端的就是一个HTML文本,因此客户端只要有浏览器就能浏览。 ⑤JSP技术使用Java编程语言编写类XML的tags和scriptlets,来封装产生动态网页的处理逻辑。网页还能通过tags和scriptlets访问存在于服务端的资源的应用逻辑。 **⑥Java Servlet是JSP的技术基础,而且大型的Web应用程序的开发需要Java Servlet和JSP配合才能完成。**”

二、jsp动作

三、举例说明jsp7个动作

①jsp: include

	`<jsp:include page="included.jsp" flush="true" />`

②jsp:useBean

		<jsp:useBean id="currentDate" class="java.util.Date" scope="request" />
		<%=currentDate.toString() %>
**【值得说明的地方】
scope="request" 每次请求服务器,得到新的时间
scope="application" 应用第一次创建useBean实例时便在内存中存储。除非重启服务否则不会改变
scope="session" 当前浏览器的一次请求,同session的属性。**

③ jsp:getProperty

<jsp:getProperty name="currentDate" property="seconds" />

** 【说明】 name为useBean中的ID、property为XXX.class中的属性名**

④jsp:setProperty

<!-- 先利用setProperty设置对象属性 -->
<jsp:setProperty name="currentDate" property="seconds" value="38"/>
<!-- 我们再调用一遍瞅瞅 -->
<jsp:getProperty name="currentDate" property="seconds" />

⑤ jsp:param

<jsp:include page="params.jsp" >
    <jsp:param name="p1" value="我喜欢"></jsp:param>
    <jsp:param name="p2" value="婓蘋庅璩"></jsp:param>
</jsp:include>

⑥ jsp:forward

<jsp:forward page="要跳转的.jsp" /> 

⑦jsp:plugin:指定客户端运行的插件

四、演示jsp动作

A、定义include.jsp

<%@ 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=ISO-8859-1">
<title>Insert title here</title>
</head>
<body>
呵呵,我是jsp:include的include.jsp
</body>
</html>

B、定义params.jsp

		<%@ 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>
		<%
			String p1 = new String(request.getParameter("p1").getBytes("ISO-8859-1"), "UTF-8");
			String p2 = new String(request.getParameter("p2").getBytes("ISO-8859-1"), "UTF-8");;
		%>
		<%=p1 %>就是喜欢<%=p2 %>所以就有了<%=p1 %>_<%=p2 %>
		</body>
		</html>

C、定义jsp7个动作

<%@ 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>
	<h2>jsp: include</h2>
	<jsp:include page="included.jsp" flush="true" />
	<h2>jsp:useBean</h2>
	<jsp:useBean id="currentDate" class="java.util.Date" scope="request" />
	<%=currentDate.toString() %>
	<!-- 
	【值得说明的地方】
	scope="request" 每次请求服务器,得到新的时间
	scope="application" 应用第一次创建useBean实例时便在内存中存储。除非重启服务否则不会改变
	scope="session" 当前浏览器的一次请求,同session的属性。
	 -->
	<h2>jsp:getProperty</h2>
	<jsp:getProperty name="currentDate" property="seconds" />
	<!-- 
	【说明】
	name为useBean中的ID、property为XXX.class中的属性名
	 -->
	<h2>jsp:setProperty</h2>
	<!-- 先利用setProperty设置对象属性 -->
	<jsp:setProperty name="currentDate" property="seconds" value="38"/>
	<!-- 我们再调用一遍瞅瞅 -->
	<jsp:getProperty name="currentDate" property="seconds" />
	<h2>jsp:param</h2>
	<jsp:include page="params.jsp" >
			<jsp:param name="p1" value="Red"></jsp:param>
			<jsp:param name="p2" value="Ant"></jsp:param>
	</jsp:include>
	<%-- <h2>jsp:forward</h2>
	<jsp:forward page="要跳转的.jsp" /> --%>
	<!--<h2>jsp:plugin:指定客户端运行的插件</h2>-->
</body>
</html>

五、运行效果

【后话】: jsp:plugin指定客户端运行的插件,这块肯定很有意思。以后看看有时间吗,研究下。