《《JavaWeb程序开发入门》课后练习.docx》由会员分享,可在线阅读,更多相关《《JavaWeb程序开发入门》课后练习.docx(13页珍藏版)》请在三一办公上搜索。
1、JavaWeb程序开发入门课后练习博学谷让IT教学更简单,让IT学习更有效 第一章 1、请编写一个格式良好的XML文档,要求包含足球队一支,队名为Madrid,球员5人:Ronaldo、Casillas、Ramos、Modric、Benzema;篮球队一支,队名为Lakers,队员2人:Oneal,Bryant。要含有注释。 2、在XML Schema文档中,定义一个雇员的年龄为1858周岁之间。请写出相应的元素声明。 -第1题答案- Madrid Ronaldo Casillas Ramos Modric Benzema Lakers Oneal Bryant -第2题答案- 博学谷让IT教
2、学更简单,让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.htm
3、l 第三章 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、请编写一段程序,使程序能读取该
4、servlet的配置信息,从中获得参数名为encoding对应的参数值,并输出到页面上。 -第1题答案- 步骤如下: 1)新建一个类ShowTimesServlet继承HttpServlet,重写doGet和doPost方法 2)在doPost方法中调用doGet方法,在doGet方法中实现统计网站被访问次数的功能,用户每请求一次servlet,使访问次数times加1 3)获取ServletContext,通过它的功能记住上一次访问后的次数 具体代码实现如下: import java.io.*; import javax.servlet.*; import javax.servlet.htt
5、p.*; public class ShowTimesServlet extends HttpServlet private static final long serialVersionUID = 1L; protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException ServletContext context = getServletContext; Integer times = (Integer) context.getAttribu
6、te(times); if (times = null) /设置编码,不然中文会变成乱码 times = new Integer(1); times = new Integer(times.intValue + 1); else 博学谷让IT教学更简单,让IT学习更有效 resp.setContentType(text/html;charset=GB2312); /得到输出流对象 PrintWriter out=resp.getWriter; out.println(); out.println(页面访问统计); out.println(); out.println(当前页面被访问了); ou
7、t.println(+times+次); /设置属性,将times保存到当前的上下文中 context.setAttribute(times,times); protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException this.doGet(req, resp); -第2题答案- import java.io.*; import javax.servlet.*; import javax.servlet.http.*; public cla
8、ss MyServlet extends HttpServlet protected void doGet(HttpServletRequest request, protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException this.doGet(request, response); HttpServletResponse response) throws ServletException, IOException Pri
9、ntWriter out = response.getWriter; ServletConfig config = getServletConfig; String param = config.getInitParameter(encoding); out.println(encoding= + param); 第五章 博学谷让IT教学更简单,让IT学习更有效 请按照以下要求设计一个实现下载资源防盗链的类。 1) 创建一个DownManagerServlet类,继承HttpServlet类。 2) 在doGet方法中,判断是否可以进行资源下载 -答案- 步骤如下: 1)创建一个DownMan
10、agerServlet类,使其继承HttpServlet类并重写该类的doGet方法。 2)在doGet方法中,使用HttpServletRequest对象的getHeader(referer)方法得到字段referer的值,并判断是否可以进行资源下载。 3)如果不能下载,则进入下载页。 具体代码实现如下: public class DownManagerServlet extends HttpServlet public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletExc
11、eption, IOException response.setContentType(text/html;charset=utf-8); PrintWriter out = response.getWriter; / 获取referer头的值 String referer = request.getHeader(referer); / 获取访问地址 String sitePart = http:/ + request.getServerName; if (referer != null & referer.startsWith(sitePart) / 处理正在下载的请求 out.printl
12、n(dealing download .); else / 非法下载请求跳转到download.html页面 RequestDispatcher rd = request.getRequestDispatcher(/download.html); rd.forward(request, response); 第六章 1、 请使用Cookie技术实现显示用户上次访问时间的功能。 2、请设计一个类,使用Session技术实现购物车功能。 -第1题答案- 步骤如下: 博学谷让IT教学更简单,让IT学习更有效 1)创建一个LastAccessServlet类,使其继承HttpServlet类并重写该类
13、的doGet方法。 2)在doGet方法中,使用request.getCookies得到所有cookie形成的cookie数组,并进行遍历。 3)如果遍历过程中找到cookie信息中存在lastAccess属性则输出,否则创建cookie对象,设置值为当前时间并发送给客户端。 4)cookie的存活时间为1小时,访问当前应用中的所有资源客户端都回送cookie信息。 具体代码实现如下: package cn.itcast.chapter06.cookie.example; import java.io.IOException; import java.util.Date; import jav
14、ax.servlet.ServletException; import javax.servlet.http.Cookie; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; public class LastAccessServlet extends HttpServlet private static final long serialVersionUID = 1L; publi
15、c void doGet(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException /* * 设定一个 cookie 的name : lastAccessTime * 读取客户端发送cookie 获得用户上次的访问时间显示*/ String lastAccessTime = null; / 获取所有的cookie,并将这些cookie存放在数组中 Cookie cookies = request.getCookies; for (int i = 0; cookies
16、 != null & i cookies.length; i+) if (lastAccess.equals(cookiesi.getName) / 如果cookie的名称为lastAccess,则获取该cookie的值 lastAccessTime = cookiesi.getValue; break; / 判断是否存在名称为lastAccess的cookie if (lastAccessTime = null) response.getWriter.print(您是首次访问本站!); else response.getWriter.print(您上次的访问时间+lastAccessTime
17、); / 创建cookie,将当前时间作为cookie的值发送给客户端 Cookie cookie = new Cookie(lastAccess,new Date.toLocaleString); cookie.setMaxAge(60*60);/保存1小时 /访问chapter06下资源时回送cookie response.setContentType(text/html;charset=utf-8); 博学谷让IT教学更简单,让IT学习更有效 cookie.setPath(/chapter06); / 发送 cookie response.addCookie(cookie); -第2题答
18、案- 步骤如下: 1)创建一个PurchaseServlet类,使其继承HttpServlet类并重写该类的doGet方法。 2)在doGet方法中,使用request.getSession实现购物车。 3)将session的id保存到cookie中。 4)重定向到购物车页面。 具体代码实现如下: public class PurchaseServlet extends HttpServlet public void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOExcept
19、ion / 获得用户购买的商品 String id = req.getParameter(id); if (id = null) / 如果id为null,重定向到ListBookServlet页面 String url = /chapter06/ListBookServlet; resp.sendRedirect(url); return; Book book = BookDB.getBook(id); / 创建或者获得用户的Session对象 HttpSession session = req.getSession; / 从Session对象中获得用户的购物车 List cart = (Li
20、st) session.getAttribute(cart); if (cart = null) / 首次购买,为用户创建一个购物车(List集合模拟购物车) cart = new ArrayList; / 将购物城存入Session对象 session.setAttribute(cart, cart); / 将商品放入购物车 cart.add(book); / 创建Cookie存放Session的标识号 Cookie cookie = new Cookie(JSESSIONID, session.getId); cookie.setMaxAge(60 * 30); cookie.setPat
21、h(/chapter06); 博学谷让IT教学更简单,让IT学习更有效 resp.addCookie(cookie); / 重定向到购物车页面 String url = /chapter06/CartServlet; resp.sendRedirect(url); 第七章 1、 请使用include标签编写两个JSP页面, 要求:输出b.jsp页面的内容,等待5秒,再输出a.jsp页面。 2、 已知一个datetime.jsp页面用于显示当前时间。请编写jsp 文件用于显示“欢迎来到传智播客,现在的时间是:”+当前时间。 -第1题答案- a.jsp代码: a.jsp内的中文 b.jsp代码:
22、b.jsp内的中文 -第2题答案- 欢迎你 欢迎来到传智播客,现在的时间是: 博学谷让IT教学更简单,让IT学习更有效 第八章 1、请编写一个类,实现通过对象得到完整的“包.类”名称的功能。 2、设计一个程序使用BeanUtils工具为Person对象赋值。 1)直接生成User对象。 2)使用BeanUtils工具为name属性赋值”youjun”,age赋值为31。 3)使用BeanUtils工具取出属性值,并在控制台输出。 -第1题答案- package cn.itcast.javabean; class Cs public class GetClassNameDemo public s
23、tatic void main(String args) Cs cs = new Cs ; System.out.println(Cs. getClass.getName); -第2题答案- package cn.itcast.chapter08.beanutils; import mons.beanutils.BeanUtils; import cn.itcast.chapter08.javabean.Person; public class BeanUtilsDemo01 public static void main(String args) throws Exception Perso
24、n p = new Person; /使用BeanUtils为属性赋值 BeanUtils.setProperty(p, name, youjun); BeanUtils.setProperty(p, age, 31); /使用BeanUtils获取属性值 String name = BeanUtils.getProperty(p, name); String age = 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、为视图提供查询模型状态的方法