JSP的概述(熟悉)

JSP的概念

  • JSP是Java Server Pages的简称,跟Servlet一样可以动态生成HTML响应, JSP文件命名为xxx.jsp。
  • 与Servlet不同,JSP文件以HTML标记为主,然后内嵌Java代码段,用于处理动态内容。

    JSP的示例

    1. <%@ page import="java.util.Date" %>
    2. <%@ page contentType="text/html;charset=UTF-8" language="java" %>
    3. <html>
    4. <head>
    5. <title>Hello Time</title>
    6. </head>
    7. <body>jj
    8. 现在的时间是:<%= new Date()%>
    9. </body>
    10. </html>

    JSP与Servlet的关系

    第三章 JSP核心技术 - 图1

JSP的语法(熟悉)

JSP语法结构

  • 声明区
  • 程序代码区
  • 表达式
  • 注释
  • 指令和动作
  • 内置对象

    声明区

  • 基本语法:

<%! %>

  • 说明:可以定义全局变量、方法、类。

    1. <%!
    2. int i;
    3. public void setName(){… …}
    4. %>

    程序代码区

  • 基本语法:

<%程序代码区%>

  • 说明:可以定义局部变量以及放入任何的Java程序代码。

    1. <%
    2. int j;
    3. for (int k=0; k<10; k++) {
    4. }
    5. %>

    表达式

  • 基本语法:

<%=… …%>

  • 说明:可以输出一个变量或一个具体内容,但=后面必须是字符串变量或者可以被转换成字符串的 表达式。
  • 注意:不需要以;结束,只有一行

    1. <%=“hello world”%>
    2. <%=i+1%>

    declare.jsp ```javascript <%— Created by IntelliJ IDEA. User: pingmao Date: 2021/4/23 Time: 下午11:06 To change this template use File | Settings | File Templates. —%> <%@ page contentType=”text/html;charset=UTF-8” language=”java” %>

    <%! int ia; // 这是一个全局变量 public void show(){ System.out.println(“这是全局方法!”); } public class MyClass{ { System.out.println(“这是一个全局类哦!”); } } %> <% int ib = 20; // 这是一个局部变量 for (int i = 0; i < 3; i++){ System.out.println(“随便放入Java程序代码吧!”); } %> <%= ia + 1 %> <%= ib %> <%= “我就暂时写到这里吧!” %>
  1. - 案例题目
  2. 使用for循环输出一个html语言的表格,具体表头如下:
  3. | id | name | age | salary |
  4. | --- | --- | --- | --- |
  5. | 1 | 1 | 1 | 1 |
  6. | 2 | 2 | 2 | 2 |
  7. | ... | | | |
  8. | 5 | 5 | 5 | 5 |
  9. ```javascript
  10. <%--
  11. Created by IntelliJ IDEA.
  12. User: pingmao
  13. Date: 2021/4/23
  14. Time: 下午11:20
  15. To change this template use File | Settings | File Templates.
  16. --%>
  17. <%@ page contentType="text/html;charset=UTF-8" language="java" %>
  18. <html>
  19. <head>
  20. <title>实现表格的绘制</title>
  21. </head>
  22. <body>
  23. <table>
  24. <tr>
  25. <td>id</td>
  26. <td>name</td>
  27. <td>age</td>
  28. <td>salary</td>
  29. </tr>
  30. <%
  31. for (int i = 1; i < 6; i++){
  32. %>
  33. <tr>
  34. <td> <%= i %> </td>
  35. <td> <%= i %> </td>
  36. <td> <%= i %> </td>
  37. <td> <%= i %> </td>
  38. </tr>
  39. <%
  40. }
  41. %>
  42. </table>
  43. </body>
  44. </html>

注释

  1. 格式:
  2. <!--… …--> HTML文件的注释,浏览器可以查看到
  3. <%--… …--%> JSP文件的注释,浏览器看不到
  4. <%//… …%> Java语言中的单行注释,浏览器看不到
  5. <%/*… …*/%> Java语言中的多行注释,浏览器看不到
  6. 注释的内容不会被执行

