jsp基础语法

    jsp的本质就是servlet,因此只要是可以在servlet中实现的功能都可以放在jsp中实现,但是这种开发方式是不推荐使用的。在日常的开发中我们一般把jsp作为视图层,只负责渲染数据展示给用户。一个jsp页面除了包含html代码外还有指令元素、动作元素和脚本元素。接下我就来介绍一下如何在jsp页面中使用这些元素。

    一、jsp脚本

    定义:脚本程序,就是为了在HTML中穿插java代码,可以包含任意语法真确的java语句,变量,方法或表达式。生成servlet源码时该处的代码被放到_jspService()方法中。关于脚本如果大家做过php web开发的话应该比较的熟系,这里和使用原生php开发有点类似

    语法:<% 代码片段 %> 这里需要注意的是在<%  %> 区域内只能写java代码,不能写html标签等元素。

<%@ 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; utf-8">
<title>Insert title here</title>
</head>
<body>
    <h3>index.jsp</h3>
    
    <%  
        int sum = 0; //这里必须赋值
        for(int i=1;i<=100;i++){
            sum =sum+i; 
        }
        out.print("1~100的和为"+sum);
    %>
</body>
</html>

输出:1~100的和为5050

在jsp中除了可以写java脚本外还可以写jsp表达式,关于jsp表达式,平时开发中使用的不多,我们只需要了解即可。语法:<%= 表达式 %>,这里的表达式相当于out.write,例如

<%@ 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; utf-8">
<title>Insert title here</title>
</head>
<body>
    <h3>index.jsp</h3>
    
    <%
      int a=10,b=10;
    %>
    <%=(a+b) %>
</body>
</html>

输出:20

    二、三大编译指令

    定义:JSP编译指令用来设置与整个JSP页面相关的属性。三个编译指令分别是:page,include,taglib。

    1.page指令

    语法:<%@ page attribute="value" %>  page指令主要用于定义jsp页面的使用说明以及一些依赖的信息,例如:页面的编码,是否启用session和导入一些java类等。实例代码:

<%@ page language="java" contentType="text/html; charset=utf-8"
    pageEncoding="utf-8"%>
<%@ page import="java.util.Date" %>
<%@ page import="java.text.SimpleDateFormat" %>
<!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; utf-8">
<title>Insert title here</title>
</head>
<body>
    <h3>index.jsp</h3>
    
    <%
      Date now = new Date();
      String nowStr = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(now);
    %>
    <%=nowStr %>
</body>
</html>

输出:2019-09-16 16:04:54
    2.include指令

    语法:<%@ include file="url" %>

    作用:在进行web开发时,一般的网页的head和foot是固定的,所以我们一般会把这部分代码提取出来供所有的页面引用。在jsp中可以通过include指令来包含其他文件。这里需要我们注意的是使用include指令引入的页面叫做静态包含,引入的文件内容会被翻译到源文件中去合成一个java文件然后编译,这种引入方式叫做静态包含。代码实例:1.创建一个jsp页面 2.在index.jsp页面引入新创建的jsp页面。

<%@ page language="java" pageEncoding="utf-8"%>
<h3>我是引入的页面</h3>
<%@ 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; utf-8">
<title>Insert title here</title>
</head>
<body>
    <h3>index.jsp</h3>
    <%@ include file="/index_include.jsp" %>
</body>
</html>

浏览器输出:

 

     3.taglib指令

    语法:<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>

    作用:taglib指令主要用于导入用户自定义的标签库。关于如何定义标签库我以后在来介绍,所以这里我们只需要知道有这样的一个指令即可。

    三、动作指令

    动作指令指的是jsp运行时的动作,在jsp中有七大动作指令但是我只介绍最常用的forward动作指令和include动作指令。

    1.include动作指令

    语法:<jsp:include page="URL"/>

    作用:include动作指令用户动态的引入jsp页面。注意这里和上面介绍的静态包含是有区别的,动态包含是在请求到达时如果发现还包含另一个jsp,那么被包含页面会再生成另一个servlet。

<%@ page language="java" contentType="text/html; charset=utf-8"
    pageEncoding="utf-8"%>
<%@ page import="java.util.Date" %>
<%@ page import="java.text.SimpleDateFormat" %>
<!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; utf-8">
<title>Insert title here</title>
</head>
<body>
    <h3>index.jsp</h3>
    <%-- <%@ include file="/index_include.jsp" %> --%>
    <jsp:include page="/index_include.jsp"/>
</body>
</html>

动态包含下的class文件:

 

 静态包含下的class文件:

 

     2.forward指令

    作用:forward动作把请求转到另外的页面,类似于getRequestDispatcher("/GetData").forward(request, response)。

    语法:<jsp:forward page="URL"/>

    

<%@ 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>login</title>
</head>
<body>
      这里是login.jsp
</body>
</html>
<%@ page language="java" contentType="text/html; charset=utf-8"
    pageEncoding="utf-8"%>
<%@ page import="java.util.Date" %>
<%@ page import="java.text.SimpleDateFormat" %>
<!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; utf-8">
<title>Insert title here</title>
</head>
<body>
   <jsp:forward page="login.jsp"/>
</body>
</html>

访问index.jsp,浏览器输出:

 

 

 

    

    

    

posted @ 2019-09-16 17:08  牧神风  阅读(436)  评论(0编辑  收藏  举报