jsp的知识点总结(jsp的头部指令,常用脚本,常用标签)以及练习题(附代码)

jsp独特的语法、常用方法和应用场景。

目录

jsp的头部指令

jsp的常用脚本

i.声明脚本(极少使用)

i.表达式脚本(常用)

iii.代码脚本(常用)

常用标签

静态包含

动态包含

请求转发标签

jsp的练习题:

练习一:在 jsp 页面中输出九九乘法口诀表

练习二:jsp 输出一个表格,里面有 10 个学生信息。

应用场景:


jsp的头部指令

就是包含在<%@ page    %>的内容,很少使用,可忽略。

这个比较常用,可以在运行的时候提示用户,转到错误页面,常见的找不到服务器就是这样做的。

jsp的常用脚本

脚本(Script),是使用一种特定的描述性语言,依据一定的格式编写的可执行文件。

i.声明脚本(极少使用)

声明脚本的格式是:<%!声明java代码%〉
作用:可以给jsp翻译出来的java类定义属性和方法甚至是静态代码块。内部类等。

意思就是在jsp里面用Java来写一些属性和方法,比如:

i.表达式脚本(常用)

表达式脚本的格式是:<%=表达式%>
表达式脚本的作用是:在jsp页面上输出数据。
表达式脚本的特点:
1、所有的表达式脚本都会被翻译到 jspservice()方法中
2、表达式脚本都会被翻译成为out. print)输出到页面上
3、由于表达式脚本翻译的内容都在_ jspservice()方法中,所以 jspservice)方法中的对象都可以直接使用。
4、表达式脚本中的表达式不能以分号结束

<%=12>就会在浏览器中输出12这个数。

iii.代码脚本(常用)

代码脚本的格式是:<% %>java语句
代码脚本的作用是:可以在jsp页面中,编写我们自己需要的功能(写的是java语句)。
代码脚本的特点是:
1、代码脚本翻译之后都在 jspservice方法中
代码脚本由于翻译到jsp Service()方法中,所以在 jspservice0方法中的现有对象都可以直接使用
3、还可以由多个代码脚本块组合完成一个完整的java语句。
4、代码脚本还可以和表达式脚本一起组合使用,在jsp页面上输出数据

和表达式脚本差不多,可以结合起来使用,这样相当于在jsp中进行java编程。

<%!
    int a = 10;                          //声明脚本  可以用java中的单行注释  //
%>
<%
    if(1>0){                             //代码脚本,一个if语句
%>
<div> 1>0 </div>
<%
    }else{
%>
<div> 1<0 </div>                <%--普通的html语句--%>
<%
    }
%>

<%= 1>0 %>                      <%--表达式脚本--%>
<div> </div>
<%= a %>

上面的加粗部分就翻译成了下面这段 ,验证了:jsp代码语句可以由多个代码脚本块组合完成一个完整的java语句。

if(1>0){

      out.write("\r\n");
      out.write("<div> 1>0 </div>\r\n");

    }else{

      out.write("\r\n");
      out.write("<div> 1<0 </div>\r\n");

    }

那么在jsp中怎么注释呢,<%-- 这是 jsp 注释 --%>

常用标签

静态包含

使用场景:一般的网站最下面的内容基本都是一些友情链接,邮箱,联系方式等等,这份数据在这个网站的所有页面都一样,所以没有必要每个jsp页面都重复写这段代码,只需要维护一份就够了。

<%@include file="/footer.jsp %> 可以在footer.jsp 中写好描述尾部的代码,再利用这句话来包含就行了

具体实现方式:在浏览器翻译的时候找到footer.jsp文件,然后翻译到浏览器页面。

动态包含

<jsp:include page="footer.jsp"></jsp:include>

动态包含的特点
1动态包含会把包含的jsp页面地翻译成为java代码
2动态包含底层代码使用如下代码去週用被包含的jsp页面进行输出。
org.apache.jasper.runtime.JspRuntimeLibrary.include(request, response, "footer.jsp", out, false);
动态包含,还可以传递参数,比如

<jsp:include page="footer.jsp">

<jsp: param name="username "value="bb"/>
<jsp: param name="password"value="root"/>

</jsp:include>
 

动态包含的实现是在包含语句的地方调用一个函数去输出页脚信息,所以它可以利用jsp中的内置对象传递参数。

请求转发标签

可以转化为:

程序变得很简洁。

jsp的练习题:

练习一:在 jsp 页面中输出九九乘法口诀表

思路:使用代码脚本for循环、表达式脚本和常用的html语句实现。
<body>
<h1 align="center">九九乘法口诀表</h1>
<table align="center"> 居中表格
    <%for (int i = 1; i < 10; i++) {%>
    <tr> 循环显示i行
        <%for (int j = 1; j < i+1; j++) { %>
            <td><%=j%> x <%=i%> = <%=j*i%></td> 每i行是j个单元格
        <%}%>
    </tr>

    <%}%>

</table>
</body>

练习二:jsp 输出一个表格,里面有 10 个学生信息。

student类的构造
package pojo;

public class Student {
    private String name;
    private int age;
    private String phone;

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public int getAge() {
        return age;
    }

    public void setAge(int age) {
        this.age = age;
    }

    public String getPhone() {
        return phone;
    }

    public void setPhone(String phone) {
        this.phone = phone;
    }

    public Student(String name, int age, String phone) {
        this.name = name;
        this.age = age;
        this.phone = phone;
    }

    public Student() {
    }
}
test2.jsp先生成一个学生的列表,再显示到浏览器中。
-------------------格式---------------------
<head>
    <title>Title</title>
    <style>
        table{
            border: 1px black solid;
            width: 600px;
            border-collapse: collapse; /*边框合并*/
        }
        td,th{
            border: 1px black solid;
            text-align: center;
        }

    </style>
</head>
<body>
-------------------生成学生列表---------------------
<%

    ArrayList<Student> list = new ArrayList<Student>();
    for (int i = 0; i < 10; i++) {
        list.add(new Student("name" + i + 1, i + 18, "phone" + i + 1));
    }

%>
-------------------生成表格显示---------------------
<table align="center">


        <tr>
            <td>姓名</td>
            <td>年龄</td>
            <td>电话</td>
        </tr>
    <%
        for (Student student : list) {
    %>
    <tr>
        <td><%=student.getName()%>
        </td>
        <td><%=student.getAge()%>
        </td>
        <td><%=student.getPhone()%>
        </td>

    </tr>
    <%
        }
    %>
</table>

</body>

应用场景:

当我们点击搜索后,servlet程序获得搜索的参数,找到结果后保存到request域中,转到jsp中,jsp在显示的时候可以从req中得到搜索到的结果,显示出来。

比起直接用servlet程序去显示要方便的多。

资料来源:B站尚硅谷。

 

 

 

 

 

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

trigger333

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

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

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

打赏作者

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

抵扣说明:

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

余额充值