JSP指令和JSP标签

JSP指令

JSP指令只有是三个:page、include 、taglib(标签)

公式:

<%@ 指令名 属性名=属性值;[属性名=属性值;属性名=属性值...]%>
page指令
  • autoFlush:自动刷新(True,False:默认)
  • contenType:页面文本类型"text/html"
  • errorPage:如果存在错误页面,就跳转到指定的页面(不推荐在jsp中使用,因为在web.xml中可以配置更为方便的…)
  • language:JSP中使用的语言,默认为java
  • pageEncoding:页面编码
  • import:因为jsp本质上就是servlet,所以需要导入相关jar包才能使用
include指令

导入其他页面到本页,网站中一般由一些公用的位置,我们可以提取出来,比如网站的头部和尾部
file属性:(要导入的页面,一般都是不完整的页面,值包含部分)

taglib标签库

在jsp中有大量的java代码十分痛苦.所以在开发中我们可以使用一些现成的标签库,就相当于使用一些替代java代码的标签语言
java代码的标签语言
out.print()----------------------> <c:out>:这个c就是一个别人定义好的标签库,像这样的库有非常多,我们甚至于可以自己定义;

示例代码:

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

</body>
</html>
上面我们说到一些错误的页面,不建议在jsp页面中写jsp指令,我们在web.xml中配置
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_4_0.xsd"
         version="4.0">

    <!--如果网站中出现了404,就跳转到指定的页面-->
    <error-page>
        <error-code>404</error-code>
        <location>/error/404.jsp</location>
   
   <!--500-->
    </error-page>
    <error-page>
        <error-code>500</error-code>
        <location>/error/500.jsp</location>
    </error-page>
    <!--异常处理-->
    <error-page>
        <exception-type>java.lang.NullPointerException</exception-type>
        <location>/error/exception.jsp</location>
    </error-page>
</web-app>
include指令:包含页面
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<div>
    <h1>我是footer</h1>
</div>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<div>
    <h1>我是header</h1>
</div>
<body>
  <%--使用include指定加载网页其他部分--%>
  <%@include file="common/header.jsp"%>
  <h1>我是index页面</h1>
  <%@include file="common/footer.jsp"%>
</body>
JSP标签

**作用:**为了避免在JSP中有大量的代码,造成页面不好维护;
语法:

<jsp:xxxx>
  1. jsp:include page属性:要包含的页面地址
<jsp:include page="index.jsp"></jsp:include>
<jsp:include page="index.jsp"/>

JSP指定和JSP标签的include有什么区别呢?
答:

  • @include属于静态包含:它会把包含进来的页面和自己的页面融合成为一个servlet
  • jsp:include属于动态包含,它不会把包含进来的页面和自己的页面融合成为一个servlet(推荐使用,容错率更高)
  • 当在不同的页面定义了同一个变量,那么使用@include就会报错,因为在一个servlet中不能定义多个同一变量,而jsp:include中却可以顺利运行
  1. jsp:forword page属性:要转发的页面,url不变
    本质就是Request的请求转发,可以携带参数,可以通过request取出来这个携带的参数,一般配合<jsp:param>使用
  2. jsp:param
    一般配合jsp:forword使用,携带参数
<jsp:include page="common/header.jsp"/>
<h1>我是tag页面</h1>
<jsp:include page="common/footer.jsp"/>


<jsp:forward page="index.jsp"/>

<jsp:forward page="index.jsp">
    <jsp:param name="username" value="kuangshen"/>
    <jsp:param name="age" value="18"/>
</jsp:forward>

index页面的取出代码

  名字:<%=request.getParameter("username")%>
  年龄:<%=request.getParameter("age")%>
  1. 和实体类相关的标签
  • 先创建一个实体类
public class Student {
    private String name;
    private int id;
    private int age;
    private boolean isGraduate;//是否毕业

    public Student() {
    }

    public Student(String name, int id, int age, boolean isGraduate) {
        this.name = name;
        this.id = id;
        this.age = age;
        this.isGraduate = isGraduate;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
            return;
        }
        this.name = name;
    }

    public int getId() {
        return id;
    }

    public void setId(int id) {

        this.id = id;
    }

    public int getAge() {
        return age;
    }

    public void setAge(int age) {
        this.age = age;
    }

    public boolean isGraduate() {
        return isGraduate;
    }

    public void setGraduate(boolean graduate) {
        isGraduate = graduate;
    }

    @Override
    public String toString() {
        return "Student{" +
                "name='" + name + '\'' +
                ", id=" + id +
                ", age=" + age +
                ", isGraduate=" + isGraduate +
                '}';
    }
}

jsp:useBean标签:使用实体类的jsp标签
jsp:setProperty标签:为实体类属性赋值的标签
jsp:getProperty标签:取出实体类属性的值

创建一个jsp页面

<%@ page import="com.pzy.pojo.Student" %>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
    <title>Title</title>
</head>
<body>

<%--如何通过jsp使用自定义的对象--%>

<%--
    Student student = new Student();
%>--

<%--
jsp:useBean标签
    创建一个类的实例化对象;
    java代码:Student student = new Student();
    属性:
        id:实例化对象的名称,对象名
        class:要实例化的类
        scope:对象的作用域,默认是page,千万不要放在application中;
--%>

<jsp:useBean id="student" class="com.pzy.pojo.Student" scope="page"/>

<%--jsp标签--%>
<%--setProperty默认调用的是实体类中的set方法--%>
<jsp:setProperty name="student" property="id" value="2"/>
<jsp:setProperty name="student" property="age" value="18"/>
<jsp:setProperty name="student" property="name" value="暮凌寒雪"/>
<jsp:setProperty name="student" property="graduate" value="false"/>


<%--普通方法
<%
    student.setAge(24);
    student.setName("寒雪");
    student.setId(001);
%>
--%>

<%=student.getAge()%>
<%=student.getName()%>
<%=student.getId()%>
<%=student.isGraduate()%>

<hr>
<%--el表达式--%>
${student.age}
${student.name}
${student.id}
${student.graduate}

<hr>

<%--getProperty默认调用的是实体类中的get方法--%>
<jsp:getProperty name="student" property="age"/>
<jsp:getProperty name="student" property="name"/>
<jsp:getProperty name="student" property="id"/>

</body>
</html>
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值