指令和动作

  • 指令格式:

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

  • 指令的属性可以设定多个。
  • JSP常用指令有:page、taglib、include。

    page指令

  • page指令用于导包和设置一些页面属性,常用属性如下:

import 导入相应的包,惟一允许在同一文档中多次出现的属性
contentType 设置Content-Type响应报头,标明即将发送到浏览器的文档类型
pageEncoding 设置页面的编码
language 指定页面使用的语言
session 控制页面是否参与HTTP会话
errorPage 处理当前页面中抛出但未被捕获的任何异常
isErrorPage 当前页是否可以作为其他页面的错误处理页面
page.jsp

  1. <%@ page import="java.util.List" %>
  2. <%@ page import="java.util.LinkedList" %><%--
  3. Created by IntelliJ IDEA.
  4. User: pingmao
  5. Date: 2021/4/24
  6. Time: 上午7:06
  7. To change this template use File | Settings | File Templates.
  8. --%>
  9. <%@ page contentType="text/html;charset=UTF-8" language="java" %>
  10. <html>
  11. <head>
  12. <title>page指令的使用</title>
  13. </head>
  14. <body>
  15. <%
  16. List<String> list = new LinkedList<String>();
  17. %>
  18. </body>
  19. </html>

taglib指令

  • taglib指令用来扩展JSP程序的标签元素,引入其他功能的标签库文件。

    1. <!-- prefix属性用于指定库前缀 -->
    2. <!-- uri属性用于指定库的标识 -->
    3. <%@taglib uri=“tagLibary prefix=“prefix”%>

    include指令

  • include指令用于引入另一个JSP程序或HTML文件等,格式如下:

    1. <%@include file=“被包含的文件地址%>
  • JSP引擎会在JSP文件的转换时期先把file属性设定的文件包含进来,然后开始执行转换及编译的工 作。

    jsp:include/jsp:param

  • jsp:include动作用于引入另一个JSP程序或HTML文件等。

  • 执行到include时,被include的文件才会被编译。
  • 如果include的是jsp文件,那它不会被转换成Servlet文件。

    1. <jsp:include page=“URLSpec flush=“true”/>
    2. <jsp:include page=“URLSpec flush=“true”>
    3. <jsp:param name=“key value=“value”/>
    4. </jsp:include>

    include指令和include动作的区别

  • include指令是在JSP程序的转换时期就将file属性所指定的程序内容嵌入再编译执行(静态包含)。

  • include动作在转换时期是不会被编译的,只有在客户端请求时期被执行到才会被动态的编译载入(动态包含,推荐)。

    jsp:forward/jsp:param

  • forward动作用于在JSP中实现转发,将请求转发到另一个指定的JSP程序或者Servlet中处理。

    1. <jsp:forward page=“urlSpec flush=“true”/>
    2. <jsp:forward page=“urlSpec”>
    3. <!-- 用于指定参数和其对应的值 -->
    4. <jsp:param name=“key value=“value”/>
    5. </jsp:forward>

    JSP内置对象(重点)

    基本概念

  • 在JSP程序中有9个内置对象由容器为用户进行实例化,程序员可以不用定义就直接使用这些变量。

  • 在JSP转换成Servlet后,会自动追加这些变量的定义,使用内置对象可以简化JSP的开发。

    对象名称

    | 对象变量 | 对象类型 | 作用 | | —- | —- | —- | | out | JSPWriter | 输出流 | | request | HttpServletRequest | 请求信息 | | response | HttpServletResponse | 响应信息 | | session | HttpSession | 会话 | | application | ServletContext | 全局的上下文对象 | | pageContext | PageContext | JSP页面上下文 | | page | Object | JSP页面本身 | | config | ServletConfig | Servlet配置对象 | | exception | Throwable | 捕获网页异常 |

