jsp语法和基础知识学习

jsp语法和基础知识学习

1.jsp的回顾

jsp:java server page//服务器端的页面

1.1.jsp的运行原理

jsp在执行时,会被服务器翻译为servlet编译执行,jsp就是一个Servlet

1.2jsp的脚本元素
<%! %>:jsp的声明翻译成servlet成员部分的内容。声明变量,方法和内部类
<%= %>:jsp的表达式用于将程序数据输出到客户端用于生成html页面的源码
<% %>嵌入java代码翻译成service方法内部的代码块,声明变量和内部类
1.3eclipse修改jsp默认的字符集编码

在这里插入图片描述

1.4JSP的注释

写法

java代码的注释格式<%

//单行注释

/多行注释/

%>

JSP的特有的注释的格式<%-- 该部分注释在网页中不会被显示–%>

html的注释不能用来注释java的代码

2.JSP的指令元素

2.1JSP的指令元素的概述
2.2jsp指令元素的作用

用于指示jsp执行的某些步骤

用于指示jsp变现特定的行为

2.3JSP指令元素的语法

语法:`

<%@ 指令名称 属性名称=属性的值  属性名称=属性的值 %>
2.4JSP指令元素的分类

page指令:指示jsp页面设置属性和行为

include指令:指示jsp包含哪些其他的页面

taglib指令:指示jsp页面包含哪些标签库

3.jsp的page指令

3.1

写法:

<%@ page属性名=属性值  %>这些指令可以单独使用也可以多个同时使用

注意在jsp页面中只有import属性可以出现多次,其他的属性都只能出现一次

3.2page指令的相关的属性

language属性:声明使用脚本语言的类型只能是java

extend属性:标明jsp编译成servlet的时候继承的类默认值:httpjspBase

session属性:标明jsp中是否可以直接使用使用session对象默认值是true

buffer属性:标明jsp对客户端缓冲区的大小

autoFlush属性:如缓冲区大小溢出,是否自动刷新默认true

import属性:用于导入java的包或类

contentType属性:标明jsp被浏览器解析和打开后采用的默认的字符集

pageEncoding属性:jsp文件及jsp翻译后的servlet保存的硬盘上采用的字符集

isErrorPage属性:处理jsp页面的异常

errorPage属性:处理jsp页面的异常

isELgnored属性:通知jsp是否忽略EL表达式。

4.include和taglib指令

4.1include指令简介

写法:<%@ include 属性名=属性值%>

作用:在jsp页面中包含哪些页面

语法格式:<%@ include file="引入文件的路径名称(xxx.html或xxx.html)"%>

静态的包含原理:-------

4.2taglib指令简介

写法:

<%@ taglib 属性名=属性值%>

作用:用于在jsp页面中引入标签库

taglib指令的属性

url:引入的标签库的路径

prefix:引入标签库的别名

5.jsp的内置对象

定义:jsp内置对象是指可以直接在jsp页面中直接使用的对象

jsp当中有九大内置对象:

request:从客户端向服务器发送的请求的对象

response:从服务器像客户端做出的响应的对象

session:服务器为客户端创建的会话的对象

application:代表应用。获得的servletcontent对象

out:向输出流写入内容的对象

page:当前的jsp翻译成servlet后的对象的引用

pageContext:本jsp的页面的上下文对象

config:本jsp的servletConfig对象

exception:表示jsp页面运行时产生的异常对象

pagecontent对象的概述

页面的上下文对象

代表页面当前运行的对象代表当前页面的一些属性

从pagecontent获取其他8个隐式对象(采用getxxx()方法)

6.JSP的动作标签

作用:用来在jsp页面中提供业务逻辑功能,避免jsp中直接编写java代码,造成jsp难以维护

格式:jsp:

jsp:forwaed 请求转发

jsp:include包含(动态包含)

<jsp:forward page="/index2.jsp"></jsp:forward>//jsp的请求转发
<jsp:include page="/index2.jsp"></jsp:include>//jsp的动态包含

案例

<%@ page import="java.util.List" %>
<%@ page import="java.util.ArrayList" %>
<%--
  Created by IntelliJ IDEA.
  User: Lenovo
  Date: 2021/1/19
  Time: 18:27
  To change this template use File | Settings | File Templates.
  学习:学习jsp Scriptlets(jsp脚本元素)jsp的声明语句和jsp表达式的基本的使用
  JSP的注释的格式同时在jsp中测试前端的编程技术
  对jsp进行基本的实验测试
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" pageEncoding="UTF-8" %>
<!DOCTYPE html>
<html>
<head>
    <title>JSP学习</title>
</head>
<style type="text/css">
    .one{
        width: 100px;
        height: 100px;
        background: blue;
        margin-top: 20px;
    }
</style>
<body>
<%--jsp的基本技术的应用--%>
<%!
    int i=4;
    int j=5;
    int x=1;
    int y=2;
    public int add(int i,int j){
        return i+j;
    }
//    在里面只能定义变量和定义方法,且生成的变量和方法属于类
%>
<%
    out.println("类变量i+j的值为;"+(i+j));
    out.print("<br>");
    int c=add(i,j);
    out.print("C的值为a+b="+c);
    out.print("<br>");
//    向前台打印9*9乘法表
    out.println("向前台打印9*9乘法表");
    out.print("<br>");
    for (int a=1;a<=9;a++){
        for (int b=1;b<=a;b++){
            out.println(a+"*"+b+"="+a*b);
        }
        out.println("<br>");
    }
    int i=2;
    int j=2;
    out.print("i+j的值为:"+(i+j));
    out.println("<br>");
    int a=5;
    int b=6;
//    在此jsp的脚本中可以编写java的代码但不能实现定义变量
%>

<%=
    "使用jsp脚本中的输出表达式i+j="+(i+j)
%>
<%=
    x+y
%>
<%=
    a+b
//在jsp脚本中输出表达式一次只能写一个表达式
%>

<%--这种格式是jsp的注释格式--%>
<!--这种注释是html的注释 -->
<div class="one">

</div>
</body>
</html>

<%--
  Created by IntelliJ IDEA.
  User: Lenovo
  Date: 2021/1/20
  Time: 19:08
  To change this template use File | Settings | File Templates.
  学习:学习jsp的指令的使用方法和常用到的知识点
  实验:对jsp的指令进行测试page指令和include指令
  其中常用到的指令为page指令
--%>

<%--
    其中page指令的格式为:
    <%@ page  属性名1=“属性值1” 属性名2=“属性值2”....%>
    page指令作用在整个jsp的文件与其书写位置无关但默认写在最前面
    作用:定义jsp页面的常用的属性值
--%>

<%--
    其中page常用到的属性的值为:
    language--采用的语言默认为java
    import-- 导入指定的包和类
    contentType--- 根据该属性判断文档的类型
    pageEnCoding--当前页面的指定的编码格式
--%>

<%--
    JSP中include指令的使用
    include作用包含其他的页面的静态的资源
    格式:<%@ inlude file="被包含的文件的地址" %>
--%>
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<%@ page import="java.util.Scanner" %>
<!DOCTYPE html>
<html>
<head>
    <title>Title</title>
</head>
<body>
<%
    response.setHeader("Content-Type", "text/html;charset=utf-8");
    request.setCharacterEncoding("utf-8");
    int c=doubleadd();
    System.out.println("a+b="+c);
%>

<%!
/*
求任意输入的两个数的值
 */
    public int  doubleadd(){
        System.out.println("请输入a和b的值");
        Scanner sc=new Scanner(System.in);
        int a=5;
        int b=3;
        return a+b;
    }

%>
<%--
使用jsp的include指令包含两个静态的资源
--%>

<%@include file="demo.html"%>
</body>
</html>

<%--
  Created by IntelliJ IDEA.
  User: Lenovo
  Date: 2021/1/20
  Time: 22:45
  To change this template use File | Settings | File Templates.
  JSP隐式对象的学习
  隐式对象;jsp默认直接创建的对象
  JSP中共有九大隐式对象
  out
  requset
  response
  config:服务器配置可以获得初始化参数
  session
  application:获取用户的共享信息
  page
  pageContent:jsp页面的容器
  exception
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" pageEncoding="UTF-8" %>
<%@ page import="java.util.*" %>
<html>
<head>
    <title>JSP隐式对象的学习</title>
</head>
<body>
<%--
    out对象的使用:使用out时相当于把数据先写入到JspWriter对象的缓冲区里
    调用ServletResponse.getWriter()方法才能将缓存区的数据真正写入到servlet引擎中
    直到整个jsp页面结束才能将数据写入到jsp的引擎中
    response.getWriter()是直接将数据写入到jsp的引擎中
    可以通过page属性设置buffer属性来设置缓冲区的大小
--%>
<%@ page buffer="0kb" %>
<%
    out.print("first line<br/>");
    response.getWriter().println("second line<br/>");
%>

<%--
    pageContext对象的练习使用
    通过该对象可以获取其他的8个隐式对象
--%>
</body>
</html>

<%--
  Created by IntelliJ IDEA.
  User: Lenovo
  Date: 2021/1/21
  Time: 10:34
  To change this template use File | Settings | File Templates.
  实验:通过使用jsp的动作元素来实现控制jsp的行为
  <jsp:include>动作元素:把其他页面的输出内容插入到当前jsp页面的输出内容
--%>
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<%@ page import="java.util.*" %>

<html>
<head>
    <title>JSP动作元素的使用</title>
</head>
<body>
<%--
    使用JSP的动作元素<jsp:include>
    基本的格式:<jsp:include page="relativeURL" flush="true|false">
    page属性用来引入指定资源的相关的路径
    flush属性是否将资源刷新到缓存区默认情况下为false
    值为false时将值同时显示出来
    值为true时先显示当前jsp页面的值
--%>
123456
<%@ include file="demo.html"%>
<jsp:include page="include.jsp" flush="true"/>
<jsp:forward page="demo3.jsp"/>
<%--
    <jsp:forward>动作元素的简单使用和介绍
    语法格式
    <jsp:forward page="relativeURL">
    page属性后加转发的相对的路径类似于请求的zhuafa
--%>
</body>
</html>

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

程序小旭

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值