JavaWEB——JSP—JavaBean

JSP

  • 概念:Java Server Pages,JSP部署在Web服务器上,可以响应客户端发送的请求,并根据请求内容动态地生成HTML、XML或其他格式文档的Web网页,然后返回给请求者。
JSP工作流程
  • 1.客户端浏览器发送HTTP请求到服务器端

  • 2.Web服务器会根据请求的URL地址或者.jsp文件识别到改请求是一个JSP网页请求,并将该请求转发给JSP引擎

  • 3.JSP引擎会根据请加载对应的jsp文件,并将该jsp文件转化为servlet类文件(xxx.java)

  • 4.同时JSP引擎会将该servlet类文件编译为可执行的类(xxx.class),并将对应的原始请求转发给Servlet引擎

  • 5.接收到请求的Servlet引擎会根据请求加载对应的servlet文件

JSP的本质就是一个Servlet类

  • 在jsp页面中:
  • 如果是java代码就会原封不动的输出
  • 如果是html代码,就会转化成out.write("\r\n")的格式输出到前端页面

JSP表达式

  • <% %>————片段
  • <%= %>———— 变量
  • <%! %>————全局方法
  • <%-- JSP注释–%>————注释
  • < !-- html-- >————注释
  • 注意:jsp注释页面中不会显示,html注释在查看代码中可以显示

自定义错误页面

  1. 编写页面
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
    <title>Title</title>
</head>
<body>
<%--自定义错误页面--%>
<img src="../photo/500.jpg" alt="500">
</body>
</html>
  1. 在web.xml中配置
    <error-page>
        <error-code>404</error-code>
        <location>/Error/404.jsp</location>
    </error-page>
    <error-page>
        <error-code>500</error-code>
        <location>/Error/500.jsp</location>
    </error-page>

JSP九大内置对象

  1. OUT ———— 输出流对象
  • 服务器向客户输出的字符内容可以通过out对象输出
  1. Request ———— 请求对象————存东西
  • 包含客户端的信息和请求信息
  • 每次客户端的请求都会产生一个request实例
  1. Respense ———— 响应对象
  • 服务器端的任何响应都由response对象输出到客户端浏览器
  • 每次服务端都会响应一个response实例
  1. Config ———— 配置对象
  • JSP中靠config获取参数
  • 每个JSP文件中都有一个config对象
  1. Session ———— 会话对象————存东西
  • session和cookie都是记录客户访问信息的机制
  • session是保存在服务器端
  • cookie是保存在客户端
  • 每一个用户对应一个session对象
  1. Application ———— 应用程序对象————存东西
  • 封装JSP所在Web应用程序的信息
  • 每个Web对应一个application
  1. Page ———— 配置页面对象
  • 代表当前jsp页面
  • 是当前jsp编译后的servlet类对象
  • 相当于java类中的this
  1. PageContext ———— 页面上下文对象————存东西
  • 代表当前jsp页面编译后的内容
  1. Exception ———— 异常对象
  • 封装了jsp中抛出的异常信息
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
    <title>Title</title>
</head>
<body>
<%--jsp内置对象--%>
<%
    // 存数据
    pageContext.setAttribute("key01","当前页面数据"); // 当前页面有效
    request.setAttribute("key02","新闻"); // 请求转发有效
    session.setAttribute("key03","购物车"); // 浏览器从开到关有效
    application.setAttribute("key04","聊天数据"); // 服务器从开到关有效
%>
<%
    // 取数据
    String key01 = (String) pageContext.findAttribute("key01");
    String key02 = (String) pageContext.findAttribute("key02");
    String key03 = (String) pageContext.findAttribute("key03");
    String key04 = (String) pageContext.findAttribute("key04");
    String key05 = (String) pageContext.findAttribute("key05"); // 不存在
%>
<h3>${key01}</h3>
<h3>${key02}</h3>
<h3>${key03}</h3>
<h3>${key04}</h3>
<%--不显示--%>
<h3>${key05}</h3> 
<%--显示为null--%>
<h3><%=key05%></h3>
</body>
</html>

页面跳转01

</head>
<body>
<%
    pageContext.forward("/pageContextDemo01.jsp");
%>
</body>
</html>

页面跳转02————此时key02数据会显示出来

<%
    // 存数据
    pageContext.setAttribute("key01","01当前页面数据"); // 当前页面有效
    request.setAttribute("key02","02新闻"); // 请求转发有效
    session.setAttribute("key03","03购物车"); // 浏览器从开到关有效
    application.setAttribute("key04","04聊天数据"); // 服务器从开到关有效
%>
<%
    pageContext.forward("/pageContextDemo02.jsp");
%>

JavaBean

  • 概念:是一种JAVA语言写成的可重用组件。
  • 要求:
    1. 类必须是具体的和私有的
    1. 并且具有无参数的构造器
    1. 必须有set/get方法

JavaBean可分为两种

  • 一种是有用户界面(UI,User Interface)的JavaBean;
  • 一种是没有用户界面,主要负责处理事务(如数据运算,操纵数据库)的JavaBean
    JSP通常访问的是后一种JavaBean
  1. 创建一个java类,和数据库中的表对应
public class people {
    private String name;
    private int age;
    private String sex;
    public people(){}
    public people(String name, int age, String sex) {
        this.name = name;
        this.age = age;
        this.sex = sex;
    }
    ......
  1. 编写javabean
<%@ page import="pojo.people" %>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
    <title>Title</title>
</head>
<body>
<%--设置数据--%>
<jsp:useBean id="people" class="pojo.people" scope="page"/>
<jsp:setProperty name="people" property="name" value="张三"/>
<jsp:setProperty name="people" property="age" value="20"/>
<jsp:setProperty name="people" property="sex" value="女"/>
<%--输出数据--%>
<p>
    姓名:<jsp:getProperty name="people" property="name"/>
</p>
<p>
    年龄:<jsp:getProperty name="people" property="age"/>
</p>
<p>
    性别:<jsp:getProperty name="people" property="sex"/>
</p>
</body>
</html>
上一篇:JavaBean


下一篇:【SpringBoot】将配置文件中的内容注入到JavaBean时,properties配置文件中文乱码问题