Web数据库实验答案Word文件下载.docx

上传人:b****5 文档编号:20837791 上传时间:2023-01-25 格式:DOCX 页数:25 大小:22.17KB
下载 相关 举报
Web数据库实验答案Word文件下载.docx_第1页
第1页 / 共25页
Web数据库实验答案Word文件下载.docx_第2页
第2页 / 共25页
Web数据库实验答案Word文件下载.docx_第3页
第3页 / 共25页
Web数据库实验答案Word文件下载.docx_第4页
第4页 / 共25页
Web数据库实验答案Word文件下载.docx_第5页
第5页 / 共25页
点击查看更多>>
下载资源
资源描述

Web数据库实验答案Word文件下载.docx

《Web数据库实验答案Word文件下载.docx》由会员分享,可在线阅读,更多相关《Web数据库实验答案Word文件下载.docx(25页珍藏版)》请在冰豆网上搜索。

Web数据库实验答案Word文件下载.docx

一、

1、请建立一个servlet类用于显示当前的系统时间。

写出它的url配置写法

packageservlet;

importjava.io.IOException;

importjava.io.PrintWriter;

importjava.util.Date;

importjavax.servlet.ServletException;

importjavax.servlet.http.HttpServlet;

importjavax.servlet.http.Http

ServletRequest;

importjavax.servlet.http.HttpServletResponse;

publicclassservletDateextendsHttpServlet{

publicvoiddoGet(HttpServletRequestrequest,HttpServletResponseresponse)

throwsServletException,IOException{

request.setCharacterEncoding("

UTF-8"

);

response.setCharacterEncoding("

response.setContentType("

text/html"

printWriterout=response.getWriter();

StringdateString="

null"

;

Datedate=newDate();

dateString=date.toLocaleString();

out.print("

当前时间是:

"

+dateString);

out.flush();

out.close();

}

publicvoiddoPost(HttpServletRequestrequest,HttpServletResponseresponse)

}

url:

<

servlet>

<

servlet-name>

servletDate<

/servlet-name>

<

servlet-class>

servlet.servletDate<

/servlet-class>

/servlet>

路径;

servlet-mapping>

url-pattern>

/servlet/servletDate<

/url-pattern>

/servlet-mapping>

二、

1、请输入用户名和密码,如果用户名和密码是“zhangsan”和”123456”,则进入一个欢迎界面,否则要求用户重新输入。

涉及的方法:

(1)response.sendRedirect("

login.htm"

(2)request.getRequestDispatcher("

welcome.htm"

).forward(request,response);

(3)HttpSessionsession=request.getSession();

session.setAttribute("

islogin"

true);

(4)booleanisLogin=session.getAttribute("

Login.html:

!

DOCTYPEHTMLPUBLIC"

-//W3C//DTDHTML4.01Transitional//EN"

>

html>

head>

title>

MyHtml.html<

/title>

metahttp-equiv="

keywords"

content="

keyword1,keyword2,keyword3"

description"

thisismypage"

content-type"

text/html;

charset=UTF-8"

--<

linkrel="

stylesheet"

type="

text/css"

href="

./styles.css"

-->

/head>

body>

ThisismyHTMLpage.<

br>

formmethod="

post"

action="

/servlet/servlet/login1"

>

用户名

inputtype="

text"

name="

name"

&

nbsp;

密码<

pwd"

submit"

value="

进入"

/form>

/body>

/html>

Welcome.java

importjavax.servlet.http.HttpServletRequest;

importjavax.servlet.http.HttpSession;

publicclassWelcomeextendsHttpServlet{

this.doPost(request,response);

}

HttpSessionsession=request.getSession();

StringisLogin=(String)session.getAttribute("

isLogin"

PrintWriterout=response.getWriter();

out.println("

DOCTYPEHTMLPUBLIC\"

-//W3C//DTDHTML4.01Transitional//EN\"

HTML>

HEAD>

TITLE>

AServlet<

/TITLE>

/HEAD>

BODYbgcolor='

X0FFF'

style='

font-size:

100px'

out.println("

marquee>

欢迎进入JavaWeb世界!

/front>

/marquee>

isLogin:

+isLogin);

/BODY>

/HTML>

out.flush();

out.close();

Login.java

publicclasslogin1extendsHttpServlet{

this.doPost(request,response);

request.setCharacterEncoding("

//字符编码问题,解决中文乱码问题

response.setCharacterEncoding("

StringName=request.getParameter("

StringPwd=request.getParameter("

if("

zhangsan"

.equals(Name)&

&

123456"

.equals(Pwd)){

HttpSessionsession=request.getSession();

session.setAttribute("

"

true"

request.getRequestDispatcher("

/welcome"

//转发

}else{

response.sendRedirect(request.getContextPath()+"

/login1.html"

//重定向

2、领会多用户并发访问的机制,请建立一个HttpServlet——“servletUsers”类,在该类的成员代码如下:

publicclassserveltUsersextendsHttpServlet{

privateIntegerx=1;

utf-8"

BODY>

当前x的值是"

+x);

synchronized(x){

Threadthread=Thread.currentThread();

try{

thread.sleep(1000*5);

}catch(InterruptedExceptione){

//TODOAuto-generatedcatchblock

e.printStackTrace();

x++;

当前serlvet实例阻塞5秒后,当前x的值是"

out.flush();

请在5秒内用两个浏览器窗口浏览该HttpServlet类,看看效果如何。

为什么是这个效果!

第一个窗口显示:

当前x的值是1当前serlvet实例阻塞5秒后,当前x的值是2

第二窗口显示:

当前x的值是2当前serlvet实例阻塞5秒后,当前x的值是3

分析与解析:

用户一访问x时,第一次x为初值1,用户一在休眠五秒钟内释放了对x的控制权,休眠后,当前x的值是3

用户二在五秒内再次访问x时,因为对核心语句加锁,必须等待用户一休眠后以及对x加1后才能访问x,这时用户二访问的x为已经加了1,值为2,当前serlvet实例阻塞5秒后,当前x的值是3

三、

1、请设计一种过滤器实现权限控制机制。

如果用户进入web应用没有登入时,要求用户必须进入登入页面。

packagefilter;

importjavax.servlet.Filter;

importjavax.servlet.FilterChain;

importjavax.servlet.FilterConfig;

importjavax.servlet.ServletRequest;

importjavax.servlet.ServletResponse;

publicclassencoderFilterimplementsFilter{

publicvoiddestroy(){

publicvoiddoFilter(ServletRequestreq,ServletResponseres,

FilterChainchain)throwsIOException,ServletException{

HttpServletRequestrequest=(HttpServletRequest)req;

HttpServletResponseresponse=(HttpServletResponse)res;

request.setCharacterEncoding("

if(session.isNew()){

response.sendRedirect(request.getContextPath()+"

/login.html"

}

chain.doFilter(request,response);

publicvoidinit(FilterConfigarg0)throwsServletException{

WEB.xml

filter>

filter-name>

encoder<

/filter-name>

filter-class>

filter.encoderFilter<

/filter-class>

/filter>

filter-mapping>

/*<

/filter-mapping>

 

2、请设计一种机制进行网站访问者统计(监听器方式实现)

packageListener;

importjavax.servlet.ServletContext;

importjavax.servlet.ServletContextEvent;

importjavax.servlet.ServletContextListener;

importjavax.servlet.http.HttpSessionEvent;

importjavax.servlet.http.HttpSessionListener;

publicclassapplicationimplementsServletContextListener,HttpSessionListener{

publicvoidcontextDestroyed(ServletContextEventsce){

publicvoidcontextInitialized(ServletContextEventsce){

//TODOAuto-generatedmethodstub

ServletContextapplication=sce.getServletContext();

application.setAttribute("

count"

0);

System.out.print("

web应用初始化"

publicvoidsessionCreated(HttpSessionEventse){

一个新的session对象产生"

ServletContextapplication=se.getSession().getServletContext();

HttpSessionsession=se.getSession();

session.setAttribute("

10);

Integercount=(Integer)application.getAttribute("

intcou=count+1;

application.setAttribute("

cou);

publicvoidsessionDestroyed(HttpSessionEventse){

统计类:

publicclasshello3extendsHttpServlet{

HttpSessionsession=request.getSession();

Integeri=(Integer)session.getAttribute("

intcount=i+1;

count);

ServletContextapplication=this.getServletContext();

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 经管营销 > 财务管理

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1