JSP

JSP

  1. jsp的概念
    JSP全名是Java Server Pages,它是建立在Servlet规范之上的动态网页开发技术。在JSP文件中,HTML代码与Java代码共同存在,其中,HTML代码用来实现网页中静态内容的显示,Java代码用来实现网页中动态内容的显示。为了与传统HTML有所区别,JSP文件的扩展名为.jsp。

2.体验jsp

<%@ page import="java.util.Date" %>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
    <title>Title</title>
</head>
<body>
    <%
        Date date = new Date();

        request.setAttribute("myTime",date);
    %>
    <span style="color: red">
    <%= request.getAttribute("myTime") %>
    </span>
</body>
</html>

3.jsp的基本语法
jsp注释
JSP注释格式
<%-- jsp注释 --%>

<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
 <head>
  <title>注释</title>
 </head>
 <body>
   <!---这个是html注释-->
   <%-- 这个是jsp的注释--%>
 </body>
</html>

jsp的注释不会显示在源码上,更加安全。
如果在jstl标签体内使用html的注释将会失效,所以在jsp页面中推荐使用jsp的注释。

4.jsp书写java代码的三种方式
脚本片段
脚本片段格式

格式:<% Java代码片段 %>
小结:在脚本片段中书写的Java代码,会翻译到java文件中的_jspService方法中。

脚本片段作用
在jsp翻译后的_jspService方法中,嵌入java代码

脚本片段使用注意事项
脚本片段可以分开书写,最终是组合在一起的,示例:
脚本片段内容:

<% for(int j = 0 ; j < 5 ;j++){%>
Hello World!!!<br>
<%}%>

脚本声明
脚本片段虽然可以嵌入java代码,但是如果,我们要给当前的jsp中定义一些方法或者成员变量,就行需要一个新的技术——脚本声明。
脚本声明格式
格式:<%! 书写Java代码 %>

jsp文件内容:

<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
  <title>书写java代码的三种方式</title>
</head>
<body>
 <%! int i = 0 ;%>
</body>
</html>

总结:脚本声明书写的java代码会翻译在类的成员位置上。

脚本声明作用
在类的成员位置上声明方法和变量

脚本声明使用注意事项
声明方法的时候,不要声明与jsp翻译的java文件中默认的一些方法或者变量同名的方法或者变量。

脚本表达式
虽然脚本声明和脚本片段已经可以书写Java代码了,但是如果我们要使用java代码向页面输出一些内容,还是需要使用原来的response对象,比较繁琐,因此,我们需要一个更加简便的方式,可以代替response向页面输出内容——这个就是脚本表达式。

脚本表达式格式
格式:<%= 表达式 %>

总结:脚本表达式书写的java代码,会翻译到java文件中的_jspService方法内,被out.print输出到页面。

脚本表达式作用
代替response向页面输出内容

脚本表达式使用注意事项
使用表达式向页面输出内容的时候,不要同时使用response对象向页面输出内容,会出现页面内容输出顺序和代码顺序不一致。

5.jsp的执行原理
通过上述的体验jsp之后,我们发现jsp真的非常厉害,既可以编写java代码也可以直接编写html代码,相对servlet更加方便,那么jsp为什么可以直接使用reqeust 与直接编写html代码呢
在这里插入图片描述

jsp之所以可以编写html代码,其实本质上也是类似我们使用Servlet直接输出的。

jsp之所以直接使用 直接使用request对象,是因为我们自己编写的代码全部都落入到了service方法内部,在service方法内部一开始就已经声明了request等对象了。

6.jsp内置对象
jsp9大内置对象
在这里插入图片描述
常用内置对象
request : 作用范围在一次请求链中的域对象 , 在请求到达服务器时创建 , 请求响应完毕 .
在这里插入图片描述

<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
  <title>Title</title>
</head>
<!-- 使用request对象 存储 键值对 -->
<%
  request.setAttribute("aa","AAAAAA");
%>
<body>
<!-- 查找键值对数据, 并在页面显示 -->
<%=  request.getAttribute("aa")%>
</body>
</html>

pageContext : 是作用范围最小的域对象 , 只作用当前页面 . 在页面访问时创建 , 页面访问完毕销毁 .
在这里插入图片描述
注意 : 查找属性时从最小范围的域对象开始获取, 一旦找到 , 不再查找.

<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
  <title>Title</title>
</head>
<% 
  request.setAttribute("aa","AAAAAA");
  pageContext.setAttribute("aa","BB");
%>
<body>
<%=  pageContext.findAttribute("aa")%>
</body>
</html>

7.BeanUtils
BeanUtils 是 Apache commons组件的成员之一,主要用于简化JavaBean封装数据的操作。它可以给JavaBean封装一个字符串数据,也可以将一个表单提交的所有数据封装到JavaBean中。

使用第三方工具,需要导入jar包:
在这里插入图片描述

BeanUtils工具常用工具类有两个:BeanUtils、ConvertUtils。BeanUtils用于封装数据,ConvertUtils用于处理类型转换,常用API如下

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值