out内置对象

  • out内置对象是一个缓冲的输出流,用来给客户端输出信息。

常用方法如下:

方法声明 功能介绍
void println(String x) 向客户端输出各种类型数据
void newLine() 输出一个换行符
void close() 关闭输出流
int getBufferSize() 返回缓冲区的大小
int getRemaining() 返回缓冲区中未使用的字节数
void flush() 输出缓冲区里的数据
void clearBuffer() 清除缓冲区里的数据,同时把数据输出到客户端
void clear() 清除缓冲区里的数据,但不把数据输出到客户端
  1. <%--
  2. Created by IntelliJ IDEA.
  3. User: pingmao
  4. Date: 2021/4/24
  5. Time: 上午7:55
  6. To change this template use File | Settings | File Templates.
  7. --%>
  8. <%@ page contentType="text/html;charset=UTF-8" language="java" %>
  9. <html>
  10. <head>
  11. <title>out内置对象的使用</title>
  12. </head>
  13. <body>
  14. <%
  15. out.println("<h1>");
  16. out.println("Hello World!");
  17. out.println("</h1>");
  18. //out.close();
  19. int bufferSize = out.getBufferSize();
  20. System.out.println("缓冲区的总大小是:" + bufferSize);
  21. int remaining = out.getRemaining();
  22. System.out.println("缓冲区的剩余字节数为:" + remaining);
  23. System.out.println("已经使用的字节数为:" + (bufferSize - remaining));
  24. out.clear(); // 清除缓冲区,数据不会输出
  25. remaining = out.getRemaining();
  26. System.out.println("缓冲区的剩余字节数为:" + remaining);
  27. %>
  28. </body>
  29. </html>

request内置对象

  • request对象封装的是调用JSP页面的请求信息,它是HttpServletRequest接口的一个实例。
  • 该对象的属性值只在一个请求中保存。
  • 常用方法如下: | 方法声明 | 功能介绍 | | —- | —- | | String getMethod() | 返回客户端向服务器端传送数据的方式 | | String getParameter(String name) | 返回客户端向服务器端传送的参数值 | | String[] getParameterValues( String name) | 获得指定参数的所有值 | | String getRequestURI() | 获得请求地址 | | String getRemoteAddr() | 返回发送请求的客户端或最后一个代理的IP地址 | | int getRemotePort() | 返回发送请求的客户端或最后一个代理的端口号 | | String getServerName() | 获取服务器的名字 | | int getServerPort() | 获取服务器端的端口 | | void setAttribute(String name,Object o) | 在此请求中存储属性。属性在请求之间重置 | | Object getAttribute(String name) | 将指定属性的值作为对象返回,若不存在则返回空值 |

request.jsp

  1. <%--
  2. Created by IntelliJ IDEA.
  3. User: pingmao
  4. Date: 2021/4/24
  5. Time: 上午8:05
  6. To change this template use File | Settings | File Templates.
  7. --%>
  8. <%@ page contentType="text/html;charset=UTF-8" language="java" %>
  9. <html>
  10. <head>
  11. <title>request内置对象的使用</title>
  12. </head>
  13. <body>
  14. <%
  15. String serverName = request.getServerName();
  16. System.out.println("服务到的服务器名称为:" + serverName);
  17. int serverPort = request.getServerPort();
  18. System.out.println("获取到的服务器端口号为:" + serverPort);
  19. // 通过内置对象设置属性信息,也就是存储数据
  20. request.setAttribute("name","guanyu");
  21. %>
  22. <%-- 实现转发效果,也就是服务器跳转 --%>
  23. <jsp:forward page="requestTarget.jsp"></jsp:forward>>
  24. </body>
  25. </html>

