JSP学习笔记

1、JSP概述

1.1、什么是jsp?(what)

JSP页面本质上是一个Servlet程序,第一次访问JSP页面时(运行Tomcat服务器后在浏览器地址栏输入路径),Tomcat服务器会将此JSP页面翻译成为一个Java源文件,并对其进行编译成为.class字节码文件。
*所以说jsp在一定意义上是java类。java类的查看方式在(详解2)。

1.2、为什么要使用jsp?(why)

对于我们初学web的小伙伴,在浏览器可以显示页面和内容,那么我们就有一个想法,这个页面不是固定的(是随着后台管理内容的变化而变化的),之前我们了解到html写出的页面是固定死的,是前端程序员一开始就写好的,那么我们要动态的接收后台数据呢,我们就用到了jsp的知识。

重点来了: JSP的主要作用是代替Servlet程序回传HTML页面的数据

1.3、怎么使用jsp?(how)

  1. web目录(或其他)右击 --> new --> JSP/JSPX --> 输入文件名 --> 选择JSP file创建(idea创建)
  2. web目录(或其他)右击 -->快捷键(Ctrl+N)–>搜索jsp -->创建(eclipse)

1.4、jsp知识点

说了这么多我们就要总结一下这些知识点了。

<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<%@ page import="java.util.HashMap" %>
<%@ page import="java.util.Map" %>
<html>
<head>
    <title>Title</title>
</head>
<body>
    <%--1.声明类属性--%>
    <%!
        private String name;
        private static Map<String, Object> map;
    %>
    <%--2.声明类方法--%>
    <%!
        public int sum() {
            return 12;
        }
    %>
    <%--3.声明静态代码块--%>
    <%!
        static {
            map = new HashMap<String, Object>();
            map.put("key1", "value1");
        }
    %>
</body>
</html>

我们可以出来,jsp页面里面有html的代码和java代码,所以我们可以理解为是html页面的加强版。

  1. 页面的第一行,是头部之类,写出这个指令,才说明这个文件是jsp文件。page中有很多的属性,我们在下面的(详解一)体现。
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
  1. 在jsp中的脚本

声明脚本:
格式:<%! 声明Java代码 %>
作用:可以给JSP翻译出来的Java类定义属性、方法、静态代码块、内部类等
特点:不会在浏览器的页面上显示出来,仅存在于翻译后的Java类中

<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<%@ page import="java.util.HashMap" %>
<%@ page import="java.util.Map" %>
<html>
<head>
    <title>Title</title>
</head>
<body>
    <%--1.声明类属性--%>
    <%!
        private String name;
        private static Map<String, Object> map;
    %>
    <%--2.声明类方法--%>
    <%!
        public int sum() {
            return 12;
        }
    %>
    <%--3.声明静态代码块--%>
    <%!
        static {
            map = new HashMap<String, Object>();
            map.put("key1", "value1");
        }
    %>
</body>
</html>

表达式脚本:
格式:<%=表达式 %>
作用:在浏览器的JSP页面上输出数据(只有此脚本可以在浏览器的页面上输出数据)
特点:
(1) 所有的表达式脚本都会被翻译到对应的Java类的_jspService()方法中,故表达式脚本可以 直接使用_jspService()方法参数中的对象
(2) 表达式脚本都会被编译后的Java类中的out.print()方法输出到浏览器页面上
(3) 表达式脚本中的表达式不能以分号结束

<%=22 %> <br/>
<%="可以输出字符串" %> <br/>
<%=map %> <br/>
<%--使用_jspService方法中的对象--%>
<%=request.getParameter("username") %>

代码脚本:
格式:<% Java语句 %>
作用:在JSP页面中可以编写需要的Java代码
特点:
(1) 代码脚本翻译后都在_jspService方法中,故代码脚本可以直接使用此方法参数中的对象
(2) 可以由多个代码脚本块组合完成一个完整的Java语句
(3) 代码脚本还可以和表达式脚本一起组合使用,在JSP页面上输出数据

<%--1.if语句--%>
<%
    int i = 1;
    if (i == 1) {
        System.out.println("我爱祖国!");
    } else {
        System.out.println("我很爱祖国!");
    }
%> <br/>
<%--2.for循环语句--%>
<%
    for (int j = 0 ; j < 3; j++) {
        System.out.println("第" + j + "次循环");
    }
%> <br/>
<%--3.使用_jspService方法参数中的对象--%>
<%
    String username = request.getParameter("username");
    System.out.println("username对应的值为:" + username);
%>

  1. 在jsp中的九大内置对象

JSP的内置对象指的是Tomcat服务器将JSP页面翻译为Java类之后内部提供的九大对象:

  1. request:请求对象
  2. response:响应对象
  3. pageContext:JSP的上下文对象
  4. session:会话对象
  5. application:ServletContext对象
  6. config:ServletConfig对象
  7. out:JSP输出流对象
  8. page:指向当前JSP的对象
  9. exception:异常对象
  1. jsp的四大域对象:
    在这里插入图片描述

域对象是指可以像Map一样存取数据的对象,四个域对象功能一样,只是对数据的存取范围不同。
注意:若四个域对象在使用时范围都可满足要求,则使用的优先顺序是(范围从小到大):
pageContext --> request --> session --> application

  1. jsp的out输出:

由于官方的代码中翻译后的Java代码底层都是使用out进行输出,故一般都使用out进行 输出,out又分为write方法和print方法:
(1) out.print():会将任何内容转换成字符串后调用write方法输出
(2) out.write():输出字符串没有问题,但输出int型时会将int转换成char输出,导致输出的并非是想要的数字而是数字对应的ASCII码
结论:JSP页面的代码脚本中任何要输出在浏览器的内容均使用out.print()方法

  1. jsp标签的引入

我们在书写代码的时候会发现有很多重复的代码:如友情链接、联系我们这一类的,我们会在很多的页面上写出,如果我们想简化一下,怎么办?这样我们就用到了jsp的引入。

<body>
    头部信息 <br>
    主体信息 <br>
    <%@include file="/foot.jsp"%>
</body>

2、JSP代码编写

这里会写出几种jsp小练习?

定义a=1,b=2在jsp页面输出结果。

<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
    <title>Title</title>
</head>
<body>
    <%! int a = 1;%>
    <%! int b = 2;%>
    得出的结果为:<%= a+b%>
</body>
</html>

在这里插入图片描述

使用for循环输出i like pig十次。

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

    得出的结果为:<% for (int i=0; i<10; i++){
                System.out.println("i like pig");
            }
    %>
</body>
</html>

在这里插入图片描述

3、详解

详解1:

  1. contentType属性:表示JSP返回的数据类型是什么,即response.setContentType()的参数值
  2. language属性:表示JSP翻译之后是什么语言文件(目前只支持Java)
  3. pageEncoding属性:表示当前JSP文件本身的字符集(可在IDEA右下角看到)
  4. import属性:表示导包(导类),与Java一致
  5. autoFlush属性:设置当out输出流缓冲区满了之后是否自动刷新缓冲区,默认值是true
  6. buffer属性:设置out缓冲区的大小,默认是8kb
    注意:out缓冲区满了之后不能自动刷新的话会报错
  7. errorPage属性:设置当JSP页面运行出错时自动跳转到的页面(错误信息页面)的路径,这个 路径一般都是以斜杠打头,表示请求的地址是http://ip:port/工程路径/,对应代码web目录
  8. isErrorPage属性:设置当前JSP页面是否是错误信息页面,默认是false,如果是true可以 获取错误信息
  9. session属性:设置访问当前JSP页面时是否会创建HttpSession对象,默认值是true
  10. extends属性:设置JSP页面翻译出来的Java类默认继承谁

详解2:
查看翻译后的Java源文件的方法:启动Tomcat服务器访问到JSP页面之后在控制台输出的信息的前端找到Using CATALINA_BASE中的路径,在硬盘中打开此目录,点击work --> Catalina --> localhost,找到对应的工程文件夹寻找即可。

本篇文档参考一部分csdn文章,最后表示感谢

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
顺序如下: 1、多种字体大小显示 2、c:out标记输出 3、获取当前时间 4、include包含语句 5、建立错误处理页面的范例程序 6、jsp:forward 7、简单计数器 8、设置页面属性 9、使用GB2312编码 10、使用Big5编码 11、c:catch的用法 12、<c:forEach> begin、end和step的用法 13 、 <c:forEach> 循环 14、<c:forEach> varStatus 的四种属性 15、<c:forEach> 的用法 16、从客户端传送数据至服务端 17、使用Unicode转义字符 18、使用朝鲜语字符集 19、JSP中最简单的国际化程序 20、错误检测 21、抛出异常 22、<c:if> 的用法 23、<c:set>和<c:remove> 的用法 24、<c:import> 的用法 25、jsp-include的用法 26、汉字处理 27、网页重定向 28、自动更新网页 29、存取session 30、<c:redirect> 的用法 31、单选型列表框 32、jsp文件中定义类 33、取得 JSP Container 版本 34、javax.servlet.jsp.JspWriter - out 对象 35、page 隐含对象 36、application 对象 37、PageContext 对象 38、Page范围 - pageContext 39、测试要显示的中文 40、IF控制符的操作 41、HttpServletRequest 接口所提供的方法 42、 网上测验 43、HttpSession - session 对象 44、 多选型列表框 45、解决浏览器 cache 的问题 46、使用 EL、JSTL 处理表单数据 47、 EL隐含对象 param、paramValues 48、EL隐含对象 pageContext 49、EL算术运算符 50、EL关系运算符 51、EL的运算符 52、选择钮的使用 53、检查框的使用 54、群组检查框的使用 55、数字、货币、百分数格式化 56、日期格式化 57、JSTL设置语言地区 58、Cookie数据的存取 59、session有效时间的设置与取得 60、session时间与ID 61、Cookie有效时间的设置 62、利用隐藏字段传送数据 63、JSP 使用 JavaBean 的方法 64、JSP 使用 JavaBean 65、范围为 Page 的 JavaBean范例程序 66、范围为 Request的 JavaBean 67、范围为 Session 的 JavaBean 68、范围为 Application 的 JavaBean 69、删除 JavaBean 70、url重组 71、Switch语句 72、环境变量 73、forward重定向 74、文件的建立与删除 75、取得文件属性 76、取得目录中的文件 77、目录的建立与删除 78、自Cookie存取日期/时间数据 79、管理Session变量 80、数据库中的记录数与记录指针位置 81、利用absolute方法设置记录位置 82、使用jsp指令生成Word文档 83、JSP网页模板 84、判断是否空白文件 85、cookie 用户登录次数 86、获取用户的真实IP地址 87、获取用户的浏览器信息 88、在客户端进行数据检查 89、在JSP中获取当前绝对路径 90、读取表单中所有参数 91、分行写入数据 92、显示请求URL 93、判断session是否过期 94、参数式查询数据库 95、取得数据库中各栏名称 96、使用JavaBean、设置和获取Bean的属性 97、设置Bean的一个属性与输入参数关联 98、实现基于数据库的站内搜索 99、DOM读取XML文档 100、SAX读取XML文档

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值