• 69期-Java SE-044_JSP-1


    ### JSP
    
    JSP:Java Server Page,在 Java Web 开发中负责视图层的展示,HTML 中无法直接嵌入 Java 代码,JSP 就是为了解决这一问题,JSP 就是将 HTML 代码与 Java 代码进行整合的一个中间层组件。
    
    JSP 本质上就是一个 Servlet,当客户端第一次访问一个 JSP 资源时,服务器接收到一个后缀为 jsp 的 URL 请求,将这个请求交给 JSP 引擎处理,每一个 JSP 资源第一次被访问时,JSP 引擎会将它翻译成一个 Servlet,并且进行编译,生成 class 文件,Web 容器就可以像调用 Servlet 一样来访问 JSP。
    
    JSP 就是在 HTML 中嵌入 Java 代码,如何嵌入?
    
    1、JSP 脚本
    
    ```jsp
    <%Java代码%>
    ```
    
    2、JSP 声明
    
    ```jsp
    <%!
    声明一个全局方法
    %>
    ```
    
    3、JSP 表达式
    
    ```jsp
    <%=Java变量%>
    ```
    
    
    
    ### JSP内置对象
    
    request、response、pageContext、session、application、config、out、page、exception
    
    1、request:HttpServletRequest 类的实例化对象,接收客户端请求。
    
    2、response:HttpServletResponse 类的实例化对象,为客户端作出响应。
    
    3、pageContext:PageContext 类的实例化对象,页面上下文,获取页面信息。
    
    4、session:HttpSession 类的实例化对象,表示浏览器和服务器之间的一次会话,保持一个用户信息。
    
    5、application:ServletContext 类的实例化对象,表示当前 Web 应用,全局对象,保存所有用户的共享数据。
    
    6、config:当前 JSP 对应的 Servlet 的 ServletConfig 对象,表示当前 Servlet。
    
    7、out:JspWriter 类的实例化对象,向客户端输出信息。
    
    8、page:指当前 JSP 对应的 Servlet 对象。
    
    9、exception:表示 JSP 页面发送的异常。
    
    
    
    实际开发中常用的内置对象:pageContext、request、response、session、application
    
    request 的常用方法:
    
    1、String getParameter(String name) //获取客户端传来的参数
    
    2、void setAttribute(String key,Object value) //通过键值对的形式来保存数据
    
    3、Object getAttribute(String key) //通过键取出数据
    
    4、String[] getParameters(String name) //获取客户端传来的多个参数
    
    5、void setCharacterEncoding(String charset) //指定每个请求的编码
    
    6、RequestDispatcher getRequestDispatcher(String path) //返回一个 RequestDispatcher 对象,该对象的 forward 方法用于转发请求。
    
    
    
    ```jsp
    <%@ page contentType="text/html;charset=UTF-8" language="java" %>
    <html>
      <head>
        <title>$Title$</title>
      </head>
      <body>
        <%
          String name = "Hello World";
          request.setAttribute("name",name);
          request.getRequestDispatcher("test.jsp").forward(request,response);
        %>
      </body>
    </html>
    ```
    
    
    
    ```jsp
    <%@ page contentType="text/html;charset=UTF-8" language="java" %>
    <html>
    <head>
        <title>Title</title>
    </head>
    <body>
        <%
            String name = (String)request.getAttribute("name");
        %>
        <h1>test</h1>
        <h2><%=name%></h2>
    </body>
    </html>
    ```

    index.jsp

    <%--
      Created by IntelliJ IDEA.
      User: southwind
      Date: 2019-07-06
      Time: 20:12
      To change this template use File | Settings | File Templates.
    --%>
    <%@ page contentType="text/html;charset=UTF-8" language="java" %>
    <html>
      <head>
        <title>$Title$</title>
      </head>
      <body>
        <%
          String name = "Hello World";
          request.setAttribute("name",name);
          request.getRequestDispatcher("test.jsp").forward(request,response);
        %>
      </body>
    </html>

    test.jsp

    <%--
      Created by IntelliJ IDEA.
      User: southwind
      Date: 2019-07-06
      Time: 21:51
      To change this template use File | Settings | File Templates.
    --%>
    <%@ page contentType="text/html;charset=UTF-8" language="java" %>
    <html>
    <head>
        <title>Title</title>
    </head>
    <body>
        <%
            String name = (String)request.getAttribute("name");
        %>
        <h1>test</h1>
        <h2><%=name%></h2>
    </body>
    </html>

    web.xml

    <?xml version="1.0" encoding="UTF-8"?>
    <web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee"
             xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
             xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_4_0.xsd"
             version="4.0">
    </web-app>
  • 相关阅读:
    Java实现 蓝桥杯VIP 算法提高 排队打水问题
    Java实现 蓝桥杯VIP 算法提高 排队打水问题
    Java实现 蓝桥杯VIP 算法提高 排队打水问题
    Java实现 蓝桥杯VIP 算法提高 特殊的质数肋骨
    Java实现 蓝桥杯VIP 算法提高 特殊的质数肋骨
    Java实现 蓝桥杯VIP 算法提高 特殊的质数肋骨
    Java实现 蓝桥杯VIP 算法提高 特殊的质数肋骨
    现在使用控件, 更喜欢继承(覆盖控件已有的函数,很奇怪的一种使用方式)
    Controls 属性与继承 TShape 类的小练习(使用TShape可以解决很多图形问题)
    QT创建窗口程序、消息循环和WinMain函数(为主线程建立了一个QEventLoop,并执行exec函数)
  • 原文地址:https://www.cnblogs.com/HiJackykun/p/11182674.html
Copyright © 2020-2023  润新知