JSP学习---jsp简介和理解jsp的本质

本文介绍了JSP技术的基本概念,包括其作为Servlet扩展的作用以及如何简化网站的创建与维护。详细解析了Tomcat服务器首次访问JSP的过程,并阐述了JSP语法特点及常见用法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

本篇博课知识点:
1.jsp技术简介
2.Tomcat首次访问JSP的过程:
3.JSP语法:
4.代码演示

jsp技术简介

  • JSP是Java Server Page的缩写,它是Servlet的扩展,它的作用是简化网站的创建和维护。
  • JSP是HTML代码与Java代码的混合体。
  • JSP形式上像HTML,但本质上是Servlet。

Jsp页面的代码全部是由java语言代码和HTML语言代码组成,那么为什么说JSP本质是Servlet?— 查看源码
先把含有jsp页面的项目发布,启动服务器,然后去Tomcat里面找生成的jsp文件的源码
我的路径

E:\Tomcat\apache-tomcat-7.0.30-windows-x86\apache-tomcat-7.0.30\work\Catalina\localhost\jspDemo\org\apache\jsp\jsps

这里写图片描述
生成的.java文件继承一个类
这里写图片描述
这个类。

org.apache.jasper.runtime.HttpJspBase

然后我再Tomcat的lib目录下面找到了这个包
这里写图片描述

再利用反编译软件打开,查看源代码
这里写图片描述
发现两点;
1:继承了HttpServlet
这里写图片描述
2.写了Servlet方法–调用了一个抽象方法
这里写图片描述
这里写图片描述

这个抽象方法就是 我们 Tomcat服务器把我们写的JSP文件编译成Java文件的主要方法;
这里写图片描述
并且把我们JSP页面所有的东西都包装在这个方法里面了。
这里写图片描述

用一句话说: 我们写的所有JSP代码 都是写在一个Servlet的service方法里面. 所以转一圈—-我们的JSP就是一个Servlet。

那么为什么要这么做? 肯定是优化了—简化网站的创建和维护。

怎么优化的? 在于他的九大内置对象。 并且我们仔细看会发现这九大内置对象,都是我们servlet里面用的比较多
这里写图片描述

除了 PageContext、pag和exception三个外,剩下的我们都用的很熟了

ServletContext application、HttpSession session、 ServletConfig config、request、response、 out.这就是JSP的本质—servlet

Tomcat(服务器)首次访问JSP的过程:
这里写图片描述

(其中一个细节是: 当网站主页打开、有用户访问JSP文件时,服务器才会把他编程.java文件)

下面两句代码区别

contentType="text/html; charset=utf-8"
pageEncoding="UTF-8"

第一句是 告诉浏览器用什么样的编码打开,服务器发过去的文件。
第二句是 告诉服务器,把这个JSP页面编译成 servlet.java文件时候用什么编码

JSP语法:

  • JSP指令。:<%@ 指令名 属性=“值”%>
  • JSP声明。成员变量,或是成员方法.: <%! …. %>
  • Java程序片段。不论有多少这样的代码块,都将包含_jspSerivice方法中。:<% … %>
  • Java表达式。-快速输出信息. <%= …%>

演示代码

<%@ page language="java" import="java.util.*,javax.swing.*" contentType="text/html; charset=utf-8"  pageEncoding="UTF-8"%>
<!-- JSP中写Java脚本的方式1: 指令   -->

<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>
    <title>JSP技术演示页面</title>
  </head>

  <body>
    This is my JSP page. <br>
    <a href="<%=path%>/jsps/demo2.jsp">aa</a>


    <!-- JSP中写Java脚本的方式2: 普通的Java代码段。翻译后变成jspService()内部的局部代码段   -->
    <%
       String s="dsjkdsjk";
     %>

    <form action="demo1.jsp" method="post">
        Name:<input type="text" name="name"/> <br/>
        Pwd:<input type="password" name="pwd"/> <br/>
        <input type="submit"/>
    </form>

    <%
      //response,out,  application,session,request,pageContext,   page, config, exception
      out.println(s);
     %>

    <div>湖南城市学院OKOK<font color=red size=20pt >暑假</font>很热</div>
    <% //Tomcat翻译成jspServlet,把下面的代码嵌入到jspService()方法中

        request.setCharacterEncoding("utf-8");
        String name = request.getParameter("name");
        String pwd = request.getParameter("pwd");
        if(name!=null && name.equals(pwd)){
           out.println("欢迎你,"+name);
           Date d = new Date();
           out.println( d.toString()  );
        }
     %>

         <!-- JSP中写Java脚本的方式3(比普通多了个叹号): 翻译后变成jspServlet类的成员变量或成员方法   -->
        <%! //声明成jspServlet类中的成员变量
                int ss=10;
                public String aa(){
                   return "ss="+ss;
                }
         %>

       <%
        out.println( aa() );
        %> 
    <br/>输出类的成员变量ss的值:
    <!-- JSP中写Java脚本的方式4: 一种在页面当前位置输出变量内容的写法   -->
    <%=ss %>

    <%--
            这是JSP的注释
     --%>


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

效果
这里写图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值