requestTarget.jsp

  1. <%--
  2. Created by IntelliJ IDEA.
  3. User: pingmao
  4. Date: 2021/4/24
  5. Time: 上午8:08
  6. To change this template use File | Settings | File Templates.
  7. --%>
  8. <%@ page contentType="text/html;charset=UTF-8" language="java" %>
  9. <html>
  10. <head>
  11. <title>获取request对象中的属性值</title>
  12. </head>
  13. <body>
  14. <%= "获取到的属性值为:" + request.getAttribute("name")%> <%-- guanyu --%>
  15. </body>
  16. </html>

response内置对象

  • response对象用于给客户端相应输出处理结果,它是HttpServletResponse接口的一个实例。
  • 经常用于设置HTTP标题,添加cookie、设置响应内容的类型和状态、发送HTTP重定向和编码URL。
  • 常用方法如下: | 方法声明 | 功能介绍 | | —- | —- | | void addCookie(Cookie cookie)
    | 添加一个Cookie对象,用于在客户端保存特定的信 息 | | void addHeader(String name, String value)
    | 添加HTTP头信息,该Header信息将发送到客户端 | | boolean containsHeader(String name)
    | 判断指定名字的HTTP文件头是否存在 | | void sendRedirect(String location)
    | 重定向JSP文件 | | void setContentType(String type)
    | 设置类型与编码方式 |

reponse.jsp

  1. <%@ page import="java.util.Date" %>
  2. <%@ page import="java.text.SimpleDateFormat" %><%--
  3. Created by IntelliJ IDEA.
  4. User: pingmao
  5. Date: 2021/4/24
  6. Time: 下午2:47
  7. To change this template use File | Settings | File Templates.
  8. --%>
  9. <%@ page contentType="text/html;charset=UTF-8" language="java" %>
  10. <html>
  11. <head>
  12. <title>reponse内置对象的使用</title>
  13. </head>
  14. <body>
  15. <%
  16. // 表示每隔1秒刷新一次
  17. response.addHeader("refresh", "1");
  18. // 获取当前系统时间
  19. Date d1 = new Date();
  20. SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
  21. String format = sdf.format(d1);
  22. %>
  23. <%= "当前时间为:" + format %>
  24. </body>
  25. </html>

session内置对象

  • session对象表示浏览器和服务器之间的一次会话,一次会话可以包含多次请求,在多次请求之间可以借助session对象存储信息,它是HttpSession类型的一个实例。
  • 该对象的属性值在一次会话范围中保存,保存在服务器端,只要不关闭浏览器,默认半个小时内都可以访问。
  • 常用方法如下: | 方法声明 | 功能介绍 | | —- | —- | | void setAttribute(String name, Object value)
    | 使用指定的名称将对象绑定到此会话 | | Object getAttribute(String name) | 返回在此会话中用指定名称绑定的对象,如果没有对象在该名称下绑定则返回空值 |

session.jsp

  1. <%--
  2. Created by IntelliJ IDEA.
  3. User: pingmao
  4. Date: 2021/4/24
  5. Time: 下午2:52
  6. To change this template use File | Settings | File Templates.
  7. --%>
  8. <%@ page contentType="text/html;charset=UTF-8" language="java" %>
  9. <html>
  10. <head>
  11. <title>session内置对象的使用</title>
  12. </head>
  13. <body>
  14. <%
  15. session.setAttribute("name","liubei");
  16. System.out.println("session内置对象中的数据设置成功");
  17. %>
  18. </body>
  19. </html>

sessionTarget.jsp

  1. <%--
  2. Created by IntelliJ IDEA.
  3. User: pingmao
  4. Date: 2021/4/24
  5. Time: 下午2:54
  6. To change this template use File | Settings | File Templates.
  7. --%>
  8. <%@ page contentType="text/html;charset=UTF-8" language="java" %>
  9. <html>
  10. <head>
  11. <title>获取session内置对象中的数据</title>
  12. </head>
  13. <body>
  14. <%= "获取到的属性值为:" + session.getAttribute("name")%>
  15. </body>
  16. </html>

application内置对象

  • application对象是一个web程序的全局变量,它是ServletContext类型的一个实例。
  • 在整个服务器上保存数据,所有用户共享。
  • 常用方法如下: | 方法声明 | 功能介绍 | | —- | —- | | void setAttribute(String name, Object object)
    | 将对象绑定到此servlet上下文中的给定属性名 | | Object getAttribute(String name)
    | 返回给定名称的servlet容器属性,若没有该名称的属 性返回null |

application.jsp

  1. <%--
  2. Created by IntelliJ IDEA.
  3. User: pingmao
  4. Date: 2021/4/24
  5. Time: 下午2:56
  6. To change this template use File | Settings | File Templates.
  7. --%>
  8. <%@ page contentType="text/html;charset=UTF-8" language="java" %>
  9. <html>
  10. <head>
  11. <title>application内置对象的使用</title>
  12. </head>
  13. <body>
  14. <%
  15. application.setAttribute("name","zhaoyun");
  16. System.out.println("application内置对象中的数据设置成功!");
  17. %>
  18. </body>
  19. </html>

applicationTarget.jsp

  1. <%--
  2. Created by IntelliJ IDEA.
  3. User: pingmao
  4. Date: 2021/4/24
  5. Time: 下午2:57
  6. To change this template use File | Settings | File Templates.
  7. --%>
  8. <%@ page contentType="text/html;charset=UTF-8" language="java" %>
  9. <html>
  10. <head>
  11. <title>application内置对象的获取</title>
  12. </head>
  13. <body>
  14. <%= "获取到的application内置对象的属性为:" + application.getAttribute("name")%> <%-- zhaoyun --%>
  15. </body>
  16. </html>

pageContext内置对象

  • pageContext对象是PageContext类型的对象,可以使用这个对象来管理其他的隐含对象。
  • 只在一个页面中保存数据。 | 方法声明 | 功能介绍 | | —- | —- | | void setAttribute(String name, Object value, int scope)
    | 使用适当的作用域设置指定的名称和值 | | Object getAttribute(String name, int scope)
    | 返回指定作用域中名称关联的对象,若找不到则返回null | | ServletRequest getRequest() | 获取请求对象 | | ServletResponse getResponse() | 获取响应对象 | | HttpSession getSession() | 获取会话对象 | | ServletConfig getServletConfig() | 获取配置对象 | | JspWriter getOut() | 获取输出对象 | | Object getPage() | 获取页面对象 | | Exception getException() | 获取异常对象 |

pageContext.jsp

  1. <%--
  2. Created by IntelliJ IDEA.
  3. User: pingmao
  4. Date: 2021/4/24
  5. Time: 下午2:59
  6. To change this template use File | Settings | File Templates.
  7. --%>
  8. <%@ page contentType="text/html;charset=UTF-8" language="java" %>
  9. <html>
  10. <head>
  11. <title>pageContext内置对象的使用</title>
  12. </head>
  13. <body>
  14. <%
  15. pageContext.setAttribute("name","huangzhong");
  16. System.out.println("pageContext内置对象中的数据设置成功!");
  17. %>
  18. <%= "获取到的pageContext内置对象中的属性值为:" + pageContext.getAttribute("name")%>
  19. </body>
  20. </html>

pageContextTarget.jsp

  1. <%--
  2. Created by IntelliJ IDEA.
  3. User: pingmao
  4. Date: 2021/4/24
  5. Time: 下午3:01
  6. To change this template use File | Settings | File Templates.
  7. --%>
  8. <%@ page contentType="text/html;charset=UTF-8" language="java" %>
  9. <html>
  10. <head>
  11. <title>pageContext内置对象属性的获取</title>
  12. </head>
  13. <body>
  14. <%= "获取到的pageContext内置对象中的属性值为:" + pageContext.getAttribute("name")%> <%-- null --%>
  15. </body>
  16. </html>

exception内置对象

  • exception 对象是Throwable的实例,表示的是JSP的异常信息。
  • 如果要使用它,必须将对应页面page指令的isErrorPage属性设置成true。
  • 单个页面的处理方式
    1. <%@page errorPage="error.jsp" %>
    在web.xml中配置统一的异常处理页面。
    1. <error-page>
    2. <exception-type>java.lang.Throwable</exception-type>
    3. <location>/error.jsp</location>
    4. </error-page>
    exception.jsp ```javascript <%— Created by IntelliJ IDEA. User: pingmao Date: 2021/4/24 Time: 下午3:04 To change this template use File | Settings | File Templates. —%> <%@ page contentType=”text/html;charset=UTF-8” language=”java” %> <%—<%@ page errorPage=”error.jsp” %>—%> <% int ia = 10; int ib = 0; System.out.println(ia / ib); // 算数异常 %>
  1. error.jsp
  2. ```javascript
  3. <%--
  4. Created by IntelliJ IDEA.
  5. User: pingmao
  6. Date: 2021/4/24
  7. Time: 下午3:10
  8. To change this template use File | Settings | File Templates.
  9. --%>
  10. <%@ page contentType="text/html;charset=UTF-8" language="java" %>
  11. <%@ page isErrorPage="true" %>
  12. <html>
  13. <head>
  14. <title>异常处理的页面</title>
  15. </head>
  16. <body>
  17. <%
  18. if (exception !=null){
  19. out.println("异常的错误信息为:" + exception.getMessage());
  20. }
  21. %>
  22. </body>
  23. </html>

除了可以针对单个的报错显示也可以在web.xml中进行配置,这样只要出错就会跳转到error.jsp
image.png

JavaBean组件(熟悉)

基本概念

  • JavaBean 是使用 Java 语言开发的一个可重用的组件,在 JSP 开发中可以使用 JavaBean 减少重复代码,使整个 JSP 代码的开发更加简洁。
  • JavaBean本质上就是Java类,通常要求如下:

属性:全部私有化,通过get和set方法进行访问。
方法:必须是public关键字修饰。
构造器 :必须有无参构造方法。

使用方式

  • 使用jsp:useBean的方式创建javaBean实例
    1. <jsp:useBean id=“对象名” scope=“保存范围 class=“包名.类名” />
    保存范围有:page|request|sessin|application,默认为page范围。
    Student.java ```java package com.lagou.demo02;

/**

  • @author 悟空
  • @create 2021/4/24 下午3:57 */ public class Student { private int id; private String name;

    public Student() { }

    public Student(int id, String name) {

    1. this.id = id;
    2. this.name = name;

    }

    public int getId() {

    1. return id;

    }

    public void setId(int id) {

    1. this.id = id;

    }

    public String getName() {

    1. return name;

    }

    public void setName(String name) {

    1. this.name = name;

    } }

  1. bean.jsp
  2. ```jsx
  3. <%@ page import="com.lagou.demo02.Student" %><%--
  4. Created by IntelliJ IDEA.
  5. User: pingmao
  6. Date: 2021/4/24
  7. Time: 下午3:57
  8. To change this template use File | Settings | File Templates.
  9. --%>
  10. <%@ page contentType="text/html;charset=UTF-8" language="java" %>
  11. <html>
  12. <head>
  13. <title>JavaBean组件的使用</title>
  14. </head>
  15. <body>
  16. <%-- 表示创建Student类型的对象由student引用变量负责记录 有效范围是当前页面 --%>
  17. <jsp:useBean id="student" scope="page" class="com.lagou.demo02.Student"/>
  18. <%-- 表示将student对象中名字为id的属性值设置为1002 --%>
  19. <jsp:setProperty name="student" property="id" value="1002"/>
  20. <jsp:setProperty name="student" property="name" value="guanyu"/>
  21. <%
  22. // 创建Student类型的对象并设置成员变量的数值
  23. // Student student = new Student();
  24. // student.setId(1001);
  25. // student.setName("zhangfei");
  26. %>
  27. <%--<%= "获取到的学号是:" + student.getId()%> &lt;%&ndash; 1001 1002 &ndash;%&gt;
  28. <%= "获取到的姓名是:" + student.getName()%> &lt;%&ndash; zhangfei guanyu &ndash;%&gt;--%>
  29. 学号是:<jsp:getProperty name="student" property="id"/><br/>
  30. 姓名是:<jsp:getProperty name="student" property="name"/><br/>
  31. </body>
  32. </html>
  • 使用jsp:setProperty的方式设置javaBean的属性值
    1. <jsp:setProperty name="对象名" property="属性名" value="属性值" param="参数名"/>
    beanParam.html ```html <!DOCTYPE html>
    学号:
    姓名:

  1. bean.jsp
  2. ```jsx
  3. <%--
  4. Created by IntelliJ IDEA.
  5. User: pingmao
  6. Date: 2021/4/24
  7. Time: 下午4:09
  8. To change this template use File | Settings | File Templates.
  9. --%>
  10. <%@ page contentType="text/html;charset=UTF-8" language="java" %>
  11. <html>
  12. <head>
  13. <title>实现前端页面传入过来参数的接收和设置</title>
  14. </head>
  15. <body>
  16. <jsp:useBean id="student" scope="session" class="com.lagou.demo02.Student"/>
  17. <jsp:setProperty name="student" property="id" param="id1"/>
  18. <jsp:setProperty name="student" property="name" param="name1"/>
  19. </body>
  20. </html>
  • 使用jsp:getProperty的方式获取javaBean的属性值

    1. <jsp:getProperty name="对象名" property="属性名"/>

    beanTarget.jsp

    1. <%--
    2. Created by IntelliJ IDEA.
    3. User: pingmao
    4. Date: 2021/4/24
    5. Time: 下午4:12
    6. To change this template use File | Settings | File Templates.
    7. --%>
    8. <%@ page contentType="text/html;charset=UTF-8" language="java" %>
    9. <html>
    10. <head>
    11. <title>实现JavaBean组件中对象属性值的打印</title>
    12. </head>
    13. <body>
    14. <jsp:useBean id="student" scope="session" class="com.lagou.demo02.Student"/>
    15. <%-- 获取名字为student对象中属性为id的数值并打印 --%>
    16. 经过参数赋值后获取到的学号是:<jsp:getProperty name="student" property="id"/><br/>
    17. 经过参数赋值后获取到的醒目是:<jsp:getProperty name="student" property="name"/><br/>
    18. </body>
    19. </html>

    保存范围

  • JavaBean的保存范围有page、request、session以及application,默认是page范围。

    删除方式

    1. <%
    2. 内置对象.removeAttribute(“JavaBean的名字”);
    3. %>

    ```jsx <%— Created by IntelliJ IDEA. User: pingmao Date: 2021/4/24 Time: 下午7:27 To change this template use File | Settings | File Templates. —%> <%@ page contentType=”text/html;charset=UTF-8” language=”java” %> <% //表示从session对象中删除名字为student的属性 session.removeAttribute(“student”); %> <%= “删除数据成功!”%>

``` image.png

MVC设计模式(重点)

基本概念

  • MVC是模型(Model)和视图(View)以及控制器(Controller)的简写,是一种将数据、界面显示和业务逻辑进行分离的组织方式,这样在改进界面及用户交互时,不需要重新编写业务逻辑,从而提高了 代码的可维护性。
  • M:主要用于封装业务数据的JavaBean(Bean) 和 业务逻辑的JavaBean(Service)及访问数据库的DAO对象。
  • V:主要负责数据收集 和 数据展现,通常由JSP文件完成。
  • C:主要负责流程控制 和 页面跳转,通常由Servlet完成。

    基本模型

    第三章 JSP核心技术 - 图4