专注于 JetBrains IDEA 全家桶,永久激活,教程
持续更新 PyCharm,IDEA,WebStorm,PhpStorm,DataGrip,RubyMine,CLion,AppCode 永久激活教程

jsp(简介、脚本和注释、运行原理)

一、简介

JSP全名为Java Server Pages,中文名叫java服务器页面,其根本是一个简化的Servlet设计。是在静态网页html中嵌入java代码段形成的文件,JSP是一种运行在服务器端的脚本语言,是一种动态网页技术(网页中的数据可以修改)。

它是在传统的HTML文件中加入Java程序和JSP标记后构成的,具有JAVA和Web的双重特性。

1、在没有学习JSP技术之前,要想实现动态网页,只能用Servlet,将一句一句的HTML语句嵌入到Servlet中,工作量比较大:

 protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        login log= (login) request.getSession().getAttribute("login");
        int num=(int)this.getServletContext().getAttribute("contextNum");
        //System.out.println("main:"+num);
        response.setContentType("text/html;charset=utf-8");//设置浏览器编码格式
        response.getWriter().write("<html>");
        response.getWriter().write("<head>");
        response.getWriter().write("<title>");
        response.getWriter().write("Login");
        response.getWriter().write("</title>");
        response.getWriter().write("</head>");
        response.getWriter().write("<body bgcolor=\"aqua\">");
        response.getWriter().write("<center>");
        response.getWriter().write("<h3>");
        response.getWriter().write("欢迎你"+log.getAccount());
        response.getWriter().write("<br>");
        response.getWriter().write("浏览量:"+num);
        response.getWriter().write("</h3>");
        response.getWriter().write("<form action='show' method='get'>");
        response.getWriter().write("<input type='submit' value='查看个人信息'>");
        response.getWriter().write("</form>");
        response.getWriter().write("</center>");
        response.getWriter().write("</body>");
        response.getWriter().write("</html>");
    }

2、我的第一个JSP程序:

<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
  <head>
    <title>jsp</title>
  </head>
  <body  bgcolor="aqua">
<h3>
  <%

    out.println("Today is the Seventieth Anniversary of the founding of the People's Republic of China.");

  %>
</h3>
  </body>
</html>

109_1.png

在嵌入JAVA代码的时候只需添加<% %>即可。

3、servlet更适合逻辑处理,jsp更适合响应结果

一般情况下,servlet从数据库获得的数据会以请求转发的形式传递到jsp页面(页面有显示的功能),最终以一定的形式呈现给用户。当然在不传递数据的时候,servlet也可以重定向到一个jsp页面。

二、脚本和注释

1、jsp脚本

(1)<% java代码 %>

<h3>
  <%
    out.println("Today is the Seventieth Anniversary of the founding of the People's Republic of China.");
  %>
</h3>

在页面输出:

109_2.png

<h3>
  <%
    int a=9,b=9;
    System.out.println(a*b);
  %>
</h3>

在控制台输出运算结果。

会被翻译到service方法内部。

翻译后为:

 int a=9,b=9;
    System.out.println(a*b);

(2)<%=java变量或表达式>

表达式必须是合法的java表达式并且要有返回值

<h3>
  <%=123%>
</h3>

109_3.png



<%int a=9;%> <%=(a*a)%>

109_4.png

会被翻译到service方法内部的out.println();

即:输出到页面。

(3)<%! java代码 %>



<%! String string="Today is the Seventieth Anniversary of the founding of the People's Republic of China.";%> <%=string%>

109_5.png

加! 号后会被翻译到成员的位置。

2、注释:

(1)隐藏注释:<%-- --%>

<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
    <title>myjsp</title>
</head>
<body>

This my Jsp.

<% int i=12; //这是一个单行注释 /* 这是一个多行注释 */ %> <%-- 这是一个JSP注释 --%> <%=i%> </body> </html>

其中<%-- --%>被称为隐藏注释,在方便才重新设计人员阅读程序的同时,又保证了程序的安全性,因为在客户端是看不到注释内容的。

(2)HTML注释

<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
    <title>myjsp</title>
</head>
<body>


This my Jsp.

<% int i=12; //这是一个单行注释 /* 这是一个多行注释 */ %> <%-- 这是一个JSP注释 --%> <%=i%> </body> </html>

109_6.png

HTML注释可以在浏览器查看

(3)JAVA注释://和/* */写在<% %>内部:

<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
    <title>myjsp</title>
</head>
<body>

This my Jsp.

<% int i=12; //这是一个单行注释 /* 这是一个多行注释 */ %> <%=i%> </body> </html>

用户看不到注释的内容

三、运行原理

1、JSP的运行流程

109_7.png

(1)第一次请求一个JSP页面时,需要将JSP文件转换为JAVA的Servlet文件并编译为class文件,在以后的请求中如果页面没有经过任何改动,那么可以直接调用class文件,这就是第一次请求JSP页面会有延迟的原因。

(2)JSP页面是运行在客户端还是服务器

JSP是一种运行在服务器的脚本语言(servlet也是),不要以为在访问jsp页面的时候要输入jsp页面的名字就以为它是运行在客户端。在客户端发出请求后jsp页面会在服务器内被转化为java代码,并编译为class文件,最终返回html文件给客户端,浏览器解析后呈现给用户。

2、JSP与Servlet:

JSP本质上是实现了javax.servlet.jsp.HttpjspPage接口,或者javax.servlet.jsp.JspPage的JAVA类。间接实现了Servlet接口。因此,JSP的本质就是Servlet。

3、JSP与Servlet的异同点:

(1)相同点:

JSP本质上是Servlet(JSP不能被虚拟机执行,Servlet可以),JSP是在Servlet基础上发展起来的。

(2)不同点:

JSP擅长页面显示,Servlet擅长于逻辑控制。

文章永久链接:https://tech.souyunku.com/23394

未经允许不得转载:搜云库技术团队 » jsp(简介、脚本和注释、运行原理)

JetBrains 全家桶,激活、破解、教程

提供 JetBrains 全家桶激活码、注册码、破解补丁下载及详细激活教程,支持 IntelliJ IDEA、PyCharm、WebStorm 等工具的永久激活。无论是破解教程,还是最新激活码,均可免费获得,帮助开发者解决常见激活问题,确保轻松破解并快速使用 JetBrains 软件。获取免费的破解补丁和激活码,快速解决激活难题,全面覆盖 2024/2025 版本!

联系我们联系我们