(一) Web基础知识
静态web页:由html标记构造的web页(基于文件构造),其文件拓展名为a.html
动态web页:含服务器控制程序的web
早期CGI:公共网关接口技术
脚本编程:PHP、ASP、JSP(基于java构造)
基于JSP构造web应用:
xyz<%动态编码%>
(二) Jsp基础
Jsp运行机制
JSP的优越性
1.利用java编程优势降低JSP脚本复杂度
2.跨平台
3.有较高的执行性能
4.有良好的逻辑体系结构
JSP开发环境配置:
1.JDKbao (JAVA)
2.Tomcat服务器
3.Netbeans编码平台
(三) JSP-WEB动态运用
(四) JSP体系结构
1.简单问题:JSP页面程序(M+V+C)
M:模型,基于javaBean构建
V:视图,基于jsp构建
C:控制,基于servlet构建
2.复杂问题:JSP+java
Jsp:页面
java:业务计算(javaBean:用来构建主逻辑结构)+逻辑控制(servlet:用来实现逻辑结构)
(五) 脚本语言
Html简介:
Html是一种用来制作超文本文档的简单标记语言,html的扩展名为.html或.htm.
html格式:
HTML基本标签
标签是告诉浏览器这个文件是HTML文档。用于html文档的最前面,用来标志HTML文档的开始;放在HTML的最后边用来标识HTML的结束。 标签是文档的头部信息,说明一些文档的基本情况,如文档标题等,其内容不会显示在网页上。在此标签间课使用 标签HTML中的主体部分,可包含标签可以定义不同显示效果的标题,n表示标题的级数,取值范围为1-6,n越小,标题字号越大。可以使用属性align,用于设置标题文字的对齐方式,对齐方式有三种,即left、right、center。未设置该属性时默认为left
标签用来创建一个新的段落。标签有多种属性,如align属性控制齐内容对其方式,clear属性控制图文混排方式等,align的取值与中align取值一致。
标签是预定格式标签,即在浏览网页时仍能保留在编辑工具中已经排好的形式显示内容,使用该标签时,默认字体为10磅
:强制文本换行,但不会在行与行之间留下空行。
标签对通过设置属性来控制文字的字体、大小、样式和颜色。face用于设置字体样式;
Size设置字体大小,默认字体为3;color设置字体颜色
注释标签
文件分节标记 列表
1.有序表
多媒体与超链接
1.插入图像:
2.插入视频
也是使用标签,常用的属性有(1)dynsrc:指定视频的源文件路径;(2)loop指定视频循环播放次数。值为-1或infinite时表示无限次循环播放;(3)loopdelay:指定两次播放的时间间隔;(4)start:指定何时开始播放视频。默认值为fileopen,即在连接到含该标签的页面时开始播放,mouseover把鼠标移动播放区域之上时才开始播放;(5)controls:指定视频窗口下附加播放控制条。
3.插入背景音乐:
使用标签,主要属性有(1)balance:指定音乐的左右均衡。(2)delay:指定播放延时。(3)loop:指定音乐循环播放的次数。(4)src:指定音乐源文件的路径。(5)volume:指定音量
4.插入超链接
使用标签,主要属性为(1)href:指定链接地址,若是链接到网站外部,笔试为URL地址;(2)target指定现实连接目标的窗口,其值可取_blank:浏览器总在一个新打开未命名的的窗口中载入目标文档。_parent目标文档载入当前窗口的父窗口中。_self默认值,目标文档载入并显示在当前窗口中。_top清除当前窗口所有被包含的框架并将目标文档载入整个浏览器窗口。
表格
…….. ……..表格第一列标题 | 表格第二列标题 |
---|---|
表格第一行的第一个单元格内容 | 表格第一行的第二个单元格内容 |
表格第二行的第一个单元格内容 | 表格第二行的第二个单元格内容 |
常用属性: (1)colspan:设置单元格所占列数,默认值为1。 (2)rowspan:设置单元格所占行数,默认值为1。 (3)background:设置单元格背景图像 (4)width:设置单元格宽度。 |
框架
表单设计:用于实现人机对话
输入框
Type的取值可为”submit”提交按钮 “reset” 重置按钮“passward”密码 “radio”单选等。
选择框:有多少个选项就有多少个action
文本域
…….
CSS编程技术
1.用途:设置页面统一风格
2.样式设定方式:
(1)标签设定:h1,h2{text-align:center;color:bule}
(2)ID设定:#s1{font-family:宋体;font-size:bopt}
…….
3.样式引用:
(1)嵌入引用:
(2)内联引用:添加在html的头信息标记符
(3)外联式
Javascript编程
1.基本格式
2.事件驱动
格式:<标签……标签=”事件处理程序”[事件=”事件处理程序”……]>
例如:
(六) JSP编码
定义:服务器编码,在web服务器通过JDK包提供的运行环境,使用<%… %>标记
服务器代码执行机制:
变量、方法的声明
1.声明格式:<%! int x=0,y=1,z=2;%>或<% int x,int y>
2.注意点:
(1)声明以“<%!”或者“<%”开头,以“%>”结尾。
(2)变量声明必须以“;”结尾
(3)变量和方法的命名规则与java中的变量和方法的命名规则相同
(4)可以直接使用在<%@page%>中包含进来的已经声明的变量和方法,不需要对其重新进行声明
(5)一个声明仅在一个页面中有效。如果想多个页面都能使用到一些相同的声明,最好把他们写成一个单独的文件,然后用<%@include%>指令或jsp:include动作包含进来
表达式
1.格式:<%=expression>
2.表达式常用在向页面输出内容、生成动态链接地址、动态指定form表单处理页面三种情况
3.注意点:在“<%”与“=”直接不要有空格,表达式中没有分号
脚本
1.脚本语法格式:<%scriptlet % >
2.脚本实例:
<%@page contentType=”text/html” pageEncoding=”UTF-8”%>
欢迎登陆,您的权限是管理员! |
欢迎登陆,您的权限是普通用户! |
2.include指令:预处理指令,静态包含,语法格式:
<%@include file=”文件名”%>
File属性用于指定插入的包含炉温的相对路径。
3.taglib指令:用来核定页面中使用的标签库以及自定义标签的前缀,语法格式:
<%taglib uri=”tagLibrryURI” prefix=”tagPrefix”%>
uri属性用于指定标记库的存放位置
prefix属性用于指定标记库中所有动作元素名中使用的前缀,无默认值。
JSP动作
1.jsp:param动作:
name属性用于指定参数名称,不可以接受动态值
value属性用于指定参数值,可以接受动态值
2.jsp:include动作:
page属性指定所包含资源的相对路径,可以接受动态值。
flush属性指定在包含目标资源之前是否刷新输出缓冲区,默认值为false,不可接受动态值。
include指令与include动作的区别:
jsp:include动作和include指令之间的根本不同在于它们被调用的时间。jsp:include动作在页面请求期间被激活,而include指令在页面转换期间被激活。两者之间的差异决定这它们在使用上的区别。使用include指令的页面要比使用jsp:include动作的页面难于维护。jsp:include动作下哪个队与include指令在维护上有着明显优势,而include指令任然能够得以存在,自然在其他方面有特殊优势,这个优势就是include指令的功能更更强大,执行速度也少块。include指令允许所包含的文件中含有影响主页面的jsp代码,如响应内容的设置和属性方法的定义。
3.jsp:useBean动作
id属性指定该JavaBean的实例名称,不可接受动态值。
scope属性指定Bean的作用域,即对象生存期。
class属性指定bean的类路径和类名,不可接受动态值,这个class不能是抽象的。
type属性指定引用该对象的变量的类型,即有关Javabean的基类或接口的名称。
beanName属性用于指定Bean的名字,可以接受动态值。
4.jsp:setProperty动作:设置属性
name属性表示要设置的属性是哪个Bean实例的,不可接受动态值。
property属性表示要设置哪个属性
param属性指定用哪个请求参数作为bean实例属性的值
value属性指定bean实例属性的值
5.jsp:getProperty动作:得到值
name属性指定要获取属性值的bean名称,不能接受动态值。
property属性指定要获取的bean实例属性名,不能接受动态值
6.jsp:forward动作:跳转到另一个页面
page属性指定资源相对路径,可接受动态值
(七) JSP内置对象
1.request对象
request对象主要用于处理客户端强求传送的数据。
request的常用方法:
(1)getParameter(String name):用于获取表单提交的信息,以字符串形式返回客户端传来的某一个请求参数的值,该参数由name指定。
(2)getParameterNames():用于获得客户端的所有参数值,其结果是一个Enumeration实例。
(3)getCharacterEncoding():用于返回客户端请求中的字符编码方式。
(4)getContentLength():用于以字节为单位返回客户端请求的大小。如果无法得到该请求的大小则返回-1.
(5)getHeader(String name):用于获得HTTP定义的文件头信息中指定名字的值。
(6)getHeaderNames():用于返回HTTP所有文件头信息。
(7)getMethod():用于获取客户端向服务器端传送数据的方法。
(8)getProtocol():用于获取客户端向服务器端传送数据所使用的协议名称。
(9)getRequestURL():用于获取客户端的URL地址。
(10)getRemoteAddr():用于获取客户端的IP地址。
(11)getRemoteHost():用于获取客户机主机地址。
(12)getServerName():用于获取服务器的主机名字。
(13)getServerPort():用于获取服务器的端口号。
(14)removeAttribute(String name):用于删除请求中的一个属性。
(15)setAttribute(String name,Object obj):用于为request对象设置属性值。
(16)getAttribute(String name):用于返回name指定的request对象的属性值,若不存在则返回null。
(17)getAttributeNames():用于返回request对象保持的所有属性值,其结果集是一个Enumeration实例
2.response对象
response对象用于对向客户端发送数据,用户可以使用该对象将服务器的数据以HTML格式发送到客户端。
response常用方法:
(1)addCookie(Cookie cook):用于给用户添加一个Cookie对象,保存客户端的相关信息。
(2)addHeader(String name,String value):用于添加带有指定名称和字符串的http文件头信息,该header信息将传送到客户端。如果该信息不存在就添加,存在就覆盖。
(3)flushBuffer():用于强制把当前缓冲区所有内容发送到客户端。
(4)getBufferSize():用于获取缓冲区的实际大小,如果没使用缓冲区则返回0.
(5)getCharacterEncoding():用于获取响应的字符编码方式。
(6)sendError():用于向客户端发送错误信息,如404指网页找不到错误。
(7)sendRedirect():用于重新定向客户端的请求。
(8)setCharacterEncoding():用于设置响应内容的字符编码方式。
(9)setContentLength():用于设置响应内容的长度。
(10)setHeader():用于设置指定名称和字符串的http文件头信息。
3.session对象
session对象处理客户端与服务器的会话,从客户端连到服务器开始,直到客户端与服务器断开连接为止。
session对象常用方法:
(1)getAttribute(String name):用于获取与指定名字相连系的属性,如果属性不存在则返回null。
(2)getAttributeNames():用于返回session对象中存储的每一个属性对象。
(3)getCreateTime():用于返回session对象被创建的时间。
(4)getId():用于返回session对象在服务器端的编号。
(5)getLastAccessedTime():用于返回和当前session对象相关的客户端最后发送请求的时间。
(6)getMaxInactiveInterval():用于返回session对象的生存时间。
(7)setAttribute(String name,java.lang.Object value):用于设置指定名字的属性值,并将它存在session对象中。
(8)setMaxInactiveInterval(int interval):用于设置session的有效时间。
(9)removeAttribute(String name):用于删除指定的属性。
(10)isNew():用于判断目前session是否为新的session,若是则返回true,否则返回false。
4.out对象
out对象主要用于向客户端输出各种数据,同时管理应用服务器上的输出缓冲区。
out对象的常用方法:
(1)print()/println():用于输出数据。
(2)newLine():永固输出一个换行符,实现换行功能。
(3)flush():用于输出缓冲区里的数据。该方法先把缓冲区中的数据输出到客户端,而后清楚缓冲区中的数据。
(4)clearBuffer():先清除缓冲区里的数据,然后把数据输出到客户端。
(5)clear():用于清除缓冲区里的数据,但是不会把缓冲区中的数据输出到客户端。
(6)getBufferSize():用于获取缓冲区的空间大小。
(7)getRemaining():用于获取缓冲区剩余空间大小。
(8)isAutoFlush():用于判断是否自动刷新缓冲区。
(9)close():用于关闭输出流。
5.pageContext对象
pageContext对象提供了对jsp页面所有的对象及命名空间的访问,如访问out对象,request对象、response对象、session对象、application对象。
6.exception对象(异常对象)
exception对象用来处理jsp文件的异常,当一个页面在运行过程中发生了异常,就产生该对象。exception对象可以通过配合page指令一起使用。
exception常用方法:
(1)getMessage():用于返回描述异常错误的提示信息。
(2)getlocalizedMessage():用于获取本地化错误信息。
(3)printStackTrace():用于输出异常对象及其堆栈跟踪信息。
(4)toString():返回关于异常的简短描述信息。
7.application对象
应用程序对象,公共对象,全局对象,共享对象。application对象最大的特点是没有生命周期,即不论客户端的浏览器是否被关闭,application对象任然存在于服务器上。
application对象常用方法:
(1)getAttribute(String name):用于返回application对象的指定属性值。
(2)getAttributeNames():用于以Enumeration类型返回application对象属性的所有值。
(3)getServerInfo():用于返回Server编译器的版本信息。
(4)setAttribute(String name,Object obj):用于设定application对象的指定属性及其属性值。
(5)removeAttribute(String name):用于删除application对象的指定属性及其属性值。
(八) 访问数据库
JSP程序通过JDBC访问数据库流程:
JDBC→ODBCd 访问驱动:
JDBC接口
1.statement接口
语法格式:
Statement stmt= con.createStatement(type,concurrency);
type属性用来设置结果集的类型,Concurrency属性用来设置结果集更新数据库的方式。
type有三种属性:
(1)ResultSet.TYPEFORWORD_ONLY:结果集的记录指针只能向下滚动;
(2)ResultSet.TYPE_SCROLL_INSENSITIVE:结果集的记录指针可以上下滚动,数据库变化时,当前结果集不变;
(3)ResultSet.TYPE_SCROLL_SENSITIVE(结果集的记录指针可以上下滚动,数据库发生变化时,结果集随之变动)。
Concurrency属性有两种取值:
(1)Result.CONCUR_REND-ONLY:不能用结果集更新数据库中的表。
(2)Result.CONCUR_UPDATETABLE:可以更新数据库。
2.PreparedStatement接口
作用:将sql语句传给数据库作预编译处理,即在执行的sql语句中包含一个或多个in参数。
例:PreparedStatement pstmt=connection.preparedStatement(“select * from student where 年龄>=? and 性别=?”);
设置in参数语法格式:
pstmt.setXXX(position,value);XXX为带设置数据的类型,position为in参数在sql语句中的位置,value指定该参数要被设置的值。
例:pstmt.setInt(1,20)。
3.ResultSet接口:
ResultSet对象滚动查询的方法:
(1)next():顺序查询数据。
(2)previous():将记录指针向上移动,当移动到结果集第一行之前时返回false。
(3)beforeFirst():将记录指针移动到结果集的第一行之前。
(4)afterLase():将记录指针移动到结果集的最后一行之后。
(5)first():将记录指针移动到结果集的第一行。
(6)last():将记录指针移动到结果集的最后一行。
(7)isAfterLast():判断记录指针是否到达记录集的最后一行之后。
(8)isFirst():判断记录指针是否到达记录集的第一行。
(9)isLast():判断记录指针是否到达记录集的最后一行。
(10)getRow():返回当前记录指针所指向的行号。
(11)absolute(int row):将记录指针移动到指定的row行。
(12)close():关闭对象,并释放它所占的资源。
更新数据库
1.添加操作
insert into student values(‘0001’,’david’,’male’);
2.修改操作
update student set 年龄=年龄+1;
3.删除操作
delete from stuInfo where 学号=’0001’;
加载驱动
Class.forName(“com.microsoft.sqlserver.jdbc.SQLServerDrive”);