JavaWeb——JSP入门学习(JSP基本概念、JSP脚本、JSP内置对象)

举报
Winter_world 发表于 2021/09/28 22:31:48 2021/09/28
【摘要】 目录 1 JSP基本概念 2 JSP脚本 3 JSP的内置对象 4 使用JSP改造记住上一次的访问时间的案例 本章内容只对JSP内容做入门介绍,是为了会话技术的Cookie和Session内容的承接,后续再写文章详细介绍JSP。 1 JSP基本概念 JSP,Java Server Pages,Java服务器端界面,可以理...

目录

1 JSP基本概念

2 JSP脚本

3 JSP的内置对象

4 使用JSP改造记住上一次的访问时间的案例


本章内容只对JSP内容做入门介绍,是为了会话技术的Cookie和Session内容的承接,后续再写文章详细介绍JSP。

1 JSP基本概念

JSP,Java Server Pages,Java服务器端界面,可以理解为一个特殊页面,既可以定义html标签,又可以定义Java代码。可以简化书写

【JSP原理】:JSP本质上就是一个Servlet

  • 1)服务器解析请求消息,找是否有index.jsp资源;
  • 2)若找到了,则将其转化为.java文件;
  • 3)编译.java文件,生成.class字节码文件;
  • 4)由字节码文件提供访问;

2 JSP脚本

JSP脚本,就是JSP定义Java代码的方式,有三种:

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

2)<%!  代码    %>:定义的java代码,在jsp转换后 的java类的成员位置,用的很少;

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

<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
  <head>
    <title>$Title$</title>
  </head>

  <body>
    <%
      System.out.println("hello jsp");
      int i = 3;
    %>

    <%!
      int i = 5;
    %>
    <%=i %>
  </body>
</html>

3 JSP的内置对象

内置对象,就是指在jsp页面中不需要获取和创建,可以直接使用的对象。

jsp一共有9个内置对象,后续博文中会详细讲解,本次只说明3个:

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

1、在Tomcat服务器真正给客户端响应前,会先找response缓冲区数据,再找out缓冲区数据;

2、response.getWriter()数据永远在out.writer()之前;

建议使用out输出,避免打乱输出顺序。

4 使用JSP改造记住上一次的访问时间的案例

<%@ page import="java.util.Date" %>
<%@ page import="java.text.SimpleDateFormat" %>
<%@ page import="java.net.URLEncoder" %>
<%@ page import="java.net.URLDecoder" %>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
    <title>showTime</title>
</head>
<body>
    <%
        //1、判断Cookie
        Cookie[] cookies = request.getCookies();
        boolean flag =  false;
        if(cookies!= null && cookies.length>0){
            for (Cookie cookie : cookies) {
                String name = cookie.getName();
                if("lastTime".equals(name)){
                    flag = true;
                    //设置Cookie,时间
                    Date date = new Date();
                    SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
                    String time = sdf.format(date);
                    time = URLEncoder.encode(time,"utf-8"); //URL编码,否则会报错
                    cookie.setValue(time);
                    //设置存活时间
                    cookie.setMaxAge(60*60*24*30);//一个月
                    response.addCookie(cookie);

                    //响应数据
                    String value = cookie.getValue();
                    value = URLDecoder.decode(value,"utf-8");
                    out.write("<h1>欢迎回来,您上次访问时间为:"+value+"</h1>");
                    break;
                }
            }
        }

        if(cookies ==null || cookies.length==0 || flag==false){
            //设置Cookie,时间
            Date date = new Date();
            SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
            String time = sdf.format(date);
            time = URLEncoder.encode(time,"utf-8");
            Cookie cookie = new Cookie("lastTime",time);
            //设置存活时间
            cookie.setMaxAge(60*60*24*30);//一个月
            response.addCookie(cookie);

            out.write("<h1>您好,欢迎您首次访问</h1>");

        }
    %>
    <input>
</body>
</html>

作于202007241525,已归档

———————————————————————————————————

本文为博主原创文章,转载请注明出处!

若本文对您有帮助,轻抬您发财的小手,关注/评论/点赞/收藏,就是对我最大的支持!

祝君升职加薪,鹏程万里!

文章来源: winter.blog.csdn.net,作者:Winter_world,版权归原作者所有,如需转载,请联系作者。

原文链接:winter.blog.csdn.net/article/details/107559936

【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。