JSP(java servlet pages)笔记

JSP相关概念

  • 概念:java servlet pages,java服务器端页面。可以理解为一个特殊的页面,其中既可以指定定义html标签,又可以定义java代码。
  • JSP的产生就是为了简化代码的书写。

JSP的实现原理

  • JSP本质上就是一个servlet
    在这里插入图片描述

JSP的脚本

  • 概念:JSP定义java代码的方式。例如,<%%>对应的区域就是JSP的脚本
  • <% %>:定义的java代码在service方法当中。service方法可以定义什么,该脚本就可以定义什么。
  • <%! %>:定义的是java类的成员,可以定义成员变量,也可以定义成员方法。
  • <%= %>:定义的java代码会输出到页面上,同sysout的使用,只不过是打印到页面上面。

JSP的内置对象

  • 在JSP页面当中不需要获取和创建,可以直接使用的对象
  • jsp一共有9个内置对象

out.write()和response.getWriter().write()的区别

  • response.getWriter().write()会先于out.write()输出,而out.write()写在哪里就会在哪里进行输出。
    实际上,在tomcat服务器真正给客户端服务器做出响应之前,会先找到response缓冲区的数据,再找out缓冲区的数据。因此response.getWriter().write()会永远先于out.write()输出。
    在这里我们建议使用out,write()进行输出,这样不会破坏页面的布局。

JSP的cookie案例

<%@ page import="java.util.Date" %>
<%@ page import="java.text.SimpleDateFormat" %>
<%@ page import="java.net.URLEncoder" %>
<%@ page import="java.net.URLDecoder" %><%--
  Created by IntelliJ IDEA.
  User: JiadeChen
  Date: 2020/2/15
  Time: 11:47
  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>
<h1>HELLO WORLD!</h1>

<%!
    private Cookie getTimeCookie(Cookie[] cookies) {
        if (cookies == null) {
            return null;
        }

        for (Cookie cookie : cookies) {
            if (cookie.getName().equals("time")) {
                return cookie;
            }
        }

        return null;
    }
%>

<%
    response.setContentType("text/html;charset=utf-8");

    Cookie[] cookies = request.getCookies();
    Date date = new Date();
    SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
    String dateString = URLEncoder.encode(simpleDateFormat.format(date), "utf-8");

    Cookie cookie = getTimeCookie(cookies);
    if (cookie == null) {
        out.write("欢迎您首次登陆!");
        cookie = new Cookie("time", dateString);
    } else {
        out.write("您上次的访问时间是:" + URLDecoder.decode(cookie.getValue(), "utf-8"));
        cookie.setValue(dateString);
    }

    response.addCookie(cookie);
%>
</body>
</html>

发布了96 篇原创文章 · 获赞 19 · 访问量 4331

猜你喜欢

转载自blog.csdn.net/qq_43446165/article/details/104363371
今日推荐