JSP指令和JSP标签

it2022-05-05  187

JSP指令

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

公式:

<%@ 指令名 属性名=属性值;[属性名=属性值;属性名=属性值...]%>
page指令
autoFlush:自动刷新(True,False:默认)contenType:页面文本类型"text/html"errorPage:如果存在错误页面,就跳转到指定的页面(不推荐在jsp中使用,因为在web.xml中可以配置更为方便的…)language:JSP中使用的语言,默认为javapageEncoding:页面编码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> jsp:include page属性:要包含的页面地址 <jsp:include page="index.jsp"></jsp:include> <jsp:include page="index.jsp"/>

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

@include属于静态包含:它会把包含进来的页面和自己的页面融合成为一个servletjsp:include属于动态包含,它不会把包含进来的页面和自己的页面融合成为一个servlet(推荐使用,容错率更高)当在不同的页面定义了同一个变量,那么使用@include就会报错,因为在一个servlet中不能定义多个同一变量,而jsp:include中却可以顺利运行 jsp:forword page属性:要转发的页面,url不变 本质就是Request的请求转发,可以携带参数,可以通过request取出来这个携带的参数,一般配合<jsp:param>使用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")%> 和实体类相关的标签 先创建一个实体类 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>

最新回复(0)