二、Jsp的构成

JSP页面中可以包含指令,Java语句、变量、方法或表达式、静态内容(html、css、javascript)

脚本元素(Scripting Elements):声明、脚本段、表达式。
注释指令(Comment Elements):HTML注释、Java注释、JSP隐式注释。
指令元素(Directive Elements):page、include、taglib 等
动作元素(Action Elements):jsp:include、jsp:forward、jsp:useBean等。

1.0 JSP指令

语法格式:

告诉JSP引擎如何解析jsp文件中的内容
    
​               语法: <%@ 指令名称 属性名称1=“属性值1” 属性名称2=“属性值2” 。。。。。%>
         				语言="java"	      文本类型 = "text/html ; 	字符集=utf-8"   页面编码="utf-8"
​          示例:<%@ page language=*"java"* contentType="text/html; charset=UTF-8"  pageEncoding=*"UTF-8"%>

2.0 page指令

作用:用于定义JSP页面的各种属性。

import和java代码的含义一样
         <%@ page import="java.util.Date,java.util.List"%>
             或者:
		<%@ page import="java.util.Date"%>
		<%@ page import="java.util.List"%>
session:会自动创建session对象,默认值为true;
buffer:JSP中有javax.servlet.jsp.JspWriter输出字符流。设置输出数据的缓存大小。默认8kb.
errorPage:如果页面中有错误,跳转到指定的资源 errorPage="/uri" 如果写“/”则代表当前应用的目录 下,绝对路径。  如果不写“/”则代表相对路径
isErrorPage:是否创建throwable对象。默认是false
contentType:等同于response.setContentType(“text/html”;charset=utf-8);服务器发送客户端的内容编码
pageEncoding: Jsp文件本身的编码
isELIgnored: 是否支持EL表达式。 默认是false,支持表达式;true表示不支持表达式,${1+1};false输出结果2   true按照原样输出  
<%@ page contentType="text/html;charset=UTF-8" language="java" pageEncoding="UTF-8"%>
<%@ page import="java.util.List" %>  <%-- 导入和java一样  --%>
<%@ page session="true"%>      <%-- session自动是为true  --%>
<%@ page pageEncoding="UTF-8" %> <%-- JSP本身的编码  --%>
<%@ page errorPage="错误跳转页面.jsp" %> <%-- 如果页面有错误 则跳转到指定页面  --%>
<%@ page buffer="8kb" %> <%--JSP中有javax.servlet.jsp.JspWriter输出字符流。设置输出数据的缓存大小。默认8kb.--%>
<%@ page isErrorpage
<%@ page isELIgnored="false" %> <%--isELIgnored: 是否支持EL表达式。 默认是false,支持表达式;true表示不支持表达式--%>

jsp的实现本质上还是java文件
查看路径
jsp_java文件存储位置
![java](https://img-blog.csdnimg.cn/20201210105721136.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzQ1NzcyNjY1,size_16,color_FFFFFF,t_70#pic_center

3.include包含

<%-- 两者的区别:翻译的时间段不同(可在tomcat工作目录下查看)
                静态包含:在翻译时就把两个文件进行合并,运行时效率高。
                动态包含:不会合并文件,当代码执行到include时,才包含另一个文件的内容。--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" pageEncoding="UTF-8"%>
<html>
<head>![include包含](https://img-blog.csdnimg.cn/20201210165239330.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzQ1NzcyNjY1,size_16,color_FFFFFF,t_70#pic_center)

    <title>include静态和动态引入</title>
</head>
<body>
<%--静态包含--%>
    <%@ include file="错误跳转页面.jsp"%>

<p style="color: red;font-size: 18px">这是我本身的文字上面是静态引用:运行时会给文件进行合并运行效率高 下面是静态引用不会合并文件当代码运行到时才包含文件内容</p>
<%--动态包含--%>
<jsp:include page="page指令.jsp"></jsp:include>
</body>
</html>

2.0动作标签

2.1include动态包含

<body>
<%--jsp:include 动态包含--%>
<jsp:include page="include静态和动态引入.jsp"></jsp:include>
</body>

动态请求属于动作标签

2.2forward请求转发

<%--jsp:forward 请求转发 请求转发不会清除参数--%>
<%--传递参数--%>
<jsp:forward page="错误跳转页面.jsp">
    <jsp:param name="user" value="jxc"/>
    <jsp:param name="password" value="123456"/>
</jsp:forward>

jsp_forward

2.3 bean指令

jsp:useBean 创建一个对象 id class
jsp:setProperty给指定的对象属性赋值 name property value
jsp:getProperty取出指定的对象属值 name property

<body>
<%--
jsp:useBean 创建一个对象  id   class
jsp:setProperty给指定的对象属性赋值  name  property value
jsp:getProperty取出指定的对象属值    name  property
--%>
<%
    //正常创建对象
    TBuser tuser = new TBuser();
    tuser.setUser("jxc");
    tuser.setPassword("123456");
    String user = tuser.getUser();
    String password = tuser.getPassword();
%>

<%--一般创建对象--%>
一般创建获取到的用户名:<%=user%><br>
一般创建获取到的密码:<%=password%>
<%--id 名称 class 对象--%>
<jsp:useBean id="users" class="com.Star.user.TBuser"></jsp:useBean>

<%--1.声明引用 2.查询有没有重复的 3.创建新对象 4.存到作用域 5.赋值--%>
<%--property属性 name: useBean创建的id名--%>
<jsp:setProperty name="users" property="user" value="张三"></jsp:setProperty>
<br>
<jsp:setProperty name="users" property="password" value="zhangsan"></jsp:setProperty>
<br>

<%--输出对象--%>
Bean创建对象获取到用户名:<jsp:getProperty name="users" property="user"/>
<br>
Bean创建对象获取到密码:<jsp:getProperty name="users" property="password"/>
</body>

正常创建
bean创建

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值