RequestDispatcher
是web资源包装类
<jsp:include>只能实现固定jsp文件名
他可以翻译为:RequestDispatcher(filename).include(request,response);
这里实现的是:跳转到指定的fileName地址,包含

转发重定向区别:

  requset,response信息一起过去

我们可以把它想成一个web资源的盒子,用来对web资源封装好一起处理

  转发:请求不变只是请求发给服务器后,服务器将请求还了一个给浏览器,所以浏览器的url不变

  重定向:发送请求给服务器,服务器response回一个新的链接给浏览器,让浏览器从新发送一个请求给服务器,这就是重定向,之前的request中的保存的东西也就不在了,我们能看到的区别就是url变了

1.为什么出现JSP

  Servlet是动态开发语音,而jsp是可以htmlServlet结合的不仅能编写java代码可以布局样式,类似于.NET中的cshtml

2.Jsp的执行过程

  a) 找到Tomcatwork目录存放jsp的临时文件-》翻译成java文件-》编译成class文件-》构造类对象-》调用方法

  b) Jsphtml部分被编译到Servletserver方法中,java部分被编译到jsp_server

3.Jsp的生命周期

  a) Servlet生命周期

    构造方法-init方法-service方法-destroy方法

  b) Jsp的生命周期

    翻译jsp->java->编译java-class->构造方法-init方法-service方法-destory方法

4.Jsp语法

  a) Jsp模板:html部分就是jsp模板

  b) Jsp表达式:<%=变量或表达式 %>想浏览器输出变量或表达式结果,out.writer();

  c) Jsp脚本:<% java脚本 %> jsp编译器直接将这部分代码复制到jsp_service()方法

  d) jsp声明:<%!变量或方法%>声明jsp的成员变量和成员方法

  e) Jsp注释:<%!--jsp注释-->

5.Jsp的三大指令

  a) Include指令

  1. 静态引入其他页面,将两个jsp文件翻译为一个java文件,所以不能出现重复的模板html部分代码
  2. 语法:<%include file=”path路径”%>

  b) Page指令

  1. 告诉tomcat怎么将jsp文件翻译为java文件
  2. 例子:

    <% page import=”java.lang.util.*”

                   Language=”java”

         pageEncoding=”utf-8”

       contentType=”text/html; charset=utf-8”

         errorPage=”” //指定当前错误页面的处理页面

       isPageError=false;指定当前页面是否是错误处理页面,是的话可以用jsp内置错误对象exception,反之不可

    %>

      配置全局的错误处理页面方式

      在web.xml中设置:不同的错误代码调到不同的错误页面全局配置

 

         <!-- 全局错误处理页面配置 -->

         <error-page>

           <error-code>500</error-code>

           <location>/common/500.jsp</location>

         </error-page>

        <error-page>

           <error-code>404</error-code>

           <location>/common/404.html</location>

       </error-page>

    Session=true;

    Buffer=8kb;   jsp页面的缓存器大小

    isELIngore=false 是否忽略EL

例子:语法例子

 

<%@ page language="java" contentType="text/html; charset=utf-8"
    pageEncoding="utf-8"
    import="java.util.*"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>jsp语法</title>
</head>
<body>
    <!-- jsp表达式 -->
    <%
        //变量
        String name="xiaoping";
        int a=10;
        int b=20;
    %>
    <%=name %>
    <%=(a-b) %>
    <!-- jsp脚本 -->
    <%
        //生成随机数
        Random d=new Random();
        float num=d.nextFloat();
    
    %>
    <%
        for(int i=1;i<6;i++){
    %>
    <!-- 穿插html 代码 -->
        <h<%=i %>>标题<%=i %></h<%=i %>>
    <%
        }
    %>
    
    <!-- 练习:使用html代码显示99乘法表 -->
    <%
        for(int i=1;i<9;i++){
            for(int j=1;j<9;j++){
    %>
                <%=i %> x <%=j %>=<%=(i*j) %>&nbsp;
        <%
            }
        %>
        <br/>
    <%    
        }
    %>
    <%
        String age="20";
    %>
    <!-- jsp声明 -->
    <%!
        String name="xiaoping";
        public String getName(){
            return name;
        }
    %>
    <!-- html注释 -->
    <%-- <jsp:forward page="/jsp1/index/jsp">内置标签</jsp:forward> --%>
    <%-- jsp注释--%>
</body>
</html>
View Code

相关文章: