tomcat javaweb开发基础(三)

一: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>



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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值