概念: servlet处理业务逻辑比较方便,但是响应页面的时候就比较麻烦,所以使用JSP,JSP命名叫 java server pages,中文名叫java服务器页面,其根本是一个简化的Servlet,是一种动态网页技术
概念:
servlet处理业务逻辑比较方便,但是响应页面的时候 就比较麻烦,所以使用JSP,JSP命名叫 java server pages,中文名叫java服务器页面,其根本是一个简化的Servlet,是一种动态网页技术标准
特点:
本质是还是servlet;
跨平台;
健壮性安全性;
jsp指令学习:
<%@ page language="java" pageEncoding="utf-8"%>
指定属性 language,pageEncoding,contentType,import,session,errorPage 等
<%@ page language="java" pageEncoding="utf-8" import="java.util.*" errorPage="MyJsp.jsp" isErrorPage="true"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="ISO-8859-1">
<title>Insert title here</title>
</head>
<body>
<%--
java代码写在<% %>里面,声明java方法写在<%! %>里面,
<%= %>用来输出java变量到页面,要理解jsp转化为java代码的规则
静态引入:<%@include file="include.jsp" %>
静态引入特点:静态引入的jsp不会被转译成class文件
两个jsp文件合并成一个;
注意:因为是合并成一个文件,所以不能有同名容量;
动态引入:<jsp:include page="includeActive.jsp"></jsp:include>
动态引入特点:两个jsp文件都会被转译,引入方法是调用,不是合并文件;
注意:因为是合调用,所以可以有同名变量
引入的优点:提高代码的重用,便于维护升级
转发页面:<jsp:forward page="MyJsp.jsp">
<jsp:param value="javse" name="aaa"/>
</jsp:forward>
注意:jsp:forward标签里面只能写jsp:param,可以以在转发的页面通过request获得数据
jsp的九个内置对象:
内置对象:jsp在转译成Servlet时自动生成的对象,可以在写jsp直接使用
注意:只能在jsp页面中使用,不能在全局代码块中使用,因为jsp九个内置对象声明在service方法中
内容:
pageContext:页面的上下文对象,封装了其他内置对象,封存了当前jsp的运行信息
注意:每个jsp页面只能有一个pageContext对象,
作用域:当前jsp页面
request:封存当前请求数据;
response:响应对象,设置响应头,重定向;
session:封存用户不同请求的共享数据;
application:ServletContext对象,封存用户共享数据;
config:ServletConfig对象,用来读取web.xml中的私有配置数据;
out:响应对象 ,jsp内部使用,带有缓冲区,效率高于response对象;
page:this,代表当前jsp的对象
exception:异常对象,使用此对象时要在page使用属性isErrorPage="true;
jsp路径问题:
<a href="/MyJsp.jsp">MyJsp.jsp</a>
第一个/代表项目目录
--%>
<% int number=(int)(Math.random()*10); %>
<% if(number>5) {%>
<p>big!!!<%=number %></p>
<%}else{ %>
<p>small!!!<%=number %></p>
<%} %>
<%!public void method(){
System.out.println("这是全局代码块!!!");
}%>
<hr />
<%@include file="include.jsp" %>
<hr />
<%--
<jsp:include page="includeActive.jsp"></jsp:include>
<jsp:forward page="MyJsp.jsp">
<jsp:param value="javse" name="aaa"/>
</jsp:forward>
--%>
<a href="/MyJsp.jsp">MyJsp.jsp</a>
</body>
</html>