一、什么是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> <h1>呵呵,我是jsp:include的include.jsp</h1> </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指定客户端运行的插件,这块肯定很有意思。以后看看有时间吗,研究下。