




已阅读5页,还剩20页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
JSP学习笔记(一)-概述1.JSP是Java Server Pages的简写。 2.用JSP开发的Web应用是跨平台的.3.JSP技术是Servlet技术的扩展。Servlet是平台无关的,100%纯Java的Java服务端组件。4.下面就是一个简单的JSP页面:!DOCTYPE HTML PUBLIC -/W3C/DTD HTML 4.0 Transitional/ENHTMLHEADTITLE欢迎访问网上商店/TITLE/HEADBODYH1欢迎/H1SMALL欢迎,!- 首次访问的用户名字为New User -% out.println(Utils.getUserNameFromCookie(request); %要设置帐号信息,请点击A HREF=Account-Settings.html这里/A/SMALLP页面的其余内容。./BODY/HTML5.下面是JSP 和其他类似或相关技术的一个简单比较:1).JSP和Active Server Pages(ASP)相比Microsoft的ASP是一种和JSP类似的技术。JSP和ASP相比具有两方面的优点。首先,动态部分用Java编写,而不是VB Script或其他Microsoft语言,不仅功能更强大而且更易于使用。第二,JSP应用可以移植到其他操作系统和非Microsoft的Web服务器上。2).JSP和纯Servlet相比JSP并没有增加任何本质上不能用Servlet实现的功能。但是,在JSP中编写静态HTML更加方便,不必再用 println语句来输出每一行HTML代码。更重要的是,借助内容和外观的分离,页面制作中不同性质的任务可以方便地分开:比如,由页面设计专家进行HTML设计,同时留出供Servlet程序员插入动态内容的空间。3).JSP和服务器端包含(Server-Side Include,SSI)相比SSI是一种受到广泛支持的在静态HTML中引入外部代码的技术。JSP在这方面的支持更为完善,因为它可以用Servlet而不是独立的程序来生成动态内容。另外,SSI实际上只用于简单的包含,而不是面向那些能够处理表单数据、访问数据库的“真正的”程序。4).JSP和JavaScript相比JavaScript能够在客户端动态地生成HTML。虽然JavaScript很有用,但它只能处理以客户端环境为基础的动态信息。除了Cookie之外,HTTP状态和表单提交数据对JavaScript来说都是不可用的。另外,由于是在客户端运行,JavaScript不能访问服务器端资源,比如数据库、目录信息等等。JSP学习笔记(二)-使用Tomcat运行JSP文件有些网友不知道怎么才能运行自己的JSP文件,我在这里简单介绍一下,给大家提供一点参考:1. 下载并安装tomcat。下载地址:/tomcat2. 编写自己的JSP网页和Java对象。3. 配置自己的Web应用。配置方法:在TOMCAT_HOME/conf/server.xml文件中加入一行:其中,TOMCAT_HOME是tomcat的主目录,appName是你的Web应用的名称。4. 将你的jsp文件、html文件、image文件拷贝到TOMCAT_HOME/webapps/appName目录下。5. 编译你的java文件。6. 将编译好的class文件拷贝到TOMCAT_HOME/webapps/WEB-INF/classes目录下。也可将class文件打包成jar文件放到TOMCAT_HOME/webapps/WEB-INF/lib目录下。7. ALL IS OK! 你可以在你的浏览器上看到你的成果了:http:/localhost:8080/appName/youjsp.jsp其中,appName是你配的Web应用名称,youjsp.jsp是你编写的jsp文件名。JSP学习笔记(三)-使用JSP处理用户注册和登陆1. 这是一个JSP实例,由四个JSP页面组成,处理用户的注册和登陆信息2. 首先是login.jsp,代码如下: htmlcenterform method=get action=:8000/jsp/test.jspusernameinput type=text name=usernamebrbrpasswordinput type=password name=passbrbrinput type=submit value=注册/formform method=get action=:8000/jsp/test3.jspusernameinput type=text name=usernamebrbrpasswordinput type=password name=passbrbrinput type=submit value=登陆/formbr/center/html3. test.jsp代码如下:(主要处理用户注册,将注册信息插入数据库)html% page language=java import=java.sql.*%your username is:%=request.getParameter(username)%brbryour password is:%=request.getParameter(pass)%brbr%String name=request.getParameter(username);String pass=request.getParameter(pass);tryClass.forName(sun.jdbc.odbc.JdbcOdbcDriver);Connection dbcon=DriverManager.getConnection(jdbc:odbc:test,sa,);PreparedStatement stat=dbcon.prepareStatement(insert login values(?,?);stat.setString(1,name);stat.setString(2,pass);stat.executeUpdate();out.println(brbrBinsert successful/B);catch(Exception e)out.println(e);%bClick here to view all people/bform method=get action=:8000/jsp/test2.jspinput type=submit value=-/form/html4. test2.jsp,代码如下:(处理当用户注册成功之后可以查看所有的注册用户名单) html% page language=java import=java.sql.*% tryClass.forName(sun.jdbc.odbc.JdbcOdbcDriver);Connection dbcon=DriverManager.getConnection(jdbc:odbc:test,sa,);PreparedStatement stat=dbcon.prepareStatement(select * from login);ResultSet result=stat.executeQuery();%table border=2%while(result.next()%trtd%=result.getString(1)%td/tr% /table%catch(Exception e)out.println(e);% /html5. test3.jsp代码如下:(处理用户登录信息)htmlyour username is:%=request.getParameter(username)%brbryour password is:%=request.getParameter(pass)%brbr% page language=java import=java.sql.*% String name=request.getParameter(username);String pass=request.getParameter(pass);tryClass.forName(sun.jdbc.odbc.JdbcOdbcDriver);Connection dbcon=DriverManager.getConnection(jdbc:odbc:test,sa,);PreparedStatement stat=dbcon.prepareStatement(select * from login where username=? and password=?);stat.setString(1,name);stat.setString(2,pass);ResultSet result=stat.executeQuery();if(result.next()out.println(Login Successful);elseout.println(Login Error);catch(Exception e)out.println(e);%6.此外还需要一个名为login的数据库,只需要两个列username,password就可以了先注册,用户名33,密码33注册成功察看注册用户登陆成功JSP学习笔记(四)-JSP动作的使用1. 该实例主要告诉我们怎么样在JSP代码中使用JSP动作,例如jsp:forward 2. 该实例需要四个文件:login.jsp,test.jsp,ok.htm,no.htm3. 首先看一下login.jsphtmlcenterform method=get action=:8000/test.jspusernameinput type=text name=usernamebrbrpasswordinput type=password name=passwordbrbrinput type=submit value=确定/form/center/html4. test.jsp代码如下:html%String username=request.getParameter(username);if(username.trim().equals(abc)%jsp:forward page=ok.html /%else%jsp:forward page=no.html /%/html5. ok.htm和no.htm非常简单,随便写写: htmlok/htmlhtmlno/html6. 最后进行配置,非常简单: 把login.jsp,test.jsp,ok.htm,no.htm放在j2ee的public_html中就可以了,不需要启动J2EE部署器了,这是一个简单方法7. 运行效果是当你输入用户名为abc时,页面会自动跳转到ok.htm页面,否则跳到no.htm页面JSP学习笔记(五)-JSP中使用JavaBean1. 该实例主要告诉我们怎么样在JSP代码中调用JavaBean构件2. 使用JavaBean的优点是简化了JSP代码,界面代码和逻辑代码互相分离,便于程序员查看和调试3. 该实例需要五个文件:login.jsp,test.jsp, userbean.class4. 首先看一下login.jsp htmlcenterform method=post action=:8000/test.jspusernameinput type=text name=usernamebrbrpasswordinput type=password name=passwordbrbrinput type=submit value=注册/form/center/html5. test.jsp代码如下: htmljsp:useBean id=hello class=userbean scope=session /jsp:setProperty name=hello property=* /your username is:jsp:getProperty name=hello property=username/brbryour password is:jsp:getProperty name=hello property=password/brbr%out.println(hello.insert(); %/html6. JavaBean构件userbean.java代码如下:import java.sql.*;public class userbeanprivate String username;private String password;public void setUsername(String username)this.username=username;public void setPassword(String password)this.password=password;public String getUsername()return username;public String getPassword()return password;public String insert()tryClass.forName(sun.jdbc.odbc.JdbcOdbcDriver);Connection dbcon=DriverManager.getConnection(jdbc:odbc:test,sa,);PreparedStatement stat=dbcon.prepareStatement(insert login values(?,?);stat.setString(1,username);stat.setString(2,password);stat.executeUpdate();return success;catch(Exception e)System.out.println(e);return e.toString();7. 配置方法如下: login,test放在j2ee的public_html中,userbean.class放在j2eelibclasses中JSP学习笔记(六)-在多个JSP页面之间传递参数1. 怎么在多个JSP页面之间进行参数传递?需要使用JSP的内置作用域对象session。利用它的两个方法setAttribute(),getAttribute()2. 下面的这个实例实现了把第一个JSP页面的参数传递给第三个页面的功能3. 代码如下:1.jsphtmlform method=get action=2.jspwhats your nameinput type=text name=usernameinput type=submit value=submit/form/html4. 2.jsphtmlform method=post action=3.jsp?pass=11%String name=request.getParameter(username);session.setAttribute(username,name);%Your name is:%=request.getParameter(username)%brwhats your hobbyinput type=text name=hobbyinput type=submit value=submit/form/html5. 3.jsphtmlyour name is:%=session.getAttribute(username)%bryour hobby is:%=request.getParameter(hobby)%bryour password is:%=request.getParameter(pass)%br/form/htmlJSP学习笔记(七)-猜数字游戏1. 这是一个猜数字的游戏,通过使用JSP调用JavaBean2. 需要两个文件,number.jsp和NumberGuessBean.java3. 先看number.jsp代码:htmljsp:useBean id=number class=NumberGuessBean scope=session /jsp:setProperty name=number property=* /%if(number.getNumGuesses()=0)%BWelcome to the Number Guess game./BbrBIm thinking of a number between 1 and 100./BbrbWhats your guess?/b form method=postinput type=text name=guessinput type=submit value=submit/form%else if(number.getSuccess() %Congratulations! You got it. And after just %=number.getNumGuesses()% tries.Care to a href=number.jsptry again/a? %number.reset();else%Good guess, but nope. Try %=number.getHint()%. You have made %=number.getNumGuesses()% guesses.brIm thinking of a number between 1 and 100.brWhats your guess? form method=postinput type=text name=guess input type=submit value=submit/form%/html4. NumberGuessBean.java代码如下:import java.util.*;public class NumberGuessBean int answer;boolean success;String hint;int numGuesses;public NumberGuessBean() reset();public void setGuess(String guess) numGuesses+;int g;try g = Integer.parseInt(guess);catch (NumberFormatException e) g = -1;if (g = answer) success = true;else if (g = -1) hint = a number next time;else if (g answer) hint = higher;else if (g answer) hint = lower;public boolean getSuccess() return success;public String getHint() return + hint;public int getNumGuesses() return numGuesses;public void reset() answer = Math.abs(new Random().nextInt() % 100) + 1;success = false;numGuesses = 0;JSP学习笔记(八)-include的运用1. 向JSP页面中插入指定的页面方法有两种:JSP命令% include%JSP动作jsp:include /2. a.jsp代码如下:htmlhuanghui% include file=b.jsp%jsp:include page=b.jsp flush=true/html3. b.jsp代码如下:htmlhello/htmlJSP学习笔记(九)-JSP标签库1.JSP标签库(也称自定义库)可看成是一套产生基于XML脚本的方法,它经由JavaBeans来支持。在概念上说,标签库是非常简单和可以重用的代码构造。它可以大大简化你在页面中输入各种录入框的代码(诸如此类的代码:input type=text name=taxpayerName value = ,select name=collectionItemCode class=required style=width:200 .),并使之结构化。2.标签库(Tag libraries)提供了建立可重用代码块的简单方式。但是和COM和J2EE不同的是,你不需要掌握任何额外的技能就可以建立标签库:如果你会编写JSP页面,你就会建立标签库。最后,标签库还改进了Web应用程序的维护性。这种对维护性的改进表现在:轻易地在JSP页面上就实现了基于XML的可定制接口。3.一个简单的标签由下面的元素构成: JavaBeans:为了得到Java与生具来的面向对象的好处,可重用的代码应该放到一个独立的代码容器中。这些JavaBeans并不是标签库的一部分。不过它是你的代码库用来执行相关任务的基本代码块。 标签处理:这是标签库的真正核心。一个标签处理器将引用它需要的任何资源(你的JavaBeans)和访问你的JSP页面的全部信息(pageContext对象)。JSP页面也会将所有已经被设置的标签属性和JSP页面上的标签体中的内容传送给标签处理器。在标签处理器处理完毕后,它将发回输出到你的JSP页面进行处理。 标签库的描述(tld文件):这是一个简单的XML文件,它记录着标签处理器的属性、信息和位置。JSP容器通过这个文件来得知从哪里及如何调用一个标签库。 网站的web.xml文件:这是你网站的初始化文件,在这个文件中,你定义了网站中用到的自定义标签,以及哪个tld文件用来描述每个自定义的标签。 分发文件(一个WAR或者JAR文件):如果你想重用自定义标签的话,你需要一个方法来将它由一个项目转移到另一个项目中。将标签库打包为一个JAR文件是一个简单而且有效的方式。 在你的JSP文件中作标签库声明:很简单,如果要用到该标签的话,只要在页面声明一下就可以,其后,你就可以在该JSP页面的任何地方使用它。下面是一个实例 1. 先编写标签处理程序,ATMTag.java/用标签处理程序来定义客户标签的工作import javax.servlet.jsp.*;/导入标签类的驱动import javax.servlet.jsp.tagext.*;import java.io.*;import java.sql.*;import java.math.*;import java.util.*;/实现TagSupport或BodyTagSupport接口public class ATMTag extends TagSupportConnection connect = null;Statement state = null;ResultSet result = null;public ATMTag() throws ClassNotFoundExceptionClass.forName(sun.jdbc.odbc.JdbcOdbcDriver);/抽象类Tag的方法,标签处理程序的初始化public int doStartTag() throws JspTagException/指导JSP引擎处理标签的体内容return EVAL_BODY_INCLUDE;/执行标签任务public int doEndTag() throws JspTagExceptiontry/把输出写到JSP页面JspWriter out=pageContext.getOut();connect=DriverManager.getConnection(jdbc:odbc:test,sa,);String strQuery = Select cCounter_id, cAddress,mCashBalance from Counter where mCashBalance=10000; ;System.out.println(Query: +strQuery);state = connect.createStatement();ResultSet result = state.executeQuery(strQuery);String sId=null;String sAddress=null;String sBalance=null;Vector v=new Vector();while(result.next()sId = result.g
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 水疗spa管理制度
- 样机区装配管理制度
- 校园充电桩管理制度
- 大剧院电力管理制度
- 地产子公司管理制度
- 国医堂规范管理制度
- 快递站运营管理制度
- 材料入出库管理制度
- 学校观察区管理制度
- 护理观念课件
- 主动脉夹层患者的护理查房
- 新概念2测试题及答案
- JT-T-566-2004轨道式集装箱门式起重机安全规程
- 反有组织犯罪法主题班会
- 商户安全管理培训课件
- MOOC 统计学-南京审计大学 中国大学慕课答案
- MOOC 嵌入式系统-西北工业大学 中国大学慕课答案
- 工程造价专业《工程项目管理实训》课程标准
- 《高温熔融金属吊运安全规程》(AQ7011-2018)
- 《观念决定行动》课件
- 年产4亿片阿奇霉素片的精烘包及车间设计
评论
0/150
提交评论