概念: 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>