1 认识JSP
1.1 基础知识
java server pages
动态网页技术
ASP:VB和JS作为脚本
JSP:Java
动态和静态页面分离
脱离硬件平台
编译后运行
基础:Java和HTML
1.2 JSP页面
JSP页面xxx.jsp
包括HTML标记和<% %>java程序,命名区分大小写
运行原理:第一次请求是,服务器上的jsp引擎首先将jsp页面文件转译成java文件,再编译成字节码文件。以后的请求都直接执行字节码文件——所以速度快。
1.3 环境配置
环境要素:JDK+Tomcat+eclipse(单纯的执行jsp程序,只要JDK和Tomcat即可,eclipse方便了程序开发调试)
JAVA_HOME,变量值:C:\jdk1.3
PATH,变量值:C:\jdk1.3\bin
CLASSPATH,变量值:C:\jdk1.3\jre\lib\rt.jar;
TOMCAT_HOME,变量值:D:\tomcat\Jakarta-tomcat-4.0
启动Tomcat 服务器了。执行Tomcat\Jakarta-Tomcat-4.0\bin 下的startup.bat,http://localhost:8080
用eclipse的话,新建web->Dynamic Web Project工程
HTML标签:http://www.w3school.com.cn/tags/tag_input.asp
2 jsp基础语法
2.1 变量和同步
在“<%!”和“%>”标记符号之间声明变量和方法,在整个JSP 页面内都有效,注意:JSP 引擎为每个客户启动一个线程,这些线程由JSP 引擎服务器来管理,这些线程共享JSP 页面的成员变量,因此任何一个用户对JSP 页面成员变量操作的结果,都会影响到其他用户。
多线程共享同一变量,这里就需要同步机制——当一个线程在访问的时候,其他线程等待:
<%!Integer number = new Integer(0);%>
<%
synchronized (number) {
int i = number.intValue();
i++;
number = new Integer(i);
}
%>
您是第<%=number.intValue()%>个访问本站的客户。
2.2 方法
在“<%!”和“%>”之间声明方法,该方法在整个JSP 页面有效,但是该方法内定义的变量只在该方法内有效。这些方法将在Java 程序片中被调用,当方法被调用时,方
法内定义的变量被分配内存,调用完毕即可释放所占的内存。
如果多个客户同时请求一个jsp页面,他们可能使用方法操作成员变量(共享的),这是需要将方法定义成synchronized。
<%! int number2=0;
synchronized void countPeople()
{
number2++;
}
%>
<% countPeople(); // 在程序片中调用方法。
%>
您是第<%=number2%>个访问本站的客户。
2.3 类和对象
可以在“<%!”和“%>”之间声明一个类,该类在JSP 页面内有效,即在JSP 页面的Java 程序片部分可以使用该类创建对象。
<%!public class Circle {
double r;
Circle(double r) {
this.r = r;
}
}%>
<%
String str = request.getParameter("cat");
double r;
if (str != null) {
r = Double.valueOf(str).doubleValue();
} else {
r = 1;
}
Circle circle = new Circle(r); // 创建对象。
%>
<P>
圆的面积是: <BR>
<%=circle.calcmj()%>
2.4 从对话框取值
<INPUT type="text" name="cat" value="1">
<%
String str = request.getParameter("cat");
%>
2.5 注释
HTML
<!-- -->
JSP
<%-- --%>
2.6 jsp静态调用jsp
<%@ include file="Computer.jsp"%>
3 JSP通信
其中<Form>是表单标签,method 取值get 或post。Get 方法和post 方法的主要区别是:使用get 方法提交的信息会在提交的过程中显示在浏览器的地址栏中,而post 方法提交的信息不会显示在地址栏中。提交手段包括:通过文本框、列表、文本区等,例如:
<FORM action="tom.jsp" method= “post” >
<INPUT type="text" name="boy" value= “ok” >
<INPUT TYPE="submit" value=" 送出" name= “submit”>
</FORM>
该表单使用post方法向页面tom.jsp 提交信息,提交信息的手段是:在文本框输入信息,其中默认信息是“ok”;然后点击“送出”按钮向服务器的JSP 页面tom.jsp 提交信息。
<FORM action="test_class_get_post.jsp" method=post name=form>表示给页面本身使用
request 对象可以使用getParameter(String s) 方法获取该表单通过text 提交的信息,
比如:request.getParameter(“boy”);
汉字处理:如果表单接收汉字则需要处理,否则显示乱码
String str=request.getParameter("girl");
byte b[]=str.getBytes( “ISO-8859-1”);
str=new String(b);
3.1 表单
<FORM method= get| post action= ”提交信息的目的地页面” name= ”表单的名字”>
数据提交手段部分
</FORM>
一个表单的数据提交手段部分经常包括如下的标记符号:
<INPUT …..>
<input type= “text” name= “me” value= “hi” size= “12 ” algin= “left” maxlength= “30”>
<input type= “radio” name= “rad” value= “red” algin= “top” checked=“java” >
<input type= “checkbox” name= “ch” value= “pink” algin= “top” checked=“java” >
<input type= “passwordt” name= “me” size= “12 ” maxlength= “30”>
<input type= “submit ” name= “me” value= “ok” size= “12 ” >
<input type= “reset” >
<Select … ></Select>
<Select name="shulie" >
<Option value="cat"> 你选了小猫
<Option value="dog"> 你选了小狗
<Option value="600">n=600
</Select>
<Option …..> </Option>
<TextArea ….> </TextArea>
4 javabean
javabean是一个封装好的java组件,即一些功能固定的java类;jsp程序调用bean(java类编译生成的class文件)来实现这些功能。
beans主要负责jsp的动态部分,而jsp页面主要负责静态部分。
5 学习jsp的内置对象的使用
6 servlet
当一个客户请求一个JSP 页面时,JSP 引擎根据JSP页面生成一个Java 文件,即一个servlet。