• JSP(一)----入门学习


    ##  JSP

    1、概念:

      *  Java  Server  Pages:java服务端页面

        *  可以理解为:一个特殊的页面,其中既可以直接定义html标签,又可以定义java代码

    2、原理

      *  jsp本质上就是一个servlet(可以查看Tomcat启动目录中的源码)

    3、JSP脚本:JSP定义Java代码的方式

      1、<%  代码 %>:定义的java代码,在service方法中。service方法中可以定义什么,该脚本中就可以定义什么

      2、<%!  代码 %>:定义的java代码,在jsp转换后的java类的成员位置

      2、<%=  代码 %>:定义的java代码,会输出到页面上。输出语句中可以定义什么,该脚本中就定义什么

    4、JSP内置对象

      *  在jsp页面中不需要获取和创建,可以直接使用的对象

      *  jsp中共有9个内置对象。

      *  request 

      *  response

      *  out:字符输出流对象,可以将数据输出到页面上。和response.getWriter()类似。

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

     5、jsp改造servlet写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: 21seu.ftj
      Date: 2020/3/26
      Time: 7:14
      To change this template use File | Settings | File Templates.
    --%>
    <%@ page contentType="text/html;charset=UTF-8" language="java" %>
    <html>
    <head>
        <title>cookie</title>
    </head>
    <body>
    <%
    
        //1.获取所有Cookie
        Cookie[] cookies = request.getCookies();
        boolean flag = false;//没有cookie为lastTime
        //2.遍历cookie数组
        if (cookies != null && cookies.length > 0) {
            for (Cookie cookie : cookies) {
                //3.获取cookie的名称
                String name = cookie.getName();
                //4.判断名称是否是:lastTime
                if ("lastTime".equals(name)) {
                    //有该Cookie,不是第一次访问
    
                    flag = true;//有lastTime的cookie
    
                    //设置Cookie的value
                    //获取当前时间的字符串,重新设置Cookie的值,重新发送cookie
                    Date date = new Date();
                    SimpleDateFormat sdf = new SimpleDateFormat("yyyy年MM月dd日 HH:mm:ss");
                    String str_date = sdf.format(date);
                    System.out.println("编码前:" + str_date);
                    //URL编码
                    str_date = URLEncoder.encode(str_date, "utf-8");
                    System.out.println("编码后:" + str_date);
                    cookie.setValue(str_date);
                    //设置cookie的存活时间
                    cookie.setMaxAge(60 * 60 * 24 * 30);//一个月
                    response.addCookie(cookie);
    
    
                    //响应数据
                    //获取Cookie的value,时间
                    String value = cookie.getValue();
                    System.out.println("解码前:" + value);
                    //URL解码:
                    value = URLDecoder.decode(value, "utf-8");
                    System.out.println("解码后:" + value);
    %>
    <h1>欢迎回来,您上次访问时间为:<%=value%>
    </h1>
    
    <%
                    break;
                }
            }
        }
    
    
        if (cookies == null || cookies.length == 0 || flag) {
            //没有,第一次访问
    
            //设置Cookie的value
            //获取当前时间的字符串,重新设置Cookie的值,重新发送cookie
            Date date = new Date();
            SimpleDateFormat sdf = new SimpleDateFormat("yyyy年MM月dd日 HH:mm:ss");
            String str_date = sdf.format(date);
            System.out.println("编码前:" + str_date);
            //URL编码
            str_date = URLEncoder.encode(str_date, "utf-8");
            System.out.println("编码后:" + str_date);
    
            Cookie cookie = new Cookie("lastTime", str_date);
            //设置cookie的存活时间
            cookie.setMaxAge(60 * 60 * 24 * 30);//一个月
            response.addCookie(cookie);
    
    %>
    
    <h1>您好,欢迎您首次访问</h1>
    
    <%
        }
    %>
    </body>
    </html>
    That which doesn't kill me makes me stronger!
  • 相关阅读:
    Java I/O流
    Java 网络编程
    Java 位运算
    Java高级特性 实用类
    Java高级特性 集合
    Log4j
    DML和DQL以及常用函数
    mysql 初始语句
    jQuery中表单的初始验证
    使用jQuery对DOM中的节点操作
  • 原文地址:https://www.cnblogs.com/21seu-ftj/p/12571304.html
Copyright © 2020-2023  润新知