JSP中的Scriptlet

简介:

3.2Scriptlet

        JSP 中大部分都是由脚本小程序组成,所谓的脚本小程序就是里面直接包含了 JAVA 代码。
JSP Scriptlet 一共分为三种:
        ·  <%%> :定义局部变量,编写语句
        ·  <%!%> :定义全局变量,可以编写类、方法
        ·  <%=%> :表达式输出,专门输出变量或一个具体值

3.2.1<%%>

        此为最常见的 Scriplet 代码,代码如下:
JSPDemo02.jsp
<%
         int i = 10 ;
         int j = 20 ;
         out.println(i * j) ;
         out.println("<h1>"+(++i)+"</h1>") ;
%>
        发现,以上的程序无论怎么刷新页面, i 的内容依然是 11 ,是固定的,因为每次都重新声明了。

3.2.2<%!%>

        一般情况下都会使用此 Scriplet 定义一个全局变量,全局变量是无论怎么刷新,都只声明一次,只有很少的情况下才会用此语句去定义一个方法,但是 100% 情况下是不可能去定义一个类的。
<%!
         int i = 10 ;
         int j = 20 ;
%>
<%
         out.println(i * j) ;
         out.println("<h1>"+(++i)+"</h1>") ;
%>
        程序中,只要一刷新页面,则就自己增加,因为声明的是一个全局变量,所以只声明一次。
例如: <%!%> 定义一个方法,不要轻易这样使用
<%!
         int i = 10 ;
         int j = 20 ;
         public int add(int x,int y){
                   return x + y ;
         }
%>
<%
         out.println(add(10,20)) ;
         out.println("<h1>"+(++i)+"</h1>") ;
%>

3.2.3<%=%>

        表达式输出,专门输出一个变量或一个具体的值。
例如: 以下代码使用了表达式输出
<%
         int i = 10 ;
%>
<%=i%>
<%="hello World!!!"%>

3.2.4、使用那种输出更好呢?

        之前已经学过了两种输出数据:
               ·  out.println
               ·  <%=%>
        为了验证此程序,下面通过两段代码进行比较,此代码的功能就是在屏幕上打印一个表格。
1    使用out.println() 完成
<%
         out.println("<table border=\"1\">") ;
         for(int i=0;i<10;i++){
                   out.println("<tr>") ;
                   for(int j=0;j<10;j++){
                            out.println("<td>"+(i*j)+"</td>") ;
                   }
                   out.println("</tr>") ;
         }
         out.println("</table>") ;
%>
        以上确实已经完成了功能。但是现在需要美化表格的话,根本无法用网页工具进行编辑。因为把 JAVA 代码和 HTML 代码绑在一起了,所以修改困难
2    使用<%=%> 完成
        所以,最好将 HTML JAVA 代码进行分割
<table border="1">
<%
         for(int i=0;i<10;i++){
%>
                   <tr>
<%
                   for(int j=0;j<10;j++){
%>
                            <td><%=i*j%></td>
<%
                   }
%>
                   </tr>
<%
         }
%>
</table>
        通过以上实现的代码,发现使用表达式输出要比直接使用 out.println 输出更方便,而且便于修改,所以在开发中严格要求,不允许出现任何的 out.println 语句。

3.2.5、思考?

        要求 JSP 页面可以根据用户前台表单输入的信息,打印表格,例如:前台可以输入表格的行数和列数。接收之后进行打印。
JSPDemo08.htm
<FORM METHOD="POST" ACTION="JSPDemo08.jsp" border="1">
<TABLE>
<TR>
         <TD colspan="2"> 打印表格 </TD>
</TR>
<TR>
         <TD> 输入要打印表格的行数: </TD>
         <TD><input type="text" name="rownum"></TD>
</TR>
<TR>
         <TD> 输入要打印表格的列数: </TD>
         <TD><input type="text" name="colnum"></TD>
</TR>
<TR>
         <TD colspan="2">
                   <input type="submit" value=" 打印 ">
                   <input type="reset" value=" 重置 ">
         </TD>
</TR>
</TABLE>
</FORM>
JSPDemo08.jsp
<%
         //  需要接收请求内容
         int row = 0 ;
         int col = 0 ;
         try{
                   row = Integer.parseInt(request.getParameter("rownum")) ;
                   col = Integer.parseInt(request.getParameter("colnum")) ;
         }catch(Exception e){
%>
                   <h1>ERROR!!!</h1>
<%
         }
%>
<table border="1">
<%
         for(int i=0;i<row;i++){
%>
                   <tr>
<%
                   for(int j=0;j<col;j++){
%>
                            <td><%=i*j%></td>
<%
                   }
%>
                   </tr>
<%
         }
%>
</table>
        整个程序上体现出了完整的交互性的效果,根据用户输入的内容可以自己进行相应的输出。而且 JAVA 中的所有语句,在此处都可以使用。









本文转自 李兴华 51CTO博客,原文链接:http://blog.51cto.com/lixinghua/101379,如需转载请自行联系原作者
目录
相关文章
|
5天前
|
Java
编写一个jsp页面,利用Scriptlet编写一段计算代码,要求用零作为除数,并使用page指令将错误信息显示在另外一个jsp页面,产生的错误信息为“错误,不能用0做除数”
该文章展示了如何创建一个JSP页面,使用Scriptlet编写包含除零操作的计算代码,并配置page指令将错误信息重定向至另一个JSP页面进行显示。
编写一个jsp页面,利用Scriptlet编写一段计算代码,要求用零作为除数,并使用page指令将错误信息显示在另外一个jsp页面,产生的错误信息为“错误,不能用0做除数”
|
3月前
|
XML 前端开发 Oracle
16:JSP简介、注释与Scriptlet、Page指令元素、Include操作、内置对象、四种属性-Java Web
16:JSP简介、注释与Scriptlet、Page指令元素、Include操作、内置对象、四种属性-Java Web
25 2
|
Java
JSP中的注释操作及JSP中的三种Scriptlet
JSP中的注释操作及JSP中的三种Scriptlet
54 0
|
5天前
|
SQL Java 数据库
jsp中使用Servlet查询SQLSERVER数据库中的表的信息,并且打印在屏幕上
该博客文章介绍了在JSP应用中使用Servlet查询SQL Server数据库的表信息,并通过JavaBean封装图书信息,将查询结果展示在Web页面上的方法。
jsp中使用Servlet查询SQLSERVER数据库中的表的信息,并且打印在屏幕上
|
5天前
|
供应链 前端开发 Java
JSP+servlet+mybatis+layui服装库存管理系统(大三上学期课程设计)
这篇文章通过一个服装库存管理系统的实例,展示了在Spring Boot项目中使用Ajax、JSON、layui、MVC架构和iframe等技术,涵盖了注册登录、权限管理、用户管理、库存管理等功能,并提供了系统运行环境和技术要求的详细说明。
JSP+servlet+mybatis+layui服装库存管理系统(大三上学期课程设计)
|
2月前
|
自然语言处理 前端开发 Java
Servlet与JSP:Java Web开发的基石技术详解
【6月更文挑战第23天】Java Web的Servlet与JSP是动态网页的核心。Servlet是服务器端的Java应用,处理HTTP请求并响应;JSP则是结合HTML与Java代码的页面,用于动态内容生成。Servlet通过生命周期方法如`init()`、`service()`和`destroy()`工作,而JSP在执行时编译成Servlet。两者在MVC架构中分工,Servlet处理逻辑,JSP展示数据。尽管有Spring MVC等框架,Servlet和JSP仍是理解Web开发基础的关键。
62 12
|
2月前
|
存储 Java 关系型数据库
基于Servlet和JSP的Java Web应用开发指南
【6月更文挑战第23天】构建Java Web应用,Servlet与JSP携手打造在线图书管理系统,涵盖需求分析、设计、编码到测试。通过实例展示了Servlet如何处理用户登录(如`LoginServlet`),JSP负责页面展示(如`login.jsp`和`bookList.jsp`)。应用基于MySQL数据库,包含用户和图书表。登录失败显示错误信息,成功后展示图书列表。部署到Tomcat服务器测试功能。此基础教程为深入Java Web开发奠定了基础。
56 10
|
2月前
|
缓存 小程序 前端开发
Java服务器端技术探秘:Servlet与JSP的核心原理
【6月更文挑战第23天】Java Web开发中的Servlet和JSP详解:Servlet是服务器端的Java小程序,处理HTTP请求并响应。生命周期含初始化、服务和销毁。创建Servlet示例代码展示了`doGet()`方法的覆盖。JSP则侧重视图,动态HTML生成,通过JSP脚本元素、声明和表达式嵌入Java代码。Servlet常作为控制器,JSP处理视图,遵循MVC模式。优化策略涉及缓存、分页和安全措施。这些技术是Java服务器端开发的基础。
38 9
|
2月前
|
缓存 安全 Java
Java服务器端技术:Servlet与JSP的集成与扩展
【6月更文挑战第23天】Java Web开发中,Servlet和JSP是构建动态Web应用的基础。Servlet处理逻辑,JSP专注展示。示例展示了Servlet如何通过`request.setAttribute`传递数据给JSP渲染。JSP自定义标签提升页面功能,如创建`WelcomeTag`显示欢迎消息。Servlet过滤器,如`CacheControlFilter`,用于预处理数据或调整响应头。这些集成和扩展技术增强了应用效率、安全性和可维护性,是Java服务器端开发的关键。
44 7