《JavaWeb程序开发入门》课后练习(含问题详解) 联系客服

发布时间 : 星期五 文章《JavaWeb程序开发入门》课后练习(含问题详解)更新完毕开始阅读b017a82077eeaeaad1f34693daef5ef7bb0d128c

实用标准文档

请按照以下要求设计一个实现下载资源防盗链的类。

1) 创建一个DownManagerServlet类,继承HttpServlet类。 2) 在doGet()方法中,判断是否可以进行资源下载

------答案------ 步骤如下:

1)创建一个DownManagerServlet类,使其继承HttpServlet类并重写该类的doGet()方法。

2)在doGet()方法中,使用HttpServletRequest对象的getHeader(\方法得到字段referer的值,并判断是否可以进行资源下载。 3)如果不能下载,则进入下载页。 具体代码实现如下:

public class DownManagerServlet extends HttpServlet {

public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {

response.setContentType(\ PrintWriter out = response.getWriter(); // 获取referer头的值

String referer = request.getHeader(\// 获取访问地址

String sitePart = \ if (referer != null && referer.startsWith(sitePart)) { } } }

// 处理正在下载的请求

out.println(\// 非法下载请求跳转到download.html页面

RequestDispatcher rd = request.getRequestDispatcher(\rd.forward(request, response);

} else {

第六章

【测一测】

1、 请使用Cookie技术实现显示用户上次访问时间的功能。 2、请设计一个类,使用Session技术实现购物车功能。

------第1题答案------

文案大全

实用标准文档

步骤如下:

1)创建一个LastAccessServlet类,使其继承HttpServlet类并重写该类的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 javax.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; public 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 != null && i < cookies.length; i++) { if (\// 如果cookie的名称为lastAccess,则获取该cookie的值 lastAccessTime = cookies[i].getValue(); break; } }

// 判断是否存在名称为lastAccess的cookie if (lastAccessTime == null) {

response.getWriter().print(\您是首次访问本站!!!\} else {

response.getWriter().print(\您上次的访问时间\}

// 创建cookie,将当前时间作为cookie的值发送给客户端

response.setContentType(\

文案大全

实用标准文档

Cookie cookie = new Cookie(\cookie.setMaxAge(60*60);//保存1小时 //访问chapter06下资源时回送cookie cookie.setPath(\// 发送 cookie

response.addCookie(cookie); } }

------第2题答案------ 步骤如下:

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, IOException {

// 获得用户购买的商品

String id = req.getParameter(\if (id == null) {

// 如果id为null,重定向到ListBookServlet页面 String url = \resp.sendRedirect(url); return; }

Book book = BookDB.getBook(id); // 创建或者获得用户的Session对象 HttpSession session = req.getSession(); // 从Session对象中获得用户的购物车 List cart = (List)

session.getAttribute(\

if (cart == null) {

// 首次购买,为用户创建一个购物车(List集合模拟购物车) cart = new ArrayList(); // 将购物城存入Session对象 session.setAttribute(\}

// 将商品放入购物车 cart.add(book);

// 创建Cookie存放Session的标识号

文案大全

实用标准文档

Cookie cookie = new Cookie(\cookie.setMaxAge(60 * 30); cookie.setPath(\resp.addCookie(cookie); // 重定向到购物车页面

String url = \resp.sendRedirect(url); } }

第七章

【测一测】

1、 请使用include标签编写两个JSP页面,

要求:输出b.jsp页面的内容,等待5秒,再输出a.jsp页面。 2、 已知一个datetime.jsp页面用于显示当前时间。请编写jsp

文件用于显示“欢迎来到传智播客,现在的时间是:”+当前时间。

------第1题答案------

a.jsp代码:

<%@ page contentType=\<%Thread.sleep(5000);%> a.jsp内的中文

b.jsp代码:

<%@ page contentType=\b.jsp内的中文

------第2题答案------

<%@page language=\

欢迎你

欢迎来到传智播客,现在的时间是: 文案大全