Web数据库学生实验报告JDBC部分版.docx
Web数据库技术教师实验指导手册及评分标准院系:信息科学与技术学院专业:信息管理与信息系统班级:信A1321/22任课教师:张海实验报告(二)院系:信息学院课程名称:Web数据库技术日期:班级信息A1321姓名邹文强专业信息管理与信息系统学号16实验室607实验名称Servlet应用成绩评定教师签名实验目的1、掌握SerVlet的配置方法2、掌握Web服务器的配置过程3、掌握Servlet类的用法4、掌握SeSSiOn等对象的用法5、掌握请求转发功能的应用6、掌握SerIVetConfig上下文的用法实验内容SerVIet配置、SerVIet设计、会话管理、请求流转、上下文应用1、请建立一个SerVlet类用于显示当前的系统时间。写出它的Url配置写法20分。HI Padcjg Hf) - 5 IQMyFirstServIetjo答案:SerVIet类实验代码:.V / OayOlr I上src史 ServietOl lT) DemolServIei Ql Demo2Servle1 I J2) Demo3Servle ® Demo4Servlei 7) MyFirstServIei SQjnfigServIe I A JRE System Library ; 0 Java EE 5 Libraries & WebRoot jdbc4 " iir I. mag J Snp D H 与Ial应/回窗Dpackageservlecl;-*importjava.io.IOException;|publicclassMFirstServletextendsHttpServlecpublicvoiddoGet(HttpServletRecjuestrequest,HrtpservletResponseresponse)throwsServletExceptionrIOExceptionrequest.SecCharaccerEncoding(tutf-8w);response.SecCharacterEncoding(utf-8");response.gerWrter().wHixe(系统当前时间:w÷newDare().();publicvoiddoPosc(HttpServletRequesrrequest,HtrpservletResponseresponse)throwsServletExceptionrIOExceptiondoGet(request,response);实验结果:文件(D娓或回至看Ql改藏天住)工具烈助(三)现在的时间:2015402710:27:29rl配置:<servlet-mapping><servlet-name>MyFirstServlet<servlet-nane><url-pattern>servletMyFirstServlet<url-pattern><servlec-mapping>2、领会多用户并发访问的机制,请建立一个ServletwServletUsersw类,在该类的成员代码如下:publicclassServeltUsersextendsServletprivateIntegerx=l;publicvoiddoGet(ServletRequestrequest,ServletResponseresponse)throwsServletExceptionzIOExceptionthis.doPost(request,response);publicvoiddoPost(ServletRequestrequest,ServletResponseresponse)throwsServletException,IOExceptionresponse.SetContentType(,texthtml");response.SetCharacterEncoding(,utf-8n);PrintWriterout=response.getWriter();out.println(',<!DOCTYPEHTMLPUBLIC-W3CDTDHTML4.01TransitionalEN">");out.printin(n<HTML>");out.printin(,<HEAD><TITLE>AServlet<TITLE><HEAD>);out.println("<BODY>);OUt.printin("当前X的值是”+x);out.flush();synchronized(x)x+;Threadthread=Thread.CurrentThread();try(thread.sleep(1000*5);catch(InterruptedExceptione)/TODOAuto-generatedcatchblocke.printStackTrace();)OUt.printin("当前SerIVet实例阻塞5秒后,当前X的值是“+x);out.printin(,'<BODY>);out.printin(,'<HTML>);out.flush();out.close();请在5秒内用两个浏览器窗口浏览该Servlet类,看看效果如何。为什么是这个效果!20分。答:效果:C J中国移动Wl 0 A ServJet ' Fl加舞浏览器一:Ocalhost-文件但编行(£)登看Q)收藏夹Hfl(I)犁助(W当前X的值是1当前SeriVet实例阻塞5秒后,当前X的值是2浏览器二:360£全浏郎7.1文件查看收藏工具÷COQlocalhostOvQ中Io收藏厘手机收蕨夫丁谷默密网址大全Q好搜圄百度产九江学院»器扩展用银国用译,ft三O缁好帆IAServlet+当前X的值是2当前SerIVet实例阻塞5秒后,当前X的值是3原因:多线程并发问题,在第一次浏览器中当前X的值被赋值为1,经过运行锁定子句:synchronized(x)和i+子句后,而经过5秒睡眠后,在输出X的值会变成2;在第二次浏览器中由于是定义的是全局变量x=l,本来经过正常运行最终效果会和浏览器去1一样输出的最终值是3,但是中间有了锁定子句:SynChr<mized(x)这就使得输出的值发生了变化,当在运行浏览器1时,此时的浏览器二其实也在开始运行,它获得了浏览器一中的输出值x=2,而在开始运行输出浏览器二中的值时,因为浏览器一中已经使得变量X的值为2啦,所以浏览器二中的X初始化值也就变成了2,所以经过5秒睡眠后,输出的当前值变成了3。3、请设计一个SerVle3当连续三次访问该SerVIet是分别向客户输出:第1次:用户浏览器中显示:蓝色颜色的”联系访问中的第1次”第2次:用户浏览器中显示:红色颜色的“联系访问中的第2次”第3次:用户浏览器中显示:黑色颜色的“联系访问中的第3次”答:packageservlet2;importjava.io.IOException;importjava.io.PrintWriter;importetException;Servlet;ServletRequest;ServletResponse;importjavax.servlet.importjavax.servlet.importjavax.servlet.publicclassYanSeextendsServletprivateIntegerx=0;publicvoiddoGet(ServletRequestrequest,ServletResponseresponse)throwsServletException,IOExceptionthis.doPost(request,response);)ptblicvoiddoPost(ServletRequestrequest,ServletResponseresponse)throwsServletException,IOExceptionresponse.SetContentType(,texthtml);response.SetCharacterEncoding(,utf-8u);PrintWriterout=response.getWriter();out.printin(,<!DOCTYPEHTMLPUBLIC,-W3CDTDHTML4.01TransitionalEN',>);out.printin(',<HTML>);out.printin(<HEAD><TITLE>AServlet<TITLE><HEAD>n);out.printin(<BODY>m);out.flush();synchronized(x)x+;if(x=l)(out.printin(,<fontcolor=blue>,');)if(x=2)out.printin(',<fontcolor=red>,');if(x=3)out.printin(,<fontcolor=black>);)OUt.println("联系访问中的第”+x+“次”);out.printin(',<BODY>);out.printin(',<HTML>');out.flush();out.close();)4、请将提供的工程解压后添加到myeclipse工作区中,打开mysql将工程中的db目录下的”导入到InySql数据库中。在工程的ServiceDao包中有一个StudentServicesDao,请根据代码中注释的功能结合jdbc中da。模式的设计要求将publicstudentlogin(Stringstuld,Stringname)throwsmyException(Connectionconn=null;StudentDaostuDao=null;try(Conn=ConnectionFactory.getConnection();stuDao=newStudentDaoImpl(conn);Stringsql=',select*from学生基本情况表”;StringCOnditiOn=”学号_Stu工d=?and姓名_name=?”;if(condition!=null&&!.equals(condition)sql=sql+"where"+condition;return(student)executeUpdate(sql);)catch(Exceptione)try(conn.rollback();catch(SQLExceptionel)/TODOAuto-generatedcatchblockel.PrintStackTrace();)/TODOAuto-generatedcatchblocke.PrintStackTrace();finallyif(StuDao!=null)StuDao.close();returnnull;)privatestudentexecuteUpdate(Stringsql)/TODOAuto-gene