您好,欢迎访问三七文档
课程简介JSP技术是JavaWeb技术的基础。它是基于JavaServlet以及Java平台的Web开发技术,具有“一次编写,各处运行”等,优点牢固掌握JSP技术,是架构高性能Web应用的基础。本课程旨在使学生能够较全面系统地了解目前基于WEB开发的过程,重点掌握JSP动态网站架构与应用开发技术。教学重点难点教学重点:Jsp内置对象的应用及四种属性范围、JavaBean、Servlet、JDBC教学难点:网站综合设计JSP基础知识JSP是在java上的一种运用,但有其自己的扩充语法,java中的一切语句可以在JSP中使用。在JSP中注释有2大类:显式注释:HTML代码中注释!----隐式注释:Java中代码注释:///*..*/JSP自己的注释:%----%Scriptlet在JSP中Scriptlet形式有三种:%%%!%%=%第一种Scriptlet%%在%%中可以定义变量,编写语句。编写数字累加的操作,从1-100累加%intsum=0;for(inti=0;i=100;i++){sum+=i;}out.print(h1sum=+sum+/h1);%第二种Scriptlet%!%在%!%中定义全局常量,编写方法,编写类,但一般不会再JSP中定义一个类,绝对不能直接在里面编写任何的语句。%!publicstaticfinalStringxxx=hello;publicstaticfinalStringsss=world;%%out.print(h1xxx=+xxx+/h1);out.print(h1sss=+sss+/h1);%%!publicstaticintadd(inta,intb){returna+b;}%%out.println(add(10,20));%第三种Scriptlet%=%%=%称为表达式输出,可以直接使用此形式的Script输出一个变量或一个具体的内容。%!publicstaticintadd(inta,intb){returna+b;PublicStringname=yangyi;}h1%=add(10,20)%/h1h1%=name%/h1哪种输出方式更好?打印100*100的表格:%out.println(table);for(inti=0;i100;i++){out.println(tr);for(intj=0;j100;j++){out.print(td+(i*j)+/td);}out.println(/tr);}out.println(/table);%tableborder=1%for(inti=0;i100;i++){%tr%for(intj=0;j100;j++){%td%=i*j%/td%}%/tr%}%/tablePage指令现在建立一个JSP网页,要求显示中文h1中国,您好!/h1%@pagecontentType=test/html;charset=GBK%h1中国,你好!/h1Import指令Impor指令是page中唯一允许多次导入的指令%@pagecontentType=test/html;charset=GBK%%@pageimport=java.sql.*%%@pageimport=java.io.*%Include指令两种表现形式:@include指令jsp:include指令@include是静态包含,只将被包含的内容显示出来,可以包含任何文件@include指令建立3个文件:test.htmlh1test.html/h1test.txth1test.txt/h1test.aaah1test.aaa/h1包含以上3个内容:h1includedemo.jsp/h1%@includefile=test.html%%@includefile=test.txt%%@includefile=test.aaa%jsp:include指令此语句为动态包含,如果被包含的页面时JSP,则先处理之后再将结果包含,而如果包含的是非*.jsp文件,则只是把文件内容静态包含起来,功能与@include类似语法一:jsp:includepage=页面/语法二:jsp:includepage=页面jsp:paramname=参数名称value=值/………/jsp:include使用语法一完成之前类似的功能h1includedemo.jsp/h1jsp:includepage=test.html/jsp:includepage=test.txt/jsp:includepage=test.aaa/运行结果与以前一样,因为都是静态页面建立test1.jsp文件,此文件可以接受参数h2%=request.getParameter(ref1)%/h2h2%=request.getParameter(ref2)%/h2建立test11.jsp文件,此文件向test1.jsp中传递参数h1includetest1.jsp/h1jsp:includepage=test1.jspjsp:paramname=ref1value=HELLOWORLD/jsp:paramname=ref2value=nihao//jsp:include建立test2.jsp:%inti=1000;%h2test2.jsp中的i值为%=i%/h2使用两种包含语句包含如下代码:使用@include指令%inti=10;%h2test22.jsp中的i值为%=i%/h2%@includefile=test2.jsp%使用jsp:include指令%inti=10;%h2test23.jsp中的i值为%=i%/h2jsp:includepage=test2.jsp/forward语法一:jsp:forwardpage=页面/语法二:jsp:forwardpage=页面jsp:paramname=参数名称value=值/…………/jsp:forward语法一:建立forward1.jspjsp:forwardpage=forward2.jsp/建立forward2.jsp%@pagecontentType=text/html;charset=GBK%h1跳转后的页面/h1从页面显示效果来看,页面已经完成了跳转,但是地址没有变化,因此此跳转属于服务器端跳转,只要是服务器端跳转,则地址栏永远没有变化也可以向跳转页面传递参数建立forward3.jsp:%@pagecontentType=text/html;charset=GBK%jsp:forwardpage=forward4.jspjsp:paramname=ref1value=hello/jsp:paramname=ref2value=world//jsp:forward建立forward4.jsp:%@pagecontentType=text/html;charset=GBK%h2跳转之后的页面!/h2h2%=request.getParameter(ref1)%/h2h2%=request.getParameter(ref2)%/h2动态打印表格formaction=print2.jspmethod=posttableborder=0trtdcolspan=2打印表格/td/trtrtd输入打印表格行数:/tdtdinputtype=textname=rows/td/trtrtd输入打印表格列数:/tdtdinputtype=textname=cols/td/trtrtdcolspan=2inputtype=submitvalue=打印inputtype=resetvalue=重置/td/tr/table/form%introw=Integer.parseInt(request.getParameter(rows));intcol=Integer.parseInt(request.getParameter(cols));%tableborder=1%for(inti=0;irow;i++){%tr%for(intj=0;jcol;j++){%td%=i*j%/td%}%/tr%}%/tableJavascript验证scriptlanguage=javaScriptfunctionxxx(f){if(!(/^\d+$/.test(f.rows.value))){alert(行数必须是数字!);f.rows.focus();returnfalse;}if(!(/^\d+$/.test(f.cols.value))){alert(列数必须是数字!);f.cols.focus();returnfalse;}returntrue;}/scriptformaction=print2.jspmethod=postonSubmit=returnxxx(this)服务器端验证%introw=0;intcol=0;try{row=Integer.parseInt(request.getParameter(rows));col=Integer.parseInt(request.getParameter(cols));}catch(Exceptione){}%9种内置对象4种属性范围JSP四种属性范围属性:属性范围pageContext:在一个页面范围内request:在一个服务器请求范围内session:在一次会话范围内application:在一个应用服务器范围内pageContextpageContext属性范围:是最为重要的JSP属性之一,但是如果使用纯粹的JSP开发,该属性显示不出用途。通常用于Struts、WebWork框架requestrequest属性范围:将属性保存在一次请求范围之内前提必须使用服务器跳jsp:forward/应用MVC设计模式、Struts、Webworksessionsession属性范围:是要设置上去,则不管是什么跳转,都可以取得属性,与session有关的任何打开的页面都可以取得session应用于验证用户是否登陆。属性的操作方法NO方法描述1PublicvoidsetAttribute(Stringname,Objectvalue)设置属性2publicobjectgetAttribute(Stringname)获得属性3PublicvoidremoveAttribute(Stringname)删除属性Page属性范围(pageContext)通过下列代码验证:S1.jsp网页代码:%@pagecontentType=text/html;charset=gbk%%@pageimport=java.util.*%%pageContext.setAttribute(name,zhangsan);pageContext.setAttribute(date,newDate());%%Stringxxx=(String)pageContext.getAttribute(name);Datesss=(Date)pageContext.getAttribute(date);%h2姓名:%=xxx%/h2h2日期:%=sss%/h2
本文标题:jsp基础知识
链接地址:https://www.777doc.com/doc-5736492 .html