搜档网
当前位置:搜档网 › 《JavaWeb程序开发入门》课后练习(含答案)

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

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

第一章

【测一测】

1、请编写一个格式良好的XML文档,要求包含足球队一支,队名为Madrid,球员5人:Ronaldo、Casillas、Ramos、Modric、Benzema;篮球队一支,队名为Lakers,队员2人:Oneal,Bryant。要含有注释。

2、在XML Schema文档中,定义一个雇员的年龄为18~58周岁之间。请写出相应的元素声明。

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

<球队列表>

<球队类型="足球队">

<队名>Madrid

<队员>

<>Ronaldo

<>Casillas

<>Ramos

<>Modric

<>Benzema

<球队类型="篮球队">

<队名>Lakers

<队员>

<>Oneal

<>Bryant

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

第二章

【测一测】

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标签中进行如下配置即可:

welcome.html

第三章

【测一测】

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,通过它的功能记住上一次访问后的次数

具体代码实现如下:

import java.io.*;

import javax.servlet.*;

import javax.servlet.http.*;

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.getAttribute("times");

if (times == null) {

times = new Integer(1);

} else {

times = new Integer(times.intValue() + 1);

}

//设置编码,不然中文会变成乱码

resp.setContentType("text/html;charset=GB2312");

//得到输出流对象

PrintWriter out=resp.getWriter();

out.println("");</p><p>out.println("页面访问统计");</p><p>out.println("");

out.println("当前页面被访问了");

out.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 class MyServlet extends HttpServlet {

protected void doGet(HttpServletRequest request,

HttpServletResponse response) throws ServletException, IOException {

PrintWriter out = response.getWriter();

ServletConfig config = getServletConfig();

String param = config.getInitParameter("encoding");

out.println("encoding=" + param);

}

protected void doPost(HttpServletRequest request,

HttpServletResponse response) throws ServletException, IOException {

this.doGet(request, response);

}

}

第五章

【测一测】

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

1)创建一个DownManagerServlet类,继承HttpServlet类。

2)在doGet()方法中,判断是否可以进行资源下载

------答案------

步骤如下:

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

方法。

2)在doGet()方法中,使用HttpServletRequest对象的getHeader("referer")方法得

到字段referer的值,并判断是否可以进行资源下载。

3)如果不能下载,则进入下载页。

具体代码实现如下:

public class DownManagerServlet extends HttpServlet {

public void doGet(HttpServletRequest request, HttpServletResponse response)

throws ServletException, IOException {

response.setContentType("text/html;charset=utf-8");

PrintWriter out = response.getWriter();

// 获取referer头的值

String referer = request.getHeader("referer");

// 获取访问地址

String sitePart = "" + request.getServerName();

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

// 处理正在下载的请求

out.println("dealing download ...");

} else {

// 非法下载请求跳转到download.html页面

RequestDispatcher rd = 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;

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 {

response.setContentType("text/html;charset=utf-8");

/*

* 设定一个 cookie 的name : lastAccessTime

* 读取客户端发送cookie 获得用户上次的访问时间显示*/

String lastAccessTime = null;

// 获取所有的cookie,并将这些cookie存放在数组中

Cookie[] cookies = request.getCookies();

for (int i = 0; cookies != null && i < cookies.length; 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的值发送给客户端

相关主题