脚本元素

声明

声明的格式为:<%!    %>

声明是声明实例变量,在转换成Servlet源文件的时候是以属性的形式生成。

表达式

表达式是或者运算值

表达式的格式为:<%=   %>

scriptlet脚本

scriptletjava脚本,里面可以直接写java代码。

scriptlet的格式为:<%   %>

如下例:jiaoben.jsp

<%@ page language="java" import="java.util.*" pageEncoding="gbk"%>
	<html>
		<head>
	
			<title>My JSP 'jiaoben.jsp' starting page</title>
		</head>
		<%! int age = 28; %>
		<body>
			<%
	    	String mess = "test scriptlet";
	    	out.print(mess + "<br>");
	        if(age > 18){
	     %>
			成人拉!	<br>
			<%}%>
			该人的年龄为:
			<%=age %>
		</body>
	</html>

转换成Servlet 的代码如下:

package org.apache.jsp;
	
	import javax.servlet.*;
	import javax.servlet.http.*;
	import javax.servlet.jsp.*;
	import java.util.*;
	
	public final class jiaoben_jsp extends org.apache.jasper.runtime.HttpJspBase
			implements org.apache.jasper.runtime.JspSourceDependent {
	
		int age = 28;
	
		private static java.util.Vector _jspx_dependants;
	
		public java.util.List getDependants() {
			return _jspx_dependants;
		}
	
		public void _jspService(HttpServletRequest request, HttpServletResponse response)
	        throws java.io.IOException, ServletException {
	
	    JspFactory _jspxFactory = null;
	    PageContext pageContext = null;
	    HttpSession session = null;
	    ServletContext application = null;
	    ServletConfig config = null;
	    JspWriter out = null;
	    Object page = this;
	    JspWriter _jspx_out = null;
	
	
	    try {
	      _jspxFactory = JspFactory.getDefaultFactory();
	      response.setContentType("text/html;charset=gbk");
	      pageContext = _jspxFactory.getPageContext(this, request, response,
	      			null, true, 8192, true);
	      application = pageContext.getServletContext();
	      config = pageContext.getServletConfig();
	      session = pageContext.getSession();
	      out = pageContext.getOut();
	      _jspx_out = out;
	
	      out.write("\r\n\r\n<html>\r\n  <head>\r\n \r\n    <title>My JSP 'jiaoben.jsp' starting page</title>\r\n\r\n  </head>\r\n  ");
	      out.write("\r\n  <body>\r\n    ");
	
	    	String mess = "test scriptlet";
	    	out.print(mess + "<br>");
	        if(age > 18){
	     
	      out.write("鎴愪汉鎷夛紒<br>\r\n     ");
	}
	      out.write("\r\n     璇ヤ汉鐨勫勾榫勪负锛?);
	      out.print(age );
	      out.write("\r\n  </body>\r\n</html>\r\n");
	    } catch (Throwable t) {
	      if (!(t instanceof SkipPageException)){
	        out = _jspx_out;
	        if (out != null && out.getBufferSize() != 0)
	          out.clearBuffer();
	        if (pageContext != null) pageContext.handlePageException(t);
	      }
	    } finally {
	      if (_jspxFactory != null) _jspxFactory.releasePageContext(pageContext);
	    }
	  }
	}

注意:在 <% %>声明的String mess = "test scriptlet"; 是生成在方法里的。在<%!  %>声明的int age = 28; 是生成在属性里的。

执行完后生成的HTML代码如下:

<html>
	<head>
		<title>My JSP 'jiaoben.jsp' starting page</title>
	</head>
	<body>
		test scriptlet<br>
		成人拉!	<br>
		该人的年龄为:28
	</body>
</html>

在浏览器里的运行结果如下图:

注意: 在标准的开发里面,是不允许在页面里面直接写java代码的。在页面里面只能以标签的形式出现。本章后面会介绍通过自定义标签来取代直接写java代码的操作。但是在要求不高的小型项目里面,在页面里面直接使用java代码会提高开发效率。



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值