zoukankan      html  css  js  c++  java
  • JSP基础

    JSP全名Java Server Page,它建立在Servlet规范之上的动态网页开发技术,由Oracle(Sun)推出。

    1、jsp的作用:

    • Servlet:
      • 缺点:不适合设置html响应体,需要大量的response.getWriter().print("html");
      • 优点:动态资源,可以编程。
    • html:
      • 缺点:html是静态页面,不能包含动态信息
      • 优点:不用为输出html标签而发愁
      jsp(Java Server Page):
      • 优点:在原有html的基础上添加java脚本,构成jsp页面。

    2、jsp和Servlet的分工:

    • jsp:
      • 作为请求发起页面,例如显示表单、超链接。
      • 作为请求结束页面,例如销售数据。
    • Servlet:
      • 作为请求中处理数据的环节。

    3、jap的组成

    • jsp = html + java脚本 + jsp标签(指令)
    • jsp中无需创建即可使用的对象一共有9个,被称为9大内置对象。例如:request对象、out对象
    • 3种java脚本:
      • <%.....%>:java代码片段(常用),用于定义0~N条Java语句。方法内能写什么,它就可以放什么。
      • <%=....%>:java表达式,用于输出(常用),用于输出一条表达式(或变量)的结果。response.getWriter().print(....);这里能放什么,它就可以放什么。
      • <%!.....%>:声明,用来创建类的成员变量和成员方法(基本不用,但容易被考到),类体中可以放什么,它就可以放什么。

    案例:演示jsp中Java脚本的使用

     1 <%@ page contentType="text/html;charset=UTF-8" language="java" %>
     2 <html>
     3   <head>
     4     <title>$Title$</title>
     5   </head>
     6   <body>
     7     <%--定义局部变量--%>
     8     <%
     9       int a =10;
    10     %>
    11     <%
    12       out.println(a);
    13     %>
    14     <%=a %>
    15     <%--定义成员变量及方法--%>
    16     <%!
    17       int a=100;
    18       public void fun1() {
    19         System.out.println(a);
    20       }
    21     %>
    22     <%--this表示引用的是成员变量--%>
    23     <%
    24       out.println(this.a++);
    25       fun1();
    26     %>
    27   </body>
    28 </html>
     1 <%@ page contentType="text/html;charset=UTF-8" language="java" %>
     2 <html>
     3 <head>
     4     <title>Title</title>
     5 </head>
     6 <body>
     7     <table border="1" align="center" width="60%">
     8         <tr>
     9             <td>姓名</td>
    10             <td>年龄</td>
    11         </tr>
    12         <%
    13             for (int i = 0; i < 10; i++) {
    14         %>
    15         <%--以下表格变成循环体--%>
    16         <tr>
    17             <td>张三</td>
    18             <td>28</td>
    19         </tr>
    20         <%
    21             }
    22         %>
    23     </table>
    24 </body>
    25 </html>

    案例:演示jsp与servlet分工。

     1 <%@ page contentType="text/html;charset=UTF-8" language="java" %>
     2 <html>
     3 <head>
     4     <title>Title</title>
     5 </head>
     6 <body>
     7 <form action="/day11_1/AServlet" method="post">
     8     整数1:<input type="text" name="num1"/><br/>
     9     整数2:<input type="text" name="num2"/><br/>
    10     <input type="submit" value="提交"/>
    11 </form>
    12 </body>
    13 </html>
     1 @WebServlet(name = "AServlet",urlPatterns = "/AServlet")
     2 public class AServlet extends HttpServlet {
     3     protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
     4         String s1 = request.getParameter("num1");
     5         String s2 = request.getParameter("num2");
     6         int num1 = Integer.parseInt(s1);
     7         int num2 = Integer.parseInt(s2);
     8         int sum = num1+num2;
     9         String sum1= String.valueOf(sum);
    10         request.setAttribute("result",sum1);
    11         request.getRequestDispatcher("/add/result.jsp").forward(request,response);
    12     }
    13 }
     1 <%@ page contentType="text/html;charset=UTF-8" language="java" %>
     2 <html>
     3 <head>
     4     <title>Title</title>
     5 </head>
     6 <body>
     7   <%
     8      String result = (String)request.getAttribute("result");
     9   %>
    10   <%=result %>
    11 </body>
    12 </html>

     4、jsp原理

    • jsp其实是一种特殊的Servlet
      • 当jsp页面把第一次访问时,服务器会把jsp编译成java文件(这个java其实是一个servlet类)
      • 然后再把Java编译成.class
      • 然后创建该类对象
      • 最后调用它的service()方法
      • 第二次请求同一jsp时,直接调用service()方法
    • 在Tomcat的work目录下可以找到jsp对应的.java源代码。
    • 查看jsp对应java文件:
      • java脚本
      • html

    5、jsp注释

    • <%--....--%>:当服务器把jsp编译成java文件时已经忽略了注释部分。
  • 相关阅读:
    内部共享上网
    Harbor部署
    一、Gitlab安装
    Dockerfile
    DockerCompose
    二、Git
    nginx域名代理
    三、jenkins持续集成工具安装
    chrome对于“submit”关键字的保留
    insightface 提取人脸特征(超简洁)
  • 原文地址:https://www.cnblogs.com/gdwkong/p/7624319.html
Copyright © 2011-2022 走看看