




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
Jsp期末复习资料习题部分第一章JSP概述1.JSP技术是由A语言作为脚本语言。A.JavaB.C++C.C#D.C2.Web是与平台无关、分布式的、图形化的和易于导航的,定义了客户端和服务器端怎样通信。3.HTTP(超文本传播协议)是一种Internet上常见的协议,用于传播超文本标识语言(HTML)编写的文献,也就是一般所说的网页。4.网站一般分为3层,分别是顾客界面交互层、应用程序层、数据库层。5.Servlet的生命周期是载入、初始化、执行和删除。6.JSP技术是在老式的网页文献HTML中加入java程序片段和JSP标识构建的JSP网页7.什么是C/S构造?什么是B/S构造?两者由什么区别?答:C/S是Client/Server(客户机/服务器)构造,B/S是Browser/Server(浏览器/服务器)构造。B/S构造是三层体系构造,B/S构造规定客户端只需要安装一种浏览器(Browser),客户端通过浏览器将祈求发送给Web服务器,Web服务器负责与后端数据库服务器进行数据通信;C/S构造是二层构造平台模式,C/S构造规定客户端要安装指定的软件,客户端负责执行前端的数据处理,服务端进行后端的服务处理。8.简述JSP技术和Servlet技术的区别和联络。♦区别:⑴JSP技术重要用来体现页面,而Servlet技术重要用来完毕大量的逻辑处理。⑵JSP重要用来发送给前端的顾客,而Servlet重要来响应顾客的祈求,完毕祈求的逻辑处理。♦联络:在实际开发中,往往先把JSP页面开发出来,然后再将JSP代码转换成Servlet。试验三:<%=1+1%>第二章jsp实现网站计数器BufferedReader类的作用是用来从字符输出流中读取文本并将字符存入缓冲区以便能提供字符、数组的高效读取。FileReader类的作用是用来读取文献字符。FileOutputStream类的close()措施的作用是A。关闭流返回与目前流有关的文献描述符将指定字节写入目前文献输出流当这个文献输出流不再有引用时,保证调用它的close措施BufferedReader类的read()措施的作用是D。关闭流跳过n个字符读取一文本行读一种字符作为措施的返回值。假如返回值是-1,则表达文献结束在动态Web项目中创立名为test的JSP文献,在test.Jsp中申明变量Stringcontent=“你好,小明!”,然后在test.jsp中输出content的内容。<%!Stringcontent=“你好,小明!”%><%=content%>运用JSP技术实目前网页中显示目前系统时间。<%out.println(newjava.util.Date())%>试验一、Stringrecord=“Java你好”;StringFilePath=“c:\\count.txt”;PrintWriterpw=null;pw=newPrintWriter(newFileOutputStream(FilePath));pw.write(record);pw.close();二、Stringrecord=null;StringFilePath=“c:\\count.txt;BufferedReaderbr=null;br=newBufferedReader(newFileReader(FilePath)); record=br.readLine();out.println(record);pw.close();三、(2)record+=“不错的技术”;第三章jsp实现顾客注册1.HTML是超文本标识语言,是网络上的通用语言。作用是用于对WWW页面内容的格式进行阐明。2.JSP中的9个内建对象为request、response、session、application、pageContext、out、config、page、exception3.request对象的作用是处理祈求信息,两个重要的措施为getParameter()和getParameterValues()4.response对象的作用是处理JSP生成的响应并将响应发送给客户端,两个重要措施为setContentType()和senRedirect()5.在Java中连接数据库需要用B。A.ODBCB.JDBCC.JNDID.DMBS6.过滤器是D。A.JSPB.一般的ServletC.Java类D.特殊的Servlet7.分别指出JSP中9个内建对象的作用范围request祈求对象类型javax.servlet.ServletRequest作用域Requestresponse响应对象类型javax.servlet.SrvletResponse作用域PagepageContext页面上下文对象类型javax.servlet.jsp.PageContext作用域Pagesession会话对象类型javax.servlet.http.HttpSession作用域Sessionapplication应用程序对象类型javax.servlet.ServletContext作用域Applicationout输出对象类型javax.servlet.jsp.JspWriter作用域Pageconfig配置对象类型javax.servlet.ServletConfig作用域Pagepage页面对象类型javax.lang.Object作用域Pageexception例外对象类型javax.lang.Throwable作用域pagepage:对象只能在创立它的JSP页面中被访问request:对象可以在与创立它的JSP页面监听HTTP祈求相似的任意一种JSP中被访问session:对象可以在与创立它的JSP页面共享相似的HTTP会话的任意一种JSP页面中被访问application:对象可以在与创立它的JSP页面属于相似网络应用程序的任意一种JSP页面中被访问。使用HTML设计一种顾客注册页面,规定使用到文本框、密码框、单项选择按钮、复选按钮、下拉列表、文本域、确认按钮和取消按钮。(详见代码)P44-46第3章试验一、P44-46二、<%Stringname=request.getParameter("username");Stringpws=request.getParameter("password");out.println("顾客名:"+name+"<br>");out.println("密码:"+pws+”<br>);out.println("得到客户端向服务器端传送数据的方式:"+request.getMethod()+"<br>");out.println("得到客户端的端口:"+request.getRemotePort()+"<br>");out.println("得到服务器的端口号:"+request.getServerPort()+"<br>");out.println("得到服务器的名称:"+request.getServerName()+"<br>");out.println("得到祈求的客户端地址:"+request.getRequestURL()+"<br>");%>三、P63第四章JSP与Servlet实现顾客登录1.Servlet中的4个常用措施分别为doGet()、doPost()、init()和destroy()。2.描述Servlet跳转祈求的文献是C。A.Servlet类B.JSP界面C.web.xmlD.Java类3.在JSP页面中显示顾客信息的两种措施是<%out.print();%>和<%=%>。4.Servlet中实现页面跳转的两种措施是使用response.sendRedirect()进行重定位和使用request.getRequestDispatcher().forward()措施。5.Session对象实现的是A接口。A.javax.servlet.http.HttpSessionB.javax.servlet.http.HttpServletRequestC.javax.servlet.http.HttpServletRequestD.javax.servlet.ServletContext6.session对象的作用是什么?两种常用的措施各是什么?Session的作用是表达个别顾客的会话状态。两种常用的措施是:setAttribute()措施和getAttribute()措施。7.JSP与Servlet的开发模式的长处各是什么?JSP的长处:大大简化和以便页面的编写和修改,比较适合处理显示的部分,可以向Java代码嵌入HTML元素。Servlet的长处:善于处理逻辑的部分,可以向Java代码写入HTML元素。第4章试验一、参照P73-76只需将P76(time2-time1)>30000改为10000即可。其他修改处如处理的页面等。二、在1.jsp中有session.setAttribute(“message”,“session是非常重要的內建對象”);在2.jsp中有<%=session.getAttribute(“message”);%>即可。但需注意在頁面指令中session不可設置為false.试验三創建login页面简朴,注意action的值,method的值决定了在servlet中使用哪个措施doPost()中部分代码:(先获取值)PreparedStatementstmt=conn.prepareStatement(“select*fromuserswhereusername=?andpassword=?”);stmt.setString(1,username);stmt.setString(2,password);rs=stmt.executeQuery();while(rs.next()){session.set………….;返回;}第五章JSP与JavaBean实现顾客信息查询JSP中有几种指令?A。(Page和Include)A.2B.4C.6D.8JSP中有几种动作指令?C。A.2B.4C.6D.8JavaBean是一种可反复使用的软件组件,实际上就是一种Java类,作用是提供了随时随地进行复制和粘贴的功能。创立一种JavaBean要符合3点规定分别为必须有一种无参数的公有的构造措施,当类里没有构造措施时默认的就是无参公有的、对于想要使用到的属性都定义成私有变量和对定义的私有变量要有与它相对应的get和set措施。get和set措施。必须有与变量相似的名称,但第一种字母要大写。阐明JSP中每个动作指令的作用。Include指令的作用:用来包括一种动态或静态的资源;Forword指令的作用:容许祈求转发到另一种JSP、Servlet或者HTML文献;Plugin指令的作用:用于产生客户端浏览器的尤其标签(Object或者Embed);useBean指令的作用:用来在JSP页面创立一种JavaBean的实例指定它的名字及作用范围;setProperty指令的作用:用来设置JavaBean中的属性值;getProperty指令的作用:用来获取Bean属性的值,并将它转化为字符串,然后在输出的页面显示。使用Bean的3个动作指令,完毕一种猜数的小程序。当客户访问getNumber.jsp时,随机获得一种1-100之间的整数,由顾客猜这个数是什么,在文本框内数值提交后,使用Bean(GuessNumber.java)判断猜数题对的,然后在guess.jsp页面中显示猜数状况。页面效果如图5-10和图5-11所示。()packagecom.games;importjava.lang.*;importjava.util.*;publicclassGuessNumber{privateintanswer;privateinttotal=0;publicGuessNumber(){reset();}publicintgetAnswer(){returnanswer;}publicStringisRight(intmyanswer){Stringmessage=null;total++;if(myanswer<answer)message="你猜了"+total+"次<br>你上次猜的数为"+myanswer+"<br>猜小了。<br>再猜一次<br>";if(myanswer>answer)message="你猜了"+total+"次<br>你上次猜的数为"+myanswer+"<br>猜大了。<br>再猜一次<br>";if(myanswer==answer)message="你猜了"+total+"次<br>你上次猜的数为"+myanswer+"<br>猜对了。<br>";returnmessage;}publicvoidreset(){aswer=(int)(Math.random()*100)+1;//Math.abs(newRandom().nextInt()%100)+1; total=0;}}第5章试验一、见P104-108二、P91将SQL语句中的like改为=三、JavaBean中的属性:sNosNamesexdepartment措施:构造,set和get措施Java类中措施:构造措施(加载驱动,建立连接),查询顾客的措施(返回值为List,使用JavaBean对数据进行封装。显示:第七章JSP实现留言板1.JSP提供了一种B来使JSP的开发更轻易,也更便于维护。JavaBeanB.标签库C.自定义标签D.内建对象机制JSP标签库是一种通过JavaBean生成基于XML脚本的措施。自定义标签实质是C。运行一种接口的JavaBeanB.运行几种接口的JavaBeanC.运行一种或几种接口的JavaBeanD.XML文献自定义标签的长处有分离了程序逻辑和表达逻辑、将Java代码从HTML中剥离,便于美工维护页面、减少了JSP页面中的脚本,减少了维护成本和提供了可重用的功能组件。自定义JSP标签的关键是D。JavaBeanB.TLD文献C.web.xmlD.标签处理创立一种JSP分页标签需要哪些环节?将标签导入到JSP页面中(导入标签库);从标签库中调用自定义标签实现分页效果。简述自定义标签。自定义标签是顾客自定义的Java语言元素,实质是运行一种或者几种接口的JavaBean;可以很紧密地和JSP逻辑表达联络在一起,又具有和一般JavaBean同样的业务逻辑处理能力;可操作默认对象,处理表单数据,访问数据库及其他企业服务。重要由JavaBeans、标签处理器、标签库的描述文献(TLD文献)、web.xml文献和在JSP页面申明自定义标签等五个元素构成。第八章JSP实现对XML读写XML是可拓展标识语言,是一种与平台无关的标识数据的措施。在每一种XML文档中有A根元素。(有且只能有一种)一种B.两个C.三个D.四个DTD(文献类型定义)是一种保证XML文档格式对的的有效措施,可以比较XML文档和DTD文献来看文档与否符合规范,元素和标签使用与否对的。在XML规范中,内置属性与自定义的属性最大区别是内置属性名称以“xml:”开头,而自定义属性名不能以“xml:”开头,否则在解析时会发生错误。如下哪个符号代表标识出现的次数必须在一次以上?C?(不出现或者只出现一次)B.*(不出现或者可出现多次)C.+(必须出现一次以上)D.无符号(只能出现一次)XML文档的逻辑构造由哪几部分构成?XML文档一般以一种XML申明开始;通过XML元素来组织XML数据;XML元素包括标识和字符数据;为了组织数据能更以便、清晰,XML在字符数据引入CDATA数据块;在文档中引入注释;需要给XML处理程序提供某些指示信息,XML文档中可以包括处理指令。创立XML时需要注意哪几点?所有的XML文档都必须有一种根元素;所有的XML元素都必须有一种结束标签;标签辨别大小写;所有的XML元素都必须对的嵌套;属性必须包括在开始标签中,并在两边加上引号。XML语言的长处有哪几点?XML是专为Internet设计的标识语言;XML提供了一种逻辑数据构造,该构造在便于人阅读的同步,也非常轻易被引用程序处理;一份XML文档可以被任何与XML兼容的语法分析程序或者应用程序接受;XML是用于定义数据和元数据的语法。第九章JSP,JavaBean与Servlet实现投票系统JSP+Servlet+JavaBean的开发模式属于B。JSPModelIB.JSPModelIIC.MVCJSPModelII与JSPModelI的区别是JSPModelI程序可读性高,可反复运用率高,缺乏流程控制;JSPModelII开发流程更明确,关键的程序管控,维护轻易,学习时间和开发时间较长。最大的区别是引入了MVC模式。MVC模式中处理数据对象的是C。ModelB.ViewC.ControllerMVC将应用程序分为3个关键模块、分别是模型、视图和控制器。MVC的作用是什么?答:MVC强制性的把输入、处理和输出分开,实现了功能模块与显示模块的分离,3个关键模块:模型、视图和控制器,分别担当不一样的任务,提高了应用系统的可维护性、可拓展型、可移植性和组件的可复用性。第十章基于JSP技术开发新闻公布系统在需求分析中处在主导地位的是A。顾客B.需求分析师C.项目经济D.程序员明确设计的数据库将要完毕哪些功能的阶段是B。数据库概念构造设计B.数据库需求分析C.数据库逻辑构造设计需求分析从广义上理解是需求分析包括需求的获取、分析、规格阐明、变更、验证及管理一系列需求工程,从狭义上理解是需求分析就是指需求的分析、定义过程。需求分析阶段的4个方面工作分别为问题识别、分析与综合、制定规格阐明和评审。JavaScript是一种新的描述语言,可以被嵌入到HTML文献中。需求分析的概念是什么?作用是什么?、答:需求分析是指理解顾客需求,就软件功能与客户到达一致,估计软件风险和评估项目代价,最终形成开发计划的一种复杂过程。它具有决策性、方向性和方略性的作用。数据库的设计过程有哪些?分别有什么作用?答:数据库的设计包括数据库需求分析、数据库概念构造设计和数据库逻辑构造设计。数据库需求分析阶段明确了设计的数据库将要完毕哪些功能。数据库概念构造设计阶段将分析的成果通过E-R图形式体现出来。数据库逻辑构造设计阶段是将数据库概念设计阶段的成果转化为某种数据库系统所支持的实际数据模型。书本部分知识要点:第一章Jsp脚本语言是:java语言。Jsp:一种动态网页技术原则。Web:定义了Web客户端(Web浏览器)和Web服务端怎样通信Java特点:面向对象的编程语言,分布式、高度安全、多线程的语言。B/S构造:Browser/Server(浏览器/服务器)C/S构造:Client/Server网站构造3层:顾客界面交互层、应用程序层、数据库层Eclipse配置:环境变量中输入“java_HOME”,系统变量中加入:“;%java_HOME%\bin”Servlet使用前准备:搭建Web项目Jsp的长处:跨平台(支持的平台众多)、提供更好的安全机制、是一种开放的原则、组件编写更轻易,性能更优、支持多线程、可和JDBC等众多主流数据库连接。Tomcat默认端口:8080Servlet措施:doGet()处理HTTP的GET祈求;doPost()处理HTTP的POST祈求;(相比doGet更好)init()初始化;destroy()卸载Servlet在哪对Servlet配置:web.xml浏览器的地址栏:http://localhost:8080/webjsp/Servlet(逻辑名)<%!%>Jsp的申明,措施也放在其中<%%>java代码<%=%>jsp体现式第二章BufferedRead类用来从字符输入流中读取文本并将字符存入缓冲区以便能提供字符、数组的高效读取。StringreadLine()读取一文本行。FileReader类用来读取字符文献。Voidclose()关闭流。网站计数器:<body><%Stringrecord=null;//从文本中读取出来的内容信息BufferredReaderbr=null;//读文本文献中的数据StringFilePath=“c:\\count.txt";PrintWriterpw=null;//数据写入文本文献br=newBufferedReader(newFileReader(FilePath));//读record=br.readLin();//读第一行if(record==null){recor="1";}else{record=(Integer.parseInt(record)+1)+""'}%>您是第<%=record%>位访问者。<%pw=newPrintWriter(newFileOutputStream(FilePath));//写入pw.write(record);//打印到文本上pw.close();%></body>第三章内建对象application对象:存在于整个Web服务器运行期间,期间所有顾客共用一种application对象,这一点与session对象是不一样的。作用:获得或更改Servlet的设定,并表达JSP页面所属的应用程序。作用域:application常用措施:voidsetAttribute(Stringname,Objectvalue):讲一种对象放到application对象中。voidgetAttribute(Stringname):根据名称取值。...request对象:表客户端对网页的祈求,并使用HTTP协议处理客户端的祈求。作用域:request常用措施;StringgetParameter(Stringname):根据页面表单组件名称获取祈求页面提交数据。String[]getParameterValues(Stringname):获取页面祈求中一种表单组件对应多种值时的顾客祈求数据。getProtocol():获取客户端与服务器端传送数据所依赖的协议名称。...response对象:处理湖祈求响应。常用措施;voidsetContentType(Stringname):设置作为响应生成内容的类型和字符编码。voidsendRedirect(Stringname),:发送一种响应给浏览器,致使其应祈求另一种URL。...自动刷新:response.setIntHeader("Refresh",10).10秒刷新一次。跳转措施:response.setHeader(“Refresh”,“10,URL=")。中文转换:(不明确)request:1、setCharacterEncoding()2、pageEncoding3、window->prefrecense4、servletJDBC的4中驱动模式:JDBA-ODBC桥;当地接口与Java程序相结合;面向数据库中间件;直接连接。插入一条记录取Statement语句或PrepareStatement。例子:1、Statementst=conn.createStatement();st.execute("insertintousers(username,password,sex)values('"+王+"','"+ws123+"'"+男+")”);2、PrepareStatementstmt=conn.prepareStatement(“insertintousers(username,password,sex)values(?,?,?)");stmt.setString(1,王);stmt.setString(2,ws123);stmt.setString(3,男);stmt.execute();第四章P67页代码4-1:看Login作为<servlet-name>要与<servlet-mapping>标签中的<servlet-name>相对应,及名称相似,在<url-pattern>中(与访问网
址中的大小写相似,默认状况大写)可不辨别大小写。Servlet实现页面跳转:措施一:使用response.sendRedirect()进行重定位;只能在Servlet写的页面间进行跳转。措施二:request.getRequestDispatcher().forward措施;可从Servlet写的跳到JSP写的页面。session对象:表达目前个别顾客的会话状态。常用措施:setAttribute(Stringname,java.long.Object):将顾客名保留在Session中使用;getAttribute("username"):在另一种JSP页面得到这个顾客名。顾客登录界面:<body><%if(request.getParameter("username")!=null&&request.getParameter("password")!=null){Stringusername=(String)request.getParameter("username");//得顾客名Stringusername=(String)request.getParameter("password");if(username.equals("admin")&&password.equals("admin")){session.setAttribute("message","登录成功");//信息保留到session中session.setAttribute("username",username);response.sendRedirect("show,jsp");}else{%>顾客名或密码错误<%}%><formaction="login.jsp"method="post"><table>trtd<inputtype="text/password/submit/reset"name/value=""</body>第五章JavaBean:是一种可反复使用的组件,并对数据进行封装的java类。创立:JavaBeanjb=newJavaBean();packagecom.jsp.query;publicclassJavaBean{privateStringname;//使用到的属性都定义为私有变量privateStringpassword;publicJavaBean(){//无参的公有构造函数,也可省略}//定义的私有变量在get/set中首字母要大写publicStringgetName(){//对应name的get措施,返回值为namereturnname;}publicStringsetName(Stringname){=name;}publicStringgetPassword(){returnpassword;}publicStringsetPassword(Stringpassword){this.password=password;}}include指令:包括一种静态资源时,JSP编译器不执行次文献,仅将资源加载JSP中包括一种动态资源时,JSP编译器会执行它。forward指令:<jsp:forward>标签是容许祈求转发到另一种JSP,Servlet或HTML文献。格式:例子<body><jsp:forwardpage="forwardTo.jsp"><jsp:paramname="tag"value="forward"/>//此为有参数跳转,若为无参数跳转,则只需第一行即可</jsp:forward></body>结束之后,地址栏出现变化,假设<jsp:forwardpage="page2.jsp"/>,则地址栏中出现的page1.jsp;而用
request.getRequestURL()得到为"http://localhost:8080/page2.jsp"useBean指令:属性:ip="beanInstanceName";大小写敏感scope="page|request|session|application"(Bean只能在使用页面时使用|在对其发出祈求时存在|一直存在于会话中,直到终止
或被删除|在整个应用程序中都可使用)class="package.class"type="package.clall"beanName="{package.class|<%=expression%>}"type="package.class"连接数据库://加载JDBC-ODBC桥驱动程序ClassforName("com.microsoft.jdbc.sqlserver.SQLServerDriver");Connectionconn=DriverManager.getConnection("jdbc:microsoft:sqlserver://localhost:1433;databasename=test?
user=sa&password=&useUnicode=true&characterEncoding=gb2312);//有数据库连接对象conn生成数据库语句对象stmtStatementstmt=conn.createStatement();分页和排序:看<%@pagelanguage="java"import="java.util.*,mypage.*,java.sql.*"pageEncoding="UTF-8"%><%Stringpath=request.getContextPath();StringbasePath=request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";%><!DOCTYPEHTMLPUBLIC"-//W3C//DTDHTML4.01Transitional//EN"><html><head><basehref="<%=basePath%>"><title>MyJSPstartingpage</title> <metahttp-equiv="pragma"content="no-cache"> <metahttp-equiv="cache-control"content="no-cache"> <metahttp-equiv="expires"content="0"> <metahttp-equiv="keywords"content="keyword1,keyword2,keyword3"> <metahttp-equiv="description"content="Thisismypage"> <!-- <linkrel="stylesheet"type="text/css"href="styles.css"> --></head><body>一下是分页显示的效果:<br><%intpagecount=0;intpagesize=10;intpagenumber=1;intj=1; if(request.getParameter("page")==null) { ;}else{ pagenumber=Integer.parseInt(request.getParameter("page"));}ResultSetrs=null;Connectiontosqlcon=newConnectiontosql();intnum=con.sum();rs=con.check();pagecount=(num-1)/pagesize+1;if(pagenumber!=1)rs.absolute((pagenumber-1)*pagesize); while(rs.next()&&(j<=pagesize)){%><%out.print(rs.getString(1));out.print(rs.getString(2));out.print(rs.getString(3));out.print(rs.getString(4));j++;%><p><%}%><%for(inti=1;i<=pagecount;i++){%><ahref="mypage.jsp?page=<%=i%>"><%=i%></a> <%}%></body></html>实例代码部分一:网站计数器①要有一种count.txt文献:<%@pagelanguage="java"contentType="text/html;charset=gb2312"pageEncoding="gb2312"import="java.lang.*,java.io.*"%><!DOCTYPEhtmlPUBLIC"-//W3C//DTDHTML4.01Transitional//EN"""><html><head><metahttp-equiv="Content-Type"content="text/html;charset=gb2312"><title>网站计数器</title></head><body> <% Stringrecord=null; BufferedReaderbr=null; StringFilePath="D:/java/jsp/count/count.txt"; PrintWriterpw=null; br=newBufferedReader(newFileReader(FilePath)); record=br.readLine(); if(record==null){ record="1"; } else{ record=(Integer.parseInt(record)+1)+""; } %> 您是第<%=record%>位访问者。 <% pw=newPrintWriter(newFileOutputStream(FilePath)); pw.write(record); pw.close(); %></body></html>②显示变量:<%Stringcontent="你好,小明!";out.print(content);%>③显示时间:Import=”java.util.*”;<%=newDate()%>二:顾客注册界面Register.jspImport=”java.util.*”;<%request.setCharacterEncoding("gb2312");%><formaction="check.jsp"method="post">顾客名:<inputtype="text"name="usename"/>密码:<inputtype="password"name="password"/>确认密码:<inputtype="password"name="repassword"/>性别:<inputtype="radio"name="sex"value="male"checked/>男 <inputtype="radio"name="sex"value="female"/>女职业:<selectsize="1"name="work"> <optionselected="selected">学生</option> <option>职工</option> <option>经理</option> <option>军人</option> <option>自由人</option> </select>个人爱好:<inputtype="checkbox"name="love"value="电脑网络"/>电脑网络 <inputtype="checkbox"name="love"value="影视娱乐"/>影视娱乐 <inputtype="checkbox"name="love"value="棋牌娱乐"/>棋牌娱乐 <inputtype="checkbox"name="love"value="读书读报"/>读书读报 <inputtype="checkbox"name="love"value="美酒佳肴"/>美酒佳肴 <inputtype="checkbox"name="love"value="绘画书法"/>绘画书法个人阐明:<textareaname="show"rows="15"cols="40"></textarea><inputtype="submit"value="提交"/><inputtype="reset"value="重置"/>Check.jspimport="java.util.*,java.sql.*";<% request.setCharacterEncoding("gb2312"); Stringname=(String)request.getParameter("usename"); Stringpassword=(String)request.getParameter("password"); Stringrepassword=(String)request.getParameter("repassword"); if(!password.equals(repassword)){ out.print("errorofpasswordagain"); } Stringsex=(String)request.getParameter("sex"); Stringwork=(String)request.getParameter("work"); String[]love=(String[])request.getParameterValues("love"); Stringshow=(String)request.getParameter("show"); StringstrLove=""; for(inti=0;i<love.length;i++){ if(strLove.trim().equals("")){ strLove=strLove+"'"+love[i].toString()+"'";} else{strLove=strLove+",'"+love[i].toString()+"'";}} if(strLove.trim().substring(0,strLove.trim().length()).equals(",")){strLove=strLove.trim().substring(0,strLove.trim().length()-1);} Connectionconn=null; PreparedStatementstmt=null; try{ Class.forName("sun.jdbc.odbc.JdbcOdbcDriver"); conn=DriverManager.getConnection("jdbc:odbc:webregister","sa",""); stmt=conn.prepareStatement("insertintoregister(姓名,密码,性别,职业,个人爱好,个人阐明)values(?,?,?,?,?,?)"); stmt.setString(1,name); stmt.setString(2,password); stmt.setString(3,sex); stmt.setString(4,work); stmt.setString(5,strLove); stmt.setString(6,show); stmt.execute(); out.println("success"); }catch(SQLExceptione){ out.println("error"); }%>三:用servlet实现顾客注册Login.jsp<formaction="Login"method="post">顾客名:<inputtype="text"name="usename"/>密码:<inputtype="password"name="password"/><inputtype="submit"value="登录"/><inputtype="reset"value="重置"/></form>新建一种包:com.jsp.servletLogin.javapackagecom.jsp.servlet;importjava.io.IOException;importjava.sql.*;importjavax.servlet.ServletException;importjavax.servlet.http.HttpServlet;importjavax.servlet.http.HttpServletRequest;importjavax.servlet.http.HttpServletResponse;importjavax.servlet.http.HttpSession;publicclassLoginextendsHttpServlet{ privatestaticfinallongserialVersionUID=1L; publicvoidinit()throwsServletException{ try{ Class.forName("sun.jdbc.odbc.JdbcOdbcDriver"); }catch(ClassNotFoundExceptione){ e.printStackTrace(); } } publicintqueryUser(Stringsql)throwsException{ intmessage=1; Connectionconn=DriverManager.getConnection("jdbc:odbc:webregister","sa",""); ResultSetrs=conn.prepareStatement(sql).executeQuery(); if(rs.next()){ message=rs.getInt(1); } returnmessage; } publicLogin(){} protectedvoiddoGet(HttpServletRequestrequest,HttpServletResponseresponse)throwsServletException,IOException{ } protectedvoiddoPost(HttpServletRequestrequest,HttpServletResponseresponse)throwsServletException,IOException{ HttpSessionsession=request.getSession(); Stringusename=(String)request.getParameter("usename"); Stringpassword=(String)request.getParameter("password"); Stringsql="selectcount(*)fromuser1where姓名='"+usename+"'and密码='"+password+"'"; Stringm=""; try{ intmessage=queryUser(sql); if(message==1){ m="success"; session.setAttribute("success",usename); session.setAttribute("success",password); request.getRequestDispatcher("/success.jsp").forward(request,response); } else{ m="error"; session.setAttribute("usename",usename); session.setAttribute("password",password); request.getRequestDispatcher("/error.jsp").forward(request,response); } }catch(Exceptione){ e.printStackTrace(); } }}Error.jsp<metahttp-equiv="refresh"content="10;url=/servletLogin/login.jsp">您输入的顾客名为:<%=session.getAttribute("usename")%>密码为:<%=session.getAttribute("password")%><br><fontsize="4"color="red">十秒钟后返回登录页面</font>四:用javabean实现信息查询queryUser.jspimport="com.jsp.query.*,java.util.*";<% request.setCharacterEncoding("gb2312"); DBManagermdb=newDBManager(); Stringmark=(String)request.getParameter("mark"); Stringusername=(String)request.getParameter("username")==null?"":(String)request.getParameter("username"); Stringwork=(String)request.getParameter("work")==null?"":(String)request.getParameter("work");%><formaction="queryUser.jsp"method="post">顾客名称:<inputtype="text"name="username"/><inputtype="hidden"name="mark"value="0"/>顾客职业: <selectsize="1"name="work"> <optionvalue="">--请选择--</option> <optionselected="selected"value="学生">学生</option> <optionvalue="职工">职工</option> <optionvalue="经理">经理</option> <optionvalue="军人">军人</option> <optionvalue="自由人">自由人</option></select><inputtype="submit"value="查询"><inputtype="reset"value="重置"></form><% if(username!=""||work!=""){ Listlist=mdb.queryUser(username,work); if(!list.isEmpty()){ %> <tableborder="1"> 顾客名称 密码 性别 职业 爱好 个人阐明 <% for(inti=0;i<list.size();i++){ JavaBeanjb=(JavaBean)list.get(i); %> <%=jb.getName()%> <%=jb.getPassword()%><%=jb.getSex()%> <%=jb.getWork()%> <%=jb.getLove()%> <%=jb.getShow()%> <%}%></table> <%}else{%> <fontsize="4"color="red">您输入的查询条件为顾客名:<%=username%>,职业:<%=work%>,数据库钟没有与之相对应的信息</font> <%} }elseif(mark!=null&&mark.equals("0")){ %> <fontsize="4"color="red">请输入查询条件</font> <%}%>新建一种com.jsp.query包JavaBean.javapackagecom.jsp.query;publicclassJavaBean{ privateStringname; privateStringpassword; privateStringsex; privateStringwork; privateStringlove; privateStringshow; publicJavaBean(){} publicvoidsetName(Stringname){=name;} publicStringgetName(){returnname;} publicvoidsetPassword(Stringpassword){this.password=password;} publicStringgetPassword(){returnpassword;} publicvoidsetSex(Stringsex){this.sex=sex;} publicStringgetSex(){returnsex;} publicvoidsetWork(Stringwork){this.work=work;} publicStringgetWork(){returnwork;} publicvoidsetLove(Stringlove){this.love=love;} publicStringgetLove(){returnlove;} publicvoidsetShow(Stringshow){this.show=show;} publicStringgetShow(){returnshow;}} 在com.jsp.query包里面DBManager.javapackagecom.jsp.query;importjava.sql.Connection;importjava.sql.DriverManager;importjava.sql.PreparedStatement;importjava.sql.ResultSet;importjava.sql.SQLException;importjava.util.ArrayList;importjava.util.List;publicclassDBManager{ privateConnectionconn=null; privatePreparedStatementstmt=null; privateResultSetrs=null; publicDBManager(){ try{ Class.forName("sun.jdbc.odbc.JdbcOdbcDriver"); conn=DriverManager.getConnection("jdbc:odbc:webregister","sa",""); }catch(Exceptione){ System.out.print("error"); } } publicListqueryUser(Stringusername,Stringwork)throwsSQLException{ Listlist=newArrayList(); if(username==null||username.equals("")){ stmt=conn.prepareStatement("select*fromregister1where职业='"+work+"'"); rs=stmt.executeQuery(); while(rs.next()){ JavaBeanjb=newJavaBean(); jb.setName(rs.getString("姓名")); jb.setPassword(rs.getString("密码")); jb.setSex(rs.getString("性别")); jb.setWork(rs.getString("职业")); jb.setLove(rs.getString("爱好")); jb.setShow(rs.getString("个人阐明")); list.add(jb); } }elseif(work==null||work.equals("")){ stmt=conn.prepareStatement("select*fromregister1where姓名='"+username+"'"); //stmt.setString(1,"%"+username+"%"); rs=stmt.executeQuery(); while(rs.next()){ JavaBeanjb=newJavaBean(); jb.setName(rs.getString("姓名")); jb.setPassword(rs.getString("密码")); jb.setSex(rs.getString("性别")); jb.setWork(rs.getString("职业")); jb.setLove(rs.getString("爱好")); jb.setShow(rs.getString("个人阐明")); list.add(jb); } }else{ stmt=conn.prepareStatement("select*fromregister1where姓名='"+username+"'and职业='"+work+"'"); //stmt.setString(1,"%"+username+"%"); //stmt.setString(2,work); rs=stmt.executeQuery(); while(rs.next()){ JavaBeanjb=newJavaBean(); jb.setName(rs.getString("姓名")); jb.setPassword(rs.getString("密码")); jb.setSex(rs.getString("性别")); jb.setWork(rs.getString("职业")); jb.setLove(rs.getString("爱好")); jb.setShow(rs.getString("个人阐明")); list.add(jb); } } returnlist; }}五:文献上传Smartupload.jsp<FORMMETHOD="POST"ACTION="upload.jsp"ENCTYPE="multipart/form-data"><INPUTTYPE="FILE"NAME="FILE1"SIZE="50"><BR><INPUTTYPE="FILE"NAME="FILE2"SIZE="50"><BR><INPUTTYPE="FILE"NAME="FILE3"SIZE="50"><BR><INPUTTYPE="FILE"NAME="FILE4"SIZE="50"><BR><INPUTTYPE="SUBMIT"VALUE="Upload"></FORM>Upload.jspimport="com.jspsmart.upload.*"<% intcount=0; SmartUploadmySmartUpload=newSmartUpload(); mySmartUpload.initialize(pageContext); mySmartUpload.setTotalMaxFileSize(100000); try{ mySmartUpload.upload(); count=mySmartUpload.save("/upload"); out.println(count+"file(s)uploaded."); }catch(Exceptione){ out.println(e.toString()); }%>文献下载:Downloadhtml.jsp<ahref=”download.jsp”>download</a>Download.jsp<%@pagelanguage="java"import="com.jspsmart.upload.*"%><jsp:useBeanid="mySmartUpload"scope="page"class="com.jspsmart.upload.SmartUpload"/><% mySmartUpload.initialize(pageContext); mySmartUpload.downloadFile("d:\\df\\1.txt"); mySmartUpload.setContentDisposition("");%>六:留言板用javabean实现留言板Message.jspimport="com.jsp.query.*,java.util.*"<% request.setCharacterEncoding("gb2312"); DBManagermdb=newDBManager(); Stringtitle=(String)request.getParameter("title")==null?"":(String)request.getParameter("title"); Stringcontent=(String)request.getParameter("content")==null?"":(String)request.getParameter("content");%><formaction="message.jsp"method="post">留言标题:<inputtype="text"name="title"><br>留言内容:<textareaname="content"rows="10"cols="25"></textarea><br><inputtype="submit"value="提交"><inputtype="reset"value="重置"></form><% Listlist=mdb.queryUser(title,content); if(!list.isEmpty()){ for(inti=0;i<list.size();i++){ JavaBeanjb=(JavaBean)list.get(i); %> title:<fontsize="3"color="red"><%=jb.getTitle()%></font> content:<fontsize="3"color="red"> <%=jb.getContent()%></font> <br> <% } }%>在此中建立包:com.jsp.queryJavaBean.javapackagecom.jsp.query;publicclassJavaBean{ privateStringtitle; privateStringcontent; publicvoidsetTitle(Stringtitle){this.title=title;} publicStringgetTitle(){returntitle;} publicvoidsetContent(Stringcontent){this.content=c
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 【正版授权】 ISO/IEC TS 17021-2:2012 RU Conformity assessment - Requirements for bodies providing audit and certification of management systems - Part 2: Competence requirements for au
- 【正版授权】 ISO 7010:2019/Amd 9:2025 EN Graphical symbols - Safety colours and safety signs - Registered safety signs - Amendment 9
- 【正版授权】 IEC 61025:2006 EN-D Fault tree analysis (FTA)
- 【正版授权】 IEC 60884-2-6:2025 EXV-RLV EN Plugs and socket-outlets for household and similar purposes - Part 2-6: Particular requirements for switched socket-outlets with interlock for
- 【正版授权】 IEC 60670-22:2024 EXV-RLV EN Boxes and enclosures for electrical accessories for household and similar fixed electrical installations - Part 22: Particular requirements for
- 【正版授权】 IEC 60432-1:1999+AMD1:2005 CSV EN-D Incandescent lamps - Safety specifications - Part 1: Tungsten filament lamps for domestic and similar general lighting purposes
- 续保团队数据分析工作总结
- 2024年份11月携程平台客房销售不可抗力应对条款
- 班主任个人年度工作方案2025年演讲稿
- 2025年春季幼儿园幼师个人工作方案
- 人教版(新教材)高中物理选择性必修3第三章 热力学定律章末检测试卷(三)
- 2024-2025年度安徽省职业院校技能大赛(中职组)竞赛规程-农机检修(教师赛)
- 2022年中国联通智家工程师技能大赛题库-上(单选题部分)
- 《职业卫生》专题培训
- 汽修厂安全事故应急预案(4篇)
- DB52T 046-2018 贵州省建筑岩土工程技术规范
- 混凝土安全晨会(班前会)
- (完整版)减数分裂课件
- 露天矿山开采施工组织方案
- 人教版英语八年级下册 Unit1-Unit2检测试题
- 2024小学语文教学及说课课件:二年级下册《沙滩上的童话》
评论
0/150
提交评论