摘要: 在前面已介绍了include动作标志和forward跳转解决乱码的方法。在此介绍表单乱码问题,与前面的方法不同了。//在表单处理页面写useBean。留言板示例:有两个bean类,分别为:Word.java和myTools.java在word.jsp页面代码:留言者:留言标题:留言内容:doword.jsp代码:show.jsp代码:留言者:留言标题:留言内容:总结:useBean的scope范围只有都为request时才能在show页面中取到表单中的值。标志被执行时首先会在scope指定的范围内查找指定的bean实例。默认值为page,若该实例已存在,则引用这个实例。在上面留言板的例子里sh 阅读全文
posted @ 2013-12-30 11:42 有志青年期待逆袭 阅读(513) 评论(0) 推荐(0) 编辑
摘要: 服务器端的跳转地址栏信息不会改变。是服务器端跳转的有forward1.测试forward跳转:地址栏信息不回改变。运行的页面名为ceshi_forward,执行的跳转语句为 这句话之后的所有代码都没有执行。在浏览器中查看源代码时显示的代码全部都是frame1.jsp页面的代码。字符集设置一个为gbk,一个为gb2312,跳转没有问题,但要注意不能设置除此以外的字符集。传值问题在forward动作之间写入就可以进行传值了。解决乱码问题同样是在传值的页面(ceshi_forward.jsp)写入request.setCharacterEncoding("gbk");在接收值的页 阅读全文
posted @ 2013-12-29 21:40 有志青年期待逆袭 阅读(326) 评论(0) 推荐(0) 编辑
摘要: contentType就是设置页面相应的MIME类型。在jsp文件第一句话是 MIME(Multipurpose Internet Mail Extensions) 是描述消息内容类型的因特网标准。不同文件的后缀名,在WEB服务器中有着不同的MIME类型映射关系,如果类型不明确,自然会报错。 MIME 类型可以设置打开文件应用程序的类型!同时指定某个拓展名文件将使用何种应用程序打开的一个说明!拓展名文件被访问,浏览器会自动指定应用程序打开。例如: 此MIME类型是使用word文档来进行页面显示的,执行时会显示提示框,打开还是保存。保存的文件名为jsp页面的名字。若想保存时有指定的名字,... 阅读全文
posted @ 2013-12-29 20:52 有志青年期待逆袭 阅读(1340) 评论(0) 推荐(0) 编辑
摘要: 前触发器create view v1as select student.sno,ssex,cno,gradefrom student,scwhere student.sno=sc.sno=====================delete from v1 where ssex='W' --不能删除,因为:视图或函数 'v1' 不可更新,因为修改会影响多个基表。这时就该前触发器上场了create trigger mytri2on v1instead of deleteasdelete from sc where sno in(select sno from de 阅读全文
posted @ 2013-11-30 21:36 有志青年期待逆袭 阅读(145) 评论(0) 推荐(0) 编辑
摘要: 一、概念触发器基于一个表或视图创建,但可以操作多个表或视图。一般的存储过程通过存储过程名称被直接调用,而触发器主要是通过事件进行触发而被执行。触发器的触发操作是insert、delete、update,执行中涉及到两个迁移表(虚表、临时表,触发器执行完自动销毁):inserted,deleted。触发器与存储过程的区别:无论是哪类存储过程(自动运行存储过程除外)都需要调用才可执行,而触发器不需要调用,达到触发条件即可触发。触发器分前触发器和后触发器,后触发器执行过程:当执行到引发触发器执行的语句临界点时,继续执行语句,然后再执行触发器内的语句。应用较多一个能很好的说明上图的例子:题的要求为如果 阅读全文
posted @ 2013-11-30 17:51 有志青年期待逆袭 阅读(185) 评论(0) 推荐(0) 编辑
摘要: 存储过程(Stored Procedure)是一组为了完成特定功能的SQL语句集,经编译后存储在数据库中。存储过程可包含程序流、逻辑以及对数据库的查询。 它们可以接受参数、输出参数、返回单个或多个结果集以及返回值。创建存储过程:create procedure mysp1@Startgrade numeric(4,2)(=10 如果这样写,它就是默认值),@Endgrade numeric(4,2), --这两个为输入参数,调用时需为其指定值,记住不用想下面的输出参数一样写output,即后面没有input关键字--来指定它是输入参数@maxgrade numeric(4,2) outpu.. 阅读全文
posted @ 2013-11-30 17:41 有志青年期待逆袭 阅读(212) 评论(0) 推荐(0) 编辑
摘要: 1、声明游标declare cursor_name CURSOR for select_statement(注意红色字体部分的顺序)2\打开游标open cursor_name打开游标后,就可以使用@@cursor_rows全局变量检索游标中的行数。3、使用游标FETCHnextFROM cursor_name INTO @variable_name4、关闭游标close cursor_name5、释放游标DEALLOCATE cursor_name一般都会使用while循环,记得在while循环中还要使用一次fetch next from cursor_name into @variable 阅读全文
posted @ 2013-11-30 17:26 有志青年期待逆袭 阅读(235) 评论(0) 推荐(0) 编辑
摘要: 用户自定义函数分标量函数、表值函数、内嵌表值函数一、标量函数CREATE FUNCTION 函数名([形式参数名称 [as] 数据类型[=default] [,…n] ]) --形参可有多个RETURNS 返回数据类型[with encryption] [AS]BEGIN 函数内容 --可没有函数体 RETURN 表达式 --必须要有返回值语句END 例如:create function myfun1(@dept char(10),@menshu int)returns intbegindeclare @renshu intselect @renshu=count(sc.sno) from s 阅读全文
posted @ 2013-11-30 17:17 有志青年期待逆袭 阅读(251) 评论(0) 推荐(0) 编辑
摘要: 一、数据类型转换函数* CAST( expression AS data_type)* CONVERT( data_type ,expression)在用print输出时注意要将数据类型转换为字符型。二、CASE表达式*CASE 测试表达式 WHEN 测试值1 THEN 结果表达式 WHEN 测试值2 THEN 结果表达式2...[ELSE 结果表达式n]END*CASE WHEN 逻辑表达式1 THEN 结果表达式1 WHEN 逻辑表达式2 THEN 结果表达式2 … [ELSE 结果表达式n]END三、WAITFOR { DELAY 'time' | TIME 't 阅读全文
posted @ 2013-11-30 17:07 有志青年期待逆袭 阅读(128) 评论(0) 推荐(0) 编辑
摘要: 在复习中缕清了变量那部分的思路,分三大步:一、定义变量 declare @variable_name二、变量赋值,两种方式select和set,最大的区别,set只能为一个变量赋值,select可以多个 例如:set @variable_name=value或 select @variable_name1=value1,@variable_name2=value2....,@variable_namen=value n三、查看变量值 也是两种方式 select 和print,区别①select结果显示在查询分析器的网格窗口,是一个临时表,可添加显示列的别名如SELECT @local_var. 阅读全文
posted @ 2013-11-21 18:02 有志青年期待逆袭 阅读(230) 评论(0) 推荐(0) 编辑