JSP详细讲解


前言

一、JSP 介绍

JSP(全称 Java Server Pages)Java 服务端页面技术,是 JavaEE 平台下的技术规范。它允许使用特定的标签在 HTML 网页中插入 Java 代码,实现动态页面处理,所以 JSP 就是 HTML 与Java 代码的复合体。JSP 技术可以快速的实现一个页面的开发,相比在 Servlet 中实现页面开发将变得更加容易。

二、JSP 运行原理

1、JSP 技术特点

JSP 和 Servlet 是本质相同的技术。当一个 JSP 文件第一次被请求时,JSP 引擎会将该 JSP编译成一个 Servlet,并执行这个 Servlet。如果 JSP 文件被修改了,那么 JSP 引擎会重新编译这个 JSP。

JSP 引擎对 JSP 编译时会生成两个文件分别是.java 的源文件以及编译后的.class 文件,并放到 Tomcat 的 work 目录的 Catalina 对应的虚拟主机目录中的 org\apache\jsp 目录中。两个文件的名称会使用 JSP 的名称加”_jsp”表示。如:index_jsp.java、index_jsp.class。

2、JSP 与 Servlet 区别

在这里插入图片描述
在这里插入图片描述

三、 JSP 的使用

1、JSP 的三种原始标签

JSP 的原始标签在 JSP 的任何版本中都可以使用。
在这里插入图片描述

2、JSP 原始标签的使用

需求:以 20%概率显示你中奖

<html>
<head>
    <title>Title</title>
</head>
<body>
欢迎来到中奖游戏

    <%

        int flag = new Random().nextInt(100);
        if (flag <= 20){
   

        %>
            中奖了  <%=flag %>
        <% }else {
   %>
            再试一次吧 <%= flag %>
        <% } %>

</body>
</html>

在这里插入图片描述

3、 JSP 的指令标签

JSP 指令标签的作用是声明 JSP 页面的一些属性和动作。

<%@指令名称 属性=“值” 属性=“值”%>

4、JSP 指令标签分类

在这里插入图片描述

1、Page 指令标签

在这里插入图片描述
在这里插入图片描述

2、Include 指令标签

静态包含,可以将其他页面内容包含进来,一起进行编译运行.生成一个 java 文件.

<%@include file=“被包含 JSP 的相对路径” %>

3、 Taglib 指令标签

导入标签库。

<%@taglib prefix=“前缀名” uri=“名称空间” %>

四、JSP 的内置对象

JSP 中一共预先定义了 9 个这样的对象,分别为:request、response、session、application、out、pagecontext、config、page、exception。

在这里插入图片描述
在这里插入图片描述

五、 请求转发

1、什么是请求转发

在这里插入图片描述

2、请求转发与重定向的区别

在这里插入图片描述
在这里插入图片描述

3、请求转发案例

需求:在 Servlet 中获取客户端浏览器所支持的语言,并通过 JSP 页面将客户端浏览器所支持的语言响应给客户端浏览器。

//需求:在 Servlet 中获取客户端浏览器所支持的语言,
// 并通过 JSP 页面将客户端浏览器所支持的语言响应给客户端浏览器。
@WebServlet("/language.do")
public class LanguageServlet extends HttpServlet {
   
    @Override
    protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
   
        this.doPost(req, resp);
    }

    @Override
    protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
   
        String header = req.getHeader("Accept-Language");
        req.setAttribute("key",header);
        req.getRequestDispatcher("showMsg.jsp").forward(req,resp);
    }
}

showMsg.jsp:

<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
    <title>Title</title>
</head>
<body>
        <%
        String value = (String)request.getAttribute("key");
        %>
        当前支持的语言为:<%= value%>
</body>
</html>

运行结果:
在这里插入图片描述

六、JSP 中的四大作用域对象

作用域:“数据共享的范围”,也就是说数据能够在多大的范围内有效。

  • 20
    点赞
  • 142
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值