Logo

郎哥编程

JSP脚本

2021-09-30 345

JSP脚本元素允许将Java代码插入到JSP页面,这些Java代码会在服务器端执行,执行结果输出到JSP页面。

JSP脚本元素有3种格式:

(1) 表达式格式 <%=表达式%>;

(2) 小脚本格式<%Java代码%>;

(3) 声明格式<%!Java代码%>;

1、 表达式格式

JSP表达式用来将值直接插入到JSP页面,JSP表达式语法如下:

<%=Java表达式%>

它将计算Java表达式,并将计算结果转换为字符串插入到JSP页面。例如,以下内容将当前时间插入到JSP页面:

当前时间: <%= new java.util.Date() %>。

在使用表达式时,可以使用一些预定义的Java对象,这些Java对象可以直接在表达式使用:

(1)HttpServletRequest

HttpServletRequest对象代表客户端的请求,当客户端通过HTTP协议访问服务器时,HTTP请求头中的所有信息都封装在这个对象中,通过这个对象提供的方法,可以获得客户端请求的所有信息。该对象在JSP表达式的表示方式为request。

(2)HttpServletResponse

服务器收到客户端的http请求,会针对每一次请求,分别创建一个用于代表请求的HttpServletRequest对象、和代表响应的HttpServletResponse对 象。HttpServletResponse对象代表服务器的响应,要向客户端输出数据,需要使用HttpServletResponse对象。

新建sample_two.jsp文件,在页面中输出客户端请求信息。sample_two.jsp代码如下:

<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
    <title>JSP表达式</title>
</head>
<body>
<ul>
    <li>请求URL:<%= request.getRequestURL() %></li>
    <li>请求11主机地址:<%= request.getRemoteHost() %></li>
</ul>
</body>
</html>

浏览器执行sample_two.js页面结果如下图所示:

01.png

 

2、 JSP小脚本

JSP小脚本可以执行更复杂的操作,可以编写Java代码段,而JSP表达式仅允许执行Java表达式。JSP小脚本可以添加到JSP页面的任意位置,其添加顺序和执行顺序是一致的。JSP小脚本语法如下:

<% Java代码 %>

新建sample_three.jsp文件,在页面中添加JSP小脚本。sample_three.jsp代码如下:

<%@ page import="java.util.ArrayList" %>
<%@ page import="java.util.List" %>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
    <title>Title</title>
</head>
<body>
<%
    List<String> list = new ArrayList<String>();
    list.add("hello world");
    list.add("hello java");
%>
<h2>Java小脚本</h2>
<ul>
<%
    for( int i = 0; i < list.size(); i++ )
    {
%>
    <li><%= list.get(i) %></li>
<%
    }
%>
</ul>
</body>
</html>

执行结果如下图所示:

 02.png

3、 JSP声明

JSP 声明用来定义程序中使用的实体,如变量、方法和类,使用JSP声明定义的变量、方法和类,可以在JSP整个页面中使用。JSP声明语法如下:

<%! Java代码 %>

JSP声明不会输出任何内容,所以它经常与JSP表达式或者小脚本配合使用。

新建sample_four.jsp文件,在页面中声明方法multiTable(),该方法生成九九乘法表,然后在页面中调用该方法输出九九乘法表。sample_four.jsp代码如下:

<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
    <title>JSP声明</title>
</head>
<body>
<%!
  String multiTable(){
    StringBuilder builder = new StringBuilder();
    for(int i=1;i<=9;i++){
      for(int j=1;j<i;j++){
        builder.append(i + "*" + j + "=" + i*j + "    ");
      }
      builder.append("<br/>");
    }
    return builder.toString();
  }
%>
<h2>九九乘法表</h2>
<%= multiTable()%>
</body>
</html>

执行结果如下图所示:

 03.png

4、 使用XML语法

JSP表达式也可以使用基于XML语言的语法:

<jsp:expression>
Java表达式
</jsp:expression>

XML元素不同于HTML元素,它们区分大小写,需要使用小写形式的jsp:expression。

JSP小脚本也可以使用基于XML语言的语法:

<jsp:scriptlet>
Java代码
</jsp:scriptlet>

JSP声明也可以使用基于XML语言的语法:

<jsp:declaration>
Java代码
</jsp:declaration>

5、 预定义的Java对象

为了简化JSP脚本中的代码,JSP预定义了8种Java对象,这些Java对象可以直接在JSP中使用。预定义的8种Java对象为:request、response、out、session、application、config、pageContext、page。

前面已经介绍了request和response对象,下面简单介绍后面6种预定义的Java对象。

out对象

out对象用于向浏览器输出数据,使用response对象也可以向浏览器输出数据。

session对象

session对象为与请求有关的HttpSession对象。当用户通过浏览器向服务器发送请求时,服务器会为每个用户创建一个会话对象,即session对象。session用来分别保存每一个用户的信息,使用session可以轻易地识别每一个用户,然后针对每一个用户的要求,给予正确的响应。

application对象

该对象是服务器的全局对象,用于保存应用程序的公用数据。服务器启动后,会自动创建 application 对象,所有用户共享 application 对象。

config对象

config对象为与Servlet有关的ServlerConfig对象,用于获取Servlet的配置数据。

pageContext对象

该对象主要用于访问JSP之间的共享数据。使用pageContext可以访问page,request,session,application范围内的变量。

page对象

page对象指向当前JSP本身,有点像类中的this指针,它是java.lang.Object类的实例。

代码在线纠错(通义千问 qwen-max)

支持粘贴多个代码文件,提交后由阿里云通义千问自动分析代码漏洞、语法错误、逻辑问题并给出修改建议。
您已解锁 AI 代码纠错功能,可正常使用!

评论区

登录 后发表评论
暂无评论