tomcat javaweb开发基础(三)

来源:互联网 发布:linux文件结构 编辑:程序博客网 时间:2024/05/16 15:11

一:jsp基本语法

(1)首先介绍一下指令:

指令(directive)是向容器提供的关于JSP页面的总体信息。
指令是以<%@开头,以%>结束的标签。
指令有三种类型:page指令、include指令和taglib指令。三种指令的语法格式如下:

<%@ page attribute-list %>

<%@ include attribute-list %>

<%@ taglib attribute-list %>

(2)分别介绍一下这三种指令

一:page指令表示当前一个JSP页面。

 主要功能:

      设置MIME类型(content_type)

      导包指令 (import)

      其他指令:错误页 (errorPage,isErrorPage),禁止session  (session)


例子:

现在假设建立一个JSP页面,要求里面设置上中文。

范例:

    <h1>中国,你好!</h1>

显示结果:



出现了乱码,原因是由于本身的额页面编码和显示的编码不一致造成的。所以此时,为了显示出正确的编码,就必须使用page指令,在页面进行加载的时候就已经设置好自己所需的编码方式。

<%@page contentType="text/html;charset=GBK"%>

<h1>中国,你好!</h1>

以上的MIME类型就表示整个页面按照HTML的风格显示,字符集是GBK

在顺便说其他的MIME类型

conf/web.xml:

 <mime-mapping>

       <extension>htm</extension>

       <mime-type>text/html</mime-type>

   </mime-mapping>

   <mime-mapping>

       <extension>html</extension>

       <mime-type>text/html</mime-type>

   </mime-mapping>

利用MIME类型的一个范例:
将一个JSP页面显示成一个word文档。

<%@ page contentType="application/msword"%><%int row = 10 ;int col = 10 ;%><table border="1" bordercolor="#3399FF" bgcolor="#663399"><%for(int i=0;i<row;i++){%><tr><%for(int j=0;j<col;j++){%><td><%=i * j%></td><%}%></tr><%}%></table>
注意;

contentType只能设置一次

最后说一下import属性:

import指令是page指令中唯一允许设置多次的属性

<%@page contentType="test/html;charset=GBK"%><%@page import="java.sql.*"%><%@page import="java.util.*,java.io.*"%><h1>中国,你好!</h1>

二:include指令

JSP可以通过include指令来包含其他文件的内容,被包含的文件可以是JSP文件也可以是HTML文件

在jsp中对于包含指令有两种语句形式:

      @include指令

      <jsp:include>动作

首先介绍一下@include指令:

此包含属于静态包含,可以包含任意的文件,当然只是把文件的内容包含进来

范例:content.htm

    <h1>content.htm</h1>    

   content.txt

   <h1>content.txt</h1>    

     content.inc  

  <h1>content.inc</h1>    

  包含以上的三个内容:

<h1>includedemo01.jsp</h1>

<%@includefile="content.htm"%>

<%@includefile="content.txt"%>

<%@includefile="content.inc"%>   

 

再重点介绍一下jsp:include动作

此语句为动态包含,如果被包含的页面是JSP,则先处理之后再将结果包含,而如果包含的是非JSP文件,则实施把文件内容包含进来,功能与@include指令类似。
此动作有两种形式的语法:

         语法一:

            <jsp:includepage=“页面”/>

          语法二:

              <jsp:includepage=“页面”>

                    <jsp:paramname=“参数名称”  value=“”/>

                    .......

              </jsp:include>

使用语法一完成和上面类似的功能

<h1>includedemo02.jsp</h1>
<jsp:include page="content.htm"/>
<jsp:include page="content.txt"/>
<jsp:include page="content.inc"/>

           此时的运行结果与之前完全一样,因为被包含的页面之中,并没有任何的动态页面,所以功能与静态包含类似。

      那么,如果此时被包含的页面是动态页面的话,除了可以包含之外,还可以传递参数。


使用语法二进行包含:

建立content.jsp文件,此文件可以接受参数

     <h2><%=request.getParameter(“ref1”)%></h2>

     <h2><%=request.getParameter(“ref2”)%></h2>

    以上的页面要接受被包含页面中传递的两个参数,当然

     建立includedemo03.jsp,同时向content.jsp文件中传递参数:

 <h1>includedemo03.jsp</h1>

<jsp:includepage="content.jsp">

  <jsp:param name="ref1" value="HELLO WORLD"/>

  <jsp:param name="ref2" value="www.mldn.cn"/>

</jsp:include>


也可以向包含页面中传递变量
范例:includedemo04.jsp

 <h1>includedemo04.jsp</h1>

<%!

  publicstatic final String str = "www.mldn.cn" ;

%>

<jsp:includepage="content.jsp">

  <jsp:param name="ref1" value="HELLO WORLD"/>

  <jsp:param name="ref2" value="<%=str%>"/>

</jsp:include>

两种包含的区别:

(1)静态包含

demo.jsp:<%@ page contentType="text/html;charset=GBK"%><%int i = 1000 ;%><h2>demo.jsp中的i的值为<%=i%></h2>
使用@include包含内容

<%@ page contentType="text/html;charset=GBK"%><h1>includedemo05.jsp</h1><%int i = 10 ;%><h2>includedemo05.jsp中的i的值为<%=i%></h2><%@include file="demo.jsp"%>

重复定了变量i,因为静态包含是将全部内容包含进来之后,再一起处理,属于先包含后处理。
(2)动态包含:
动态包含是先将各个页面分别处理,处理完之后再将内容包含进来。
范例:动态包含
<%@ page contentType="text/html;charset=GBK"%><h1>includedemo06.jsp</h1><%int i = 10 ;%><h2>includedemo06.jsp中的i的值为<%=i%></h2><jsp:include page="demo.jsp"/>
插入图片:
三:<jsp:forword>跳转动作
跳转动作,当一执行到此指令的时候,程序会无条件立刻跳转。此语句也属于标签指令形式,语法如下。
语法一:
<jsp:forward page=“页面"/>

语法二:
<jsp:forward page=“页面.jsp">
  <jsp:param name=“参数名称” value=“值"/>
  ......
</jsp:forward>
范例:跳转
forwarddemo01.jsp<%@ page contentType="text/html;charset=GBK"%><jsp:forward page="forwarddemo02.jsp"/>forwarddemo02.jsp:<%@ page contentType="text/html;charset=GBK"%><h2>跳转之后的页面!</h2>
从页面的显示效果来看,页面已经完成了跳转,但是地址没有变化,因为此跳转属于服务器跳转,只要是服务器跳转,则地址栏永远没有变化。
当然,也可以向跳转页面中传递参数,同样使用request.getParameter()进行接收。
范例:
forwarddemo03.jsp:<%@ page contentType="text/html;charset=GBK"%><jsp:forward page="forwarddemo04.jsp"><jsp:param name="ref1" value="HELLO WORLD"/><jsp:param name="ref2" value="www.mldn.cn"/></jsp:forward>



forwarddemo04.jsp:<%@ page contentType="text/html;charset=GBK"%><h2>跳转之后的页面!</h2><h2><%=request.getParameter("ref1")%></h2><h2><%=request.getParameter("ref2")%></h2>



不得不说老师这课件做的太详细啊,我就顺着老师做的课件复习一下吧!

原创粉丝点击