上篇我们介绍了什么是jsp以及jsp的本质和优点。本篇介绍jsp程序的结构。
jsp的程序结构分为两大部分,一部分是静态的html代码,一部分是动态的java代码和jsp自身的标签和指令;当jsp第一次被请求的时候,服务器的jsp会把jsp页面编译成为java代码,根据动态java代码执行结果,生成相应的html返回给浏览器,这样把这个页面展示给我们看。
例如jsp页面test2.jsp页面:
<%@ page language="java" contentType="text/html; charset=GB18030"
pageEncoding="GB18030"%>
<%
int first = 0;
int second = 0;
//判断第一数字输入是否为空.
if(request.getParameter("first")!=null&&request.getParameter("first").length()>0)
{
//不为空则赋值给我们的变量first.
//把字符串类型强制转换成为数值整型类型.
first = Integer.parseInt(request.getParameter("first"));
}
if(request.getParameter("second")!=null&&request.getParameter("second").length()>0)
{
//不为空则赋值给变量second.
//把字符串类型强制转换为数值整型类型.
second = Integer.parseInt(request.getParameter("second"));
}
%>
<!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=GB18030">
<title>jsp示例算术求和示例</title>
<script type="text/javascript">
//在js中做一些输入要求的验证.并给出提示.
function check()
{
//输入是否为空.
if(this.document.forms[0].first.value.length==0)
{
alert("请输入第一个整数!");
}else if(this.document.forms[0].second.value.length==0)
{
alert("请输入第二个整数!");
return;
}
//输入类型是否正确.
if(isNaN(this.document.forms[0].first.value)||isNaN(this.document.forms[0].second.value))
{
alert("输入的必须为整型数据!");
return;
}
else
{
//提交我们的表单.
this.document.forms[0].submit();
}
}
</script>
</head>
<body>
<form action="test2.jsp" method="post">
<font size="2">
jsp两个整数的和:<br>
请输入第一个数:<input type="text" name="first"/><br>
请输入第二个数:<input type="text" name="second"/><br>
这两个数的和为:<%=(first+second) %><br>
<input type="button" value="求和" οnclick="check()"/><br>
</font>
</form>
</body>
</html>
从这个小例子中可以看出:
* 01行是jsp的一个page指令,是jsp特有的指令。
*03~20行是我们典型的jav段,如果在jsp中要用到jav段,我们必须用<%%>括起来,嵌入到我们的jsp页面中
*26~56行是表单验证的javascript代码,与jsp无关,属于客户端的语言。
*64行用到了jsp的输出标签,<%=%> 表达式的值,其他的部分为静态部分了。
*我们设置的提交表单是手动提交表单,通过触发js函数,check()在判断的时候同时提交表单。
*request.getParameter() 是取得页面参数名字的值。request是jsp的内置对象,在接下来的文章会详细讲解。