第五章 Jsp简介
Jsp概念:
1:什么是Jsp
Jsp(Java Server Page)是一种Java服务器端技术。一个Jsp页面包括三个方面的内容
Html,JavaScript,Jsp程序片断
2:如何写Jsp脚本
把Jsp脚本写在<% %>里面
把Js脚本写在<script>代码</script>里面
3:可见Jsp实际上就是在Html语言中嵌入Jsp脚本
4:编写第一个Jsp应用程序
Jsp的执行过程:
浏览器--->请求-------->Web服务器---->找到Jsp页面---->编译
|
|
浏览器<-------响应<------Serverlet
从该执行过程不难看出Jsp在最后实际上要变成Serverlet之后才能发给客户端
Jsp与Servelet的区别:
1)Jsp是在Serverlet的基础上发展起来的
2)Serverlet一般用于处理没有界面的业务逻辑,如果处理有界面的程序,就显示比较笨拙
Serverlet用out.println一句一句的输出Html标记(界面),当整个网页非常多且复杂的时候
就会有很多的out.println来输出html标记
3)Jsp很好的解决了这个问题,对于Html标记可以直接书写,只有需要写程序代码时才以
<% %>的方式加入
4)Jsp把界面部分与代码部分分离,这样可以在开发网站时实现分工。美工只管界面部分,而
程序员只管代码部分
Jsp的语法:
A)Jsp的输出:out.println用来输出
1)输出字符串:out.println("字符串")
2)输出Java脚本:out.println("<script>alert('我是真的爱你');</script>");
3)输出Html标记:out.println("<a href=http://www.sina.com>新浪网</a>");
链接到QQ对话
ut.println("<a target=blank href=http://wpa.qq.com/msgrd?v=1&uin=16663755&site=walmart&menu=yes>留言</a>");
B)表达式。<%=Java表达式%>。表达式后面不要加分号
例如:<%=Math.max(100,90)%>,<%=3+4*5%>等
C)Scriptlet:
Scriptlet就是在<%.....%>里面嵌入Java代码。它在形式上与表达式的区别就是在
<%...%>里面没有"=",而且中间是一段Java代码,不是表达式,每条语句要以分号
结尾。举例说明
D)声明:<% ! Java变量,方法 %>
1):声明变量: <%! int a=3,b=4 %>
2)声明类:
<%!
public class stud
{
public String GetId()
{
return "W1";
}
}
%>
3)声明函数:
<%!
public int sum(int a,int b)
{
return a+b;
}
%>
说明:
1)声明变量即可以在<%! %>只能够声明,不能实现
比如:<%! int a=3,b=4,c; c=a+b;%>错误<%! int a=3,b=4,int c=a+b;%>正确
2)声明变量既可以<%! %>中声明,也可以在<%中声明%>。
<%! %>中声明的变量:servlet(Jsp最终要转换成Serverlet)的实例变量。
根据Servlet的原理,所以的客户端只共享一个Serlvet的实例,所以在此处定义的
变量可以其它的页面来共享,也就是具备有继承性
<% %>中声明的变量:是局部变量,只能够给本页面使用,不具备继承性
<%!
int i=0; //实例变量,有继承性
%>
<%
i++;
out.println(i);
%>
与的区别
<%
int i=0; //局部变量,无继承性
i++;
out.println(i);
%>
3)但是声明函数与类只能够在<%! %>中声明,而不能在<% %>
4)一般声明变量都在<% %>中声明,而声明函数与类都在<%!中声明%>
5)为了代码的可读性一般都把类用一个单独的Java文件来保存,而不会在一个
Jsp页面中去定义
E)Jsp指令:
1)Jsp指令控制对整个页面的处理。
2)Page指令:
1:导入Java包,与自定义的类
格式:<%@ page import="aspproject.Student,java.util.*"%>
说明:自定义的类一定要放在WEB-INF下面的classes下面,不过只要引用了一个类,
Jbulider会自动的创建一个classes文件夹,并放入相应的类
2:当本页面发生错误时,跳转到错误页面进行处理
格式:
源页面:<
%@page
errorPage="Error.jsp" isErrorPage="false" %>
错误页面:<%@ page isErrorPage="true" %>
说明:错误是当出现异常,但是没有捕获时,如果捕获了,则不会发生页面跳转
3)include指令:
1:该指令用于把一个Jsp页面包含到另外一个Jsp页面中
2:格式:<%@ include file="HeadPic.jsp" %>
说明:嵌入一个页面是为了重用这个页面,而不必在每一个页面上写一些相同的代码。
例如:在很多的Jsp页面中都要在顶部显示同样的图片,这时就不必在每个页面
都去包含这些图片,而是单独写一个文件来完成此任务,然后在其它的Jsp页面中
利用include包含即可
作业:
1)编写一个Java类,用来描述学生。包含学生的学号,姓名,性别。声明三个实例,并加到
一个ArraryList,并把结果显示在表格中
2)编写一个页面,让用户输入两个数和一个操作符,在另外一个页面显示计算的结果
3)做一个民意调查页面,来调查"在校大学生谈恋爱",好,不好,不好说三个选项
一个页面:显示界面用来让用户进行投票,另外一个页面显示投票的结果
jtds连接Sql server
4)使用Jsp实现用户登录
//**************************************************************************
Class.forName("net.sourceforge.jtds.jdbc.Driver");
Connection conn = DriverManager.getConnection("jdbc:jtds:sqlserver://chen:1433;DatabaseName=jsp", "sa", "");
java.sql.PreparedStatement ps = conn.prepareStatement(Sql);
java.sql.ResultSet rs = ps.executeQuery();
//******************************************************************************