简单了解JSP

本文深入讲解JSP的基本概念,揭示其与Servlet的关系,以及如何利用JSP简化Web开发。探讨了JSP的脚本元素,如<%代码%>、<%!代码%>和<%=代码%>的作用,同时介绍了JSP的内置对象,如request、response和out,以及它们在Web应用中的应用实例。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

JSP:入门学习

  1. 概念:
    1. Java Server Pages:Java服务器端页面

      1. 可以理解为:一个特殊的页面,其中既可以写html标签,又可以写Java代码
      2. 用于简化书写
    2. 原理:JSP本质就是一个Servlet
      现有一个index.jsp,通过路径访问,这时候服务器收到请求会干几件事

      1. 服务器解析请求消息,找是否有index.jsp资源
      2. 如果找到了会将index.jsp转换为.java文件
      3. 编译.java文件,生成.class字节码文件
      4. 由字节码文件提供访问,字节码文件提供的响应,这个.java文件其实就是一个servlet。一个Java类要想被外界访问到必须是Servlet。所以jsp本质上就是一个Servlet
    3. JSP的脚本:

      • <% 代码 %>:定义的Java代码,在service方法中。service方法可以定义什么,该脚本就可以定义什么
      • <%! 代码 %>:定义的Java代码,在jsp转换后的类的成员变量位置
      • <%= 代码 %>:这是输出语句,输出语句可以定义什么,该脚本就可以输出什么
    4. JSP的内置对象

      1. 在jsp页面中不需要获取和创建,可以直接使用的对象
      2. jsp一共有九个内置对象
      3. 先学三个
        • request
        • response
        • out:字符输出流对象。可以将数据输出到页面上,和response.getWriter类似。
          • response.getwriter()和out.write()的区别
            在tomcat服务器真正给客户端做出响应之前,会先找response缓冲区数据,再找out缓冲区数据。所以response.getWriter()数据输出永远在out.write之前。
<%@ page import="java.util.Date" %>
<%@ page import="java.text.SimpleDateFormat" %><%--
  Created by IntelliJ IDEA.
  User: 星空之尘
  Date: 2020/8/17
  Time: 2:06
  To change this template use File | Settings | File Templates.
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
    <title>itcast</title>
</head>
<body>
<%
    //先获取cookie判断是否有lastTime这个cookie
    Cookie[] cookies = request.getCookies();
    //设置flg,flg为true说明是第一次访问
    boolean flg = true;
    if (cookies != null && cookies.length > 0) {
        for (Cookie cookie : cookies
        ) {
            String value1 = cookie.getName();
            if ("lastTime".equals(value1)) {
                //有这个cookie说明不是第一次访问
                flg = false;


                String value = cookie.getValue();
                

                response.getWriter().write("欢迎回来,您上次的访问时间为:" + value);

                Date date = new Date();
                SimpleDateFormat sdf = new SimpleDateFormat("yyyy年MM月dd日HH:mm:ss");
                String sdfstr = sdf.format(date);


                cookie.setValue(sdfstr);
                cookie.setMaxAge(60 * 60 * 24);
                response.addCookie(cookie);
                break;
            }
        }
    }


    //第一次访问
    if (cookies == null || cookies.length == 0 || flg == true) {
        Date date = new Date();
        SimpleDateFormat sdf = new SimpleDateFormat("yyyy年MM月dd日HH:mm:ss");
        String sdfstr = sdf.format(date);

        Cookie cookie = new Cookie("lastTime", sdfstr);
        //设置cookie存活时间为一天
        cookie.setMaxAge(60 * 60 * 24);
        response.addCookie(cookie);

        response.getWriter().write("<h1>您好,欢迎您首次访问<h1>");
    }

%>


</body>
</html>

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值