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