《JavaWeb程序开发入门》课后练习含答案文档格式.docx
- 文档编号:19370960
- 上传时间:2023-01-05
- 格式:DOCX
- 页数:12
- 大小:21.01KB
《JavaWeb程序开发入门》课后练习含答案文档格式.docx
《《JavaWeb程序开发入门》课后练习含答案文档格式.docx》由会员分享,可在线阅读,更多相关《《JavaWeb程序开发入门》课后练习含答案文档格式.docx(12页珍藏版)》请在冰豆网上搜索。
篮球队”〉
Lakers<
Oneal<
Bryant〈/姓名〉
〈/队员>
/球队〉
<
/球队列表>
-—--——第2题答案—-———-
〈xs:
elementname=”age"
xs:
simpleType〉
restrictionbase=”xs:
integer"
>
minInclusivevalue="
18”/>
〈xs:
maxInclusivevalue="
58”/>
/xs:
restriction>
〈/xs:
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标签中进行如下配置即可:
〈welcome-file-list〉
〈welcome-file〉welcome.html<
/welcome-file>
/welcome-file—list>
第三章
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(”〈html>
〈head〉〈title〉”);
out.println(”页面访问统计”);
println(”<
/title>
〈/head>
body〉”);
println(”当前页面被访问了"
);
println("
〈fontcolor=redsize=20>
”+times+"
〈/font>
次”);
//设置属性,将times保存到当前的上下文中
context.setAttribute(”times"
times);
}
protectedvoiddoPost(HttpServletRequestreq,HttpServletResponseresp)
throwsServletException,IOException{
this.doGet(req,resp);
}
}
-——-—-第2题答案-——-—-
importjava.io.*;
importjavax。
servlet。
*;
http.*;
publicclassMyServletextendsHttpServlet{
protectedvoiddoGet(HttpServletRequestrequest,
HttpServletResponseresponse)throwsServletException,IOException{
PrintWriterout=response。
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。
text/html;
charset=utf-8”);
PrintWriterout=response.getWriter();
//获取referer头的值
Stringreferer=request。
getHeader("
referer”);
//获取访问地址
StringsitePart="
http:
//"
+request。
getServerName();
if(referer!
=null&&
referer.startsWith(sitePart)){
//处理正在下载的请求
out。
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信息。
具体代码实现如下:
packagecn.itcast。
chapter06.cookie.example;
importjava。
io.IOException;
importjava.util.Date;
ServletException;
Cookie;
http.HttpServlet;
http.HttpServletRequest;
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〈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的值发送给客户端
Cookiecookie=newCookie("
lastAccess"
newDate()。
toLocaleString());
cookie。
setMaxAge(60*60);
//保存1小时
//访问chapter06下资源时回送cookie
cookie.setPath("
/chapter06"
//发送cookie
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〈Book〉cart=(List)
session。
getAttribute("
cart"
if(cart==null){
//首次购买,为用户创建一个购物车(List集合模拟购物车)
cart=newArrayList〈Book>
();
//将购物城存入Session对象
session。
setAttribute("
cart);
//将商品放入购物车
cart。
add(book);
//创建Cookie存放Session的标识号
Cookiecookie=newCookie(”JSESSIONID"
session.getId());
cookie.setMaxAge(60*30);
resp。
addCookie(cookie);
//重定向到购物车页面
Stringurl=”/chapter06/CartServlet"
第七章
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内的中文〈br>
b.jsp代码:
%@pagecontentType=”text/html;
charset=UTF-8”%〉
b.jsp内的中文<
br〉
jsp:
includepage="
a.jsp"
flush=”true"
/〉
—--—--第2题答案———-—-
〈%@pagelanguage="
java”contentType=”text/html;
charset=UTF-8”%〉
〈html〉
〈head〉
title〉欢迎你<
/title〉
〈/head〉
body>
欢迎来到传智播客,现在的时间是:
〈%@includefile="
datetime.jsp"
%〉
〈/body>
/html>
第八章
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题答案-——--—
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”);
setProperty(p,"
age"
,31);
//使用BeanUtils获取属性值
Stringname=BeanUtils.getProperty(p,"
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程序开发入门 JavaWeb 程序 开发 入门 课后 练习 答案