jsp独特的语法、常用方法和应用场景。
目录
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 页面中输出九九乘法口诀表
<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 个学生信息。
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() { } }
-------------------格式--------------------- <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站尚硅谷。
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/92902.html