• 38.31 KB
  • 2022-04-22 11:48:38 发布

《JavaWeb程序开发入门》课后练习(含答案).docx

  • 10页
  • 当前文档由用户上传发布,收益归属用户
  1. 1、本文档共5页,可阅读全部内容。
  2. 2、本文档内容版权归属内容提供方,所产生的收益全部归内容提供方所有。如果您对本文有版权争议,可选择认领,认领后既往收益都归您。
  3. 3、本文档由用户上传,本站不保证质量和数量令人满意,可能有诸多瑕疵,付费之前,请仔细先通过免费阅读内容等途径辨别内容交易风险。如存在严重挂羊头卖狗肉之情形,可联系本站下载客服投诉处理。
  4. 文档侵权举报电话:19940600175。
'博学谷——让IT教学更简单,让IT学习更有效第一章【测一测】1、请编写一个格式良好的XML文档,要求包含足球队一支,队名为Madrid,球员5人:Ronaldo、Casillas、Ramos、Modric、Benzema;篮球队一支,队名为Lakers,队员2人:Oneal,Bryant。要含有注释。2、在XMLSchema文档中,定义一个雇员的年龄为18~58周岁之间。请写出相应的元素声明。------第1题答案------<球队列表><球队类型="足球队"><队名>Madrid<队员><姓名>Ronaldo<姓名>Casillas<姓名>Ramos<姓名>Modric<姓名>Benzema<球队类型="篮球队"><队名>Lakers<队员><姓名>Oneal<姓名>Bryant------第2题答案------ 博学谷——让IT教学更简单,让IT学习更有效第二章【测一测】1、如何将web应用发布到tomcat上localhost主机,请写出至少3种实现方式?2、请问在chapter02应用的web.xml文件中进行哪些配置,可以将welcome.html页面配置成该应用的默认页面?------第1题答案------1、直接将web应用部署到tomcat/webapps下2、将web应用通过tomcat/conf/server.xml进行配置3、创建一个xml文件,并配置web应用信息,将xml文件放置tomcatconfCatalinalocalhost------第2题答案------在web-app标签中进行如下配置即可:welcome.html第三章【测一测】1、简述HTTP1.1协议的通信过程?2、简述POST请求和GET请求有什么不同?------第1题答案------1、客户端与服务器端建立TCP连接。 博学谷——让IT教学更简单,让IT学习更有效2、客户端可以向服务器端发送多个请求,并且在发送下个请求时,无需等待上次请求的返回结果。3、服务器必须按照接受客户端请求的先后顺序依次返回响应结果。4、客户端发出关闭TCP连接的请求5、服务器端关闭TCP连接------第2题答案------1、POST传输数据大小无限制2、POST比GET请求方式更安全第四章【测一测】1、编写一个servlet,实现统计网站被访问次数的功能。2、请编写一段程序,使程序能读取该servlet的配置信息,从中获得参数名为encoding对应的参数值,并输出到页面上。------第1题答案------步骤如下:1)新建一个类ShowTimesServlet继承HttpServlet,重写doGet和doPost方法2)在doPost方法中调用doGet方法,在doGet方法中实现统计网站被访问次数的功能,用户每请求一次servlet,使访问次数times加13)获取ServletContext,通过它的功能记住上一次访问后的次数具体代码实现如下:importjava.io.*;importjavax.servlet.*;importjavax.servlet.http.*;publicclassShowTimesServletextendsHttpServlet{privatestaticfinallongserialVersionUID=1L;protectedvoiddoGet(HttpServletRequestreq,HttpServletResponseresp)throwsServletException,IOException{ServletContextcontext=getServletContext();Integertimes=(Integer)context.getAttribute("times");if(times==null){times=newInteger(1);}else{times=newInteger(times.intValue()+1);}//设置编码,不然中文会变成乱码 博学谷——让IT教学更简单,让IT学习更有效resp.setContentType("text/html;charset=GB2312");//得到输出流对象PrintWriterout=resp.getWriter();out.println("");out.println("页面访问统计");out.println("");out.println("当前页面被访问了");out.println(""+times+"次");//设置属性,将times保存到当前的上下文中context.setAttribute("times",times);}protectedvoiddoPost(HttpServletRequestreq,HttpServletResponseresp)throwsServletException,IOException{this.doGet(req,resp);}}------第2题答案------importjava.io.*;importjavax.servlet.*;importjavax.servlet.http.*;publicclassMyServletextendsHttpServlet{protectedvoiddoGet(HttpServletRequestrequest,HttpServletResponseresponse)throwsServletException,IOException{PrintWriterout=response.getWriter();ServletConfigconfig=getServletConfig();Stringparam=config.getInitParameter("encoding");out.println("encoding="+param);}protectedvoiddoPost(HttpServletRequestrequest,HttpServletResponseresponse)throwsServletException,IOException{this.doGet(request,response);}}第五章【测一测】 博学谷——让IT教学更简单,让IT学习更有效请按照以下要求设计一个实现下载资源防盗链的类。1)创建一个DownManagerServlet类,继承HttpServlet类。2)在doGet()方法中,判断是否可以进行资源下载------答案------步骤如下:1)创建一个DownManagerServlet类,使其继承HttpServlet类并重写该类的doGet()方法。2)在doGet()方法中,使用HttpServletRequest对象的getHeader("referer")方法得到字段referer的值,并判断是否可以进行资源下载。3)如果不能下载,则进入下载页。具体代码实现如下:publicclassDownManagerServletextendsHttpServlet{publicvoiddoGet(HttpServletRequestrequest,HttpServletResponseresponse)throwsServletException,IOException{response.setContentType("text/html;charset=utf-8");PrintWriterout=response.getWriter();//获取referer头的值Stringreferer=request.getHeader("referer");//获取访问地址StringsitePart="http://"+request.getServerName();if(referer!=null&&referer.startsWith(sitePart)){//处理正在下载的请求out.println("dealingdownload...");}else{//非法下载请求跳转到download.html页面RequestDispatcherrd=request.getRequestDispatcher("/download.html");rd.forward(request,response);}}}第六章【测一测】1、请使用Cookie技术实现显示用户上次访问时间的功能。2、请设计一个类,使用Session技术实现购物车功能。------第1题答案------步骤如下: 博学谷——让IT教学更简单,让IT学习更有效1)创建一个LastAccessServlet类,使其继承HttpServlet类并重写该类的doGet()方法。2)在doGet()方法中,使用request.getCookies()得到所有cookie形成的cookie数组,并进行遍历。3)如果遍历过程中找到cookie信息中存在lastAccess属性则输出,否则创建cookie对象,设置值为当前时间并发送给客户端。4)cookie的存活时间为1小时,访问当前应用中的所有资源客户端都回送cookie信息。具体代码实现如下:packagecn.itcast.chapter06.cookie.example;importjava.io.IOException;importjava.util.Date;importjavax.servlet.ServletException;importjavax.servlet.http.Cookie;importjavax.servlet.http.HttpServlet;importjavax.servlet.http.HttpServletRequest;importjavax.servlet.http.HttpServletResponse;publicclassLastAccessServletextendsHttpServlet{privatestaticfinallongserialVersionUID=1L;publicvoiddoGet(HttpServletRequestrequest,HttpServletResponseresponse)throwsServletException,IOException{response.setContentType("text/html;charset=utf-8");/**设定一个cookie的name:lastAccessTime*读取客户端发送cookie获得用户上次的访问时间显示*/StringlastAccessTime=null;//获取所有的cookie,并将这些cookie存放在数组中Cookie[]cookies=request.getCookies();for(inti=0;cookies!=null&&icart=(List)session.getAttribute("cart");if(cart==null){//首次购买,为用户创建一个购物车(List集合模拟购物车)cart=newArrayList();//将购物城存入Session对象session.setAttribute("cart",cart);}//将商品放入购物车cart.add(book);//创建Cookie存放Session的标识号Cookiecookie=newCookie("JSESSIONID",session.getId());cookie.setMaxAge(60*30);cookie.setPath("/chapter06"); 博学谷——让IT教学更简单,让IT学习更有效resp.addCookie(cookie);//重定向到购物车页面Stringurl="/chapter06/CartServlet";resp.sendRedirect(url);}}第七章【测一测】1、请使用include标签编写两个JSP页面,要求:输出b.jsp页面的内容,等待5秒,再输出a.jsp页面。2、已知一个datetime.jsp页面用于显示当前时间。请编写jsp文件用于显示“欢迎来到传智播客,现在的时间是:”+当前时间。------第1题答案------a.jsp代码:<%@pagecontentType="text/html;charset=UTF-8"%><%Thread.sleep(5000);%>a.jsp内的中文
b.jsp代码:<%@pagecontentType="text/html;charset=UTF-8"%>b.jsp内的中文
------第2题答案------<%@pagelanguage="java"contentType="text/html;charset=UTF-8"%>欢迎你欢迎来到传智播客,现在的时间是:<%@includefile="datetime.jsp"%> 博学谷——让IT教学更简单,让IT学习更有效第八章【测一测】1、请编写一个类,实现通过对象得到完整的“包.类”名称的功能。2、设计一个程序使用BeanUtils工具为Person对象(JavaBean类)赋值。1)直接生成User对象。2)使用BeanUtils工具为name属性赋值”youjun”,age赋值为31。3)使用BeanUtils工具取出属性值,并在控制台输出。------第1题答案------packagecn.itcast.javabean;classCs{}publicclassGetClassNameDemo{publicstaticvoidmain(String[]args){Cscs=newCs();System.out.println(Cs.getClass().getName());}}------第2题答案------packagecn.itcast.chapter08.beanutils;importorg.apache.commons.beanutils.BeanUtils;importcn.itcast.chapter08.javabean.Person;publicclassBeanUtilsDemo01{publicstaticvoidmain(String[]args)throwsException{Personp=newPerson();//使用BeanUtils为属性赋值BeanUtils.setProperty(p,"name","youjun");BeanUtils.setProperty(p,"age",31);//使用BeanUtils获取属性值Stringname=BeanUtils.getProperty(p,"name");Stringage=BeanUtils.getProperty(p,"age");System.out.println("名字是"+name+",今年"+age+"岁");}} 博学谷——让IT教学更简单,让IT学习更有效第九章【测一测】学习完前面的内容,下面来动手测一测吧,请思考以下问题:1、简述什么是MVC设计模式?2、简述MVC设计模式中模型(Model)模块的作用?------第1题答案------MVC模式将软件程序分为3个核心模块:模型(Model)、视图(View)和控制器(Controller)------第2题答案------1、管理应用程序的业务数据2、定义访问控制和修改这些数据的业务规则3、为视图提供查询模型状态的方法'