JSP

  • jsp 的全换是 java server pages。Java 的服务器页面。 jsp 的主要作用是代替 Servlet 程序回传html 页面的数据。
  • Servlet技术产生后,在使用时最麻烦的是使用大量的out.print语句输出页面。JSP就是用来将Servlet中负责输出显示的语句抽取出来。
  • JSP是一个以.jsp为后缀的文件,该文件中主要是HTML和少量的java代码。JSP文件会被容器转换成一个Servlet类,然后执行。

JSP编写规范

JSP页面中的HTML代码
JSP页面中的HTML包括HTML标记、CSS、JavaScript,像编写HTML页面一样编写即可,作用是控制页面在浏览器中显示的效果。
JSP中的注释

<!--这是html注释-->
<%--这是jsp注释--%>

JSP页面中的java代码
JSP页面中的java代码包括JSP表达式、JSP小脚本、JSP声明,编写在页面的任意位置,控制页面中可变内容的产生

JSP指令

page指令

在JSP页面中,经常需要对页面的某些特性进行描述,例如页面的编码方式、JSP页面采用的语言,这时可以使用page指令来实现。格式如下:

<%@ page 属性名1="属性名1" 属性名2="属性名2" ...%>

page指令的常用属性

属性名取值范围描述
languagejava指明解释该JSP文件采用的语言,默认java
import任何包名、类名指定JSP页面翻译成的Servlet源文件中导入的包或类
sessiontrue false指明JSP内是否内置Session对象
isErrorPagetrue false指明该页面是否为错误处理页面
errorpage某个JSP页面的相对路径指定一个错误页面,如果该JSP程序抛出一个未捕获的异常,则转到指定的页面
contextType有效的文档类型客户端浏览器根据该属性判断文档内容
pageEnCoding当前页面指定页面的编码格式

include指令

有时需要在JSP页面静态包含一个文件,例如HTML文件,文本文件,这时可以使用include指令实现。格式如下:

<%@ include file="被包含的文件地址"%>

include指令只有一个file属性,该属性用来指定插入到JSP页面目标位置的文件资源,一般不以“/”开头,而是使用绝对路径。
JSP指令练习:在JSP页面输出当前系统时间
date.jsp

<%@ page import="java.io.PrintWriter" %>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
    <title>Title</title>
</head>
<body>
<% response.getWriter().println(new java.util.Date().toLocaleString());%>
</body>
</html>

include.jsp

<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
    <title>Title</title>
</head>
<body>
欢迎你:当前时间为:
<%@include file="date.jsp"%>
</body>
</html>

在这里插入图片描述

JSP表达式及代码块

表达式

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

<%=12 %> <br> 
<%=12.12 %> <br> 
<%="我是字符串" %> <br> 
<%=map%> <br> 
<%=request.getParameter("username")%>

代码块

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

JSP隐式对象

9大内置对象

名称描述
out用于页面输出
request得到用户请求信息
response服务器向客户端的回应信息
config服务器配置,可以取得初始化参数
session用来保存用户的信息
application所有用户共享的信息
page指当前页面转换后的Servlet实例
pageContextJSP的页面容器
exception表示JSP页面所发生的异常,在错误页面才起作用

4大作用域对象

名称描述
pageContext当前 jsp 页面范围内有效
request一次请求内有效
session一个会话范围内有效(打开浏览器访问服务器,直到关闭浏览器)
application整个 web 工程范围内都有效(只要 web 工程不停止,数据都在)

四个域在使用的时候,优先顺序分别是,他们从小到大的范围的顺序。
pageContext ====>>> request ====>>> session ====>>> application

jsp 的常用标签

  • jsp 静态包含
    <%@ include file=""%> 就是静态包含 file 属性指定你要包含的 jsp 页面的路径 地址中第一个斜杠 / 表示为 http://ip:port/工程路径/ 映射到代码的 web 目录–%>
    <%@ include file="/include/footer.jsp"%>
  • jsp 动态包含
    <%-- <jsp:include page=""></jsp:include> 这是动态包含 page 属性是指定你要包含的 jsp 页面的路径 动态包含也可以像静态包含一样。把被包含的内容执行输出到包含位置–%>
    <jsp:include page="/include/footer.jsp"> <jsp:param name=“username” value=“bbj”/> <jsp:param name=“password” value=“root”/> </jsp:include>
  • jsp 转发
    <%–<jsp:forward page=""></jsp:forward> 是请求转发标签,它的功能就是请求转发 page 属性设置请求转发的路径 --%>
    <jsp:forward page="/scope2.jsp"></jsp:forward>

在 jsp 页面中输出九九乘法口诀表

<%@ page contentType="text/html;charset=UTF-8" language="java" %> 
<html>
<head>
    <title>Title</title> 
    <style type="text/css"> 
        table{ width: 650px; } 
    </style> <
    /head>
<body> 
 <h1 align="center">九九乘法口诀表</h1> 
 <table align="center"> 
     <%-- 外层循环遍历行 --%>
         <% for (int i = 1; i <= 9; i++) { %> 
         <tr> 
             <%-- 内层循环遍历单元格 --%>
             <% for (int j = 1; j <= i ; j++) { %> 
                 <td>
                     <%=j + "x" + i + "=" + (i*j)%>
                 </td>
                 <% } %> 
         </tr> 
         <% } %> 
 </table>
</body> </html>

在这里插入图片描述

Logo

CSDN联合极客时间,共同打造面向开发者的精品内容学习社区,助力成长!

更多推荐