JavaWeb程序开发入门课后练习含答案.docx
- 文档编号:23383806
- 上传时间:2023-05-16
- 格式:DOCX
- 页数:15
- 大小:19.58KB
JavaWeb程序开发入门课后练习含答案.docx
《JavaWeb程序开发入门课后练习含答案.docx》由会员分享,可在线阅读,更多相关《JavaWeb程序开发入门课后练习含答案.docx(15页珍藏版)》请在冰豆网上搜索。
JavaWeb程序开发入门课后练习含答案
第一章
【测一测】
1、请编写一个格式良好的XML文档,要求包含足球队一支,队名为Madrid,球员5人:
Ronaldo、Casillas、Ramos、Modric、Benzema;篮球队一支,队名为Lakers,队员2人:
Oneal,Bryant。
要含有注释。
2、在XMLSchema文档中,定义一个雇员的年龄为18~58周岁之间。
请写出相应的元素声明。
------第1题答案------
xmlversion="1.0"encoding="gb2312"standalone="yes"?
>
<球队列表>
--足球队Madrid-->
<球队类型="足球队">
<队名>Madrid队名>
<队员>
<>Ronaldo>
<>Casillas>
<>Ramos>
<>Modric>
<>Benzema>
队员>
球队>
--篮球队Lakers-->
<球队类型="篮球队">
<队名>Lakers队名>
<队员>
<>Oneal>
<>Bryant>
队员>
球队>
球队列表>
------第2题答案------
elementname="age"> simpleType> restrictionbase="xs: integer"> minInclusivevalue="18"/> maxInclusivevalue="58"/> restriction> simpleType> element> 第二章 【测一测】 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文件放置tomcat\conf\Catalina\localhost ------第2题答案------ 在web-app标签中进行如下配置即可: 第三章 【测一测】 1、简述HTTP1.1协议的通信过程? 2、简述POST请求和GET请求有什么不同? ------第1题答案------ 1、客户端与服务器端建立TCP连接。 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加1 3)获取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); } //设置编码,不然中文会变成乱码 resp.setContentType("text/html;charset=GB2312"); //得到输出流对象 PrintWriterout=resp.getWriter(); out.println(" out.println("页面访问统计"); out.println("
out.println("当前页面被访问了");
out.println("
//设置属性,将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);
}
}
第五章
【测一测】
请按照以下要求设计一个实现下载资源防盗链的类。
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=""+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题答案------
步骤如下:
1)创建一个LastAccessServlet类,使其继承HttpServlet类并重写该类的doGet()方法。
2)在doGet()方法中,使用request.getCookies()得到所有cookie形成的cookie数组,并进行遍历。
3)如果遍历过程中找到cookie信息中存在lastAccess属性则输出,否则创建cookie对象,设置值为当前时间并发送给客户端。
4)cookie的存活时间为1小时,访问当前应用中的所有资源客户端都回送cookie信息。
具体代码实现如下:
package.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&&i if("lastAccess".equals(cookies[i].getName())){ //如果cookie的名称为lastAccess,则获取该cookie的值 lastAccessTime=cookies[i].getValue(); break; } } //判断是否存在名称为lastAccess的cookie if(lastAccessTime==null){ response.getWriter().print("您是首次访问本站! ! ! "); }else{ response.getWriter().print("您上次的访问时间"+lastAccessTime); } //创建cookie,将当前时间作为cookie的值发送给客户端 Cookiecookie=newCookie("lastAccess",newDate().toLocaleString()); cookie.setMaxAge(60*60);//保存1小时 //访问chapter06下资源时回送cookie cookie.setPath("/chapter06"); //发送cookie response.addCookie(cookie); } } ------第2题答案------ 步骤如下: 1)创建一个PurchaseServlet类,使其继承HttpServlet类并重写该类的doGet()方法。 2)在doGet()方法中,使用request.getSession()实现购物车。 3)将session的id保存到cookie中。 4)重定向到购物车页面。 具体代码实现如下: publicclassPurchaseServletextendsHttpServlet{ publicvoiddoGet(HttpServletRequestreq, HttpServletResponseresp) throwsServletException,IOException{ //获得用户购买的商品 Stringid=req.getParameter("id"); if(id==null){ //如果id为null,重定向到ListBookServlet页面 Stringurl="/chapter06/ListBookServlet"; resp.sendRedirect(url); return; } Bookbook=BookDB.getBook(id); //创建或者获得用户的Session对象 HttpSessionsession=req.getSession(); //从Session对象中获得用户的购物车 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"); 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内的中文 includepage="a.jsp"flush="true"/> ------第2题答案------ <%pagelanguage="java"contentType="text/html;charset=UTF-8"%>
欢迎来到传智播客,现在的时间是:
<%includefile="datetime.jsp"%>
第八章
【测一测】
1、请编写一个类,实现通过对象得到完整的“包.类”名称的功能。
2、设计一个程序使用BeanUtils工具为Person对象(JavaBean类)赋值。
1)直接生成User对象。
2)使用BeanUtils工具为name属性赋值”youjun”,age赋值为31。
3)使用BeanUtils工具取出属性值,并在控制台输出。
------第1题答案------
package.itcast.javabean;
classCs{}
publicclassGetClassNameDemo{
publicstaticvoidmain(String[]args){
Cscs=newCs();
System.out.println(Cs.getClass().getName());
}
}
------第2题答案------
package.itcast.chapter08.beanutils;
importmons.beanutils.BeanUtils;
import.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+"岁");
}
}
第九章
【测一测】
学习完前面的内容,下面来动手测一测吧,请思考以下问题:
1、简述什么是MVC设计模式?
2、简述MVC设计模式中模型(Model)模块的作用?
------第1题答案------
MVC模式将软件程序分为3个核心模块:
模型(Model)、视图(View)和控制器(Controller)
------第2题答案------
1、管理应用程序的业务数据
2、定义访问控制和修改这些数据的业务规则
3、为视图提供查询模型状态的方法
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- JavaWeb 程序 开发 入门 课后 练习 答案