您的位置:首页 > 运维架构 > Tomcat

tomcat javaweb开发基础(三)

2013-05-11 15:59 387 查看
一: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>




不得不说老师这课件做的太详细啊,我就顺着老师做的课件复习一下吧!
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: