仓酷云

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 763|回复: 11
打印 上一主题 下一主题

[学习教程] JAVA网页编程之定制的搜刮引擎界面(cookie)例子

[复制链接]
兰色精灵 该用户已被删除
跳转到指定楼层
楼主
发表于 2015-1-18 11:14:22 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
诸如RMI,EJB等一些技术并不是你说的那么复杂,而是它们把一些复杂的工具封装成不复杂的工具了,理解这些工具是需要些时间。我问你,.net里有这些工具吗?要简单多少?。cookie|搜刮引擎<Pstyle="TEXT-INDENT:2em">上面也是一个搜刮引擎界面的例子,经由过程修正后面HTTP形态代码的例子失掉。在这个Servlet中,用户界面是静态天生而不是由静态HTML文件供应的。Servlet除卖力读取表双数据并把它们发送给搜刮引擎以外,还要把包括表双数据的Cookie发送给客户端。今后客户再次会见统一表单时,这些Cookie的值将用来事后添补表单,使表单主动显现比来利用过的数据。  SearchEnginesFrontEnd.java
  该Servlet机关一个次要由表单组成的用户界面。第一次显现的时分,它和后面用静态HTML页面供应的界面差未几。但是,用户选择的值将被保留到Cookie(本页面将数据发送到CustomizedSearchEnginesServlet,由后者设置Cookie)。用户今后再会见统一页面时,即便扫瞄器是加入以后再启动,表单中也会主动填好上一次搜刮所填写的内容。
  注重该Servlet用到了ServletUtilities.java,个中getCookieValue后面已先容过,headWithTitle用于天生HTML页面的一部分。别的,这里也用到了后面已申明的LongLiveCookie类,我们用它来创立取消刻日很长的Cookie。
packagehall;
importjava.io.*;
importjavax.servlet.*;
importjavax.servlet.http.*;
importjava.net.*;
publicclassSearchEnginesFrontEndextendsHttpServlet{
publicvoiddoGet(HttpServletRequestrequest,
HttpServletResponseresponse)
throwsServletException,IOException{
Cookie[]cookies=request.getCookies();
StringsearchString=
ServletUtilities.getCookieValue(cookies,
"searchString",
"JavaProgramming");
StringnumResults=
ServletUtilities.getCookieValue(cookies,
"numResults",
"10");
StringsearchEngine=
ServletUtilities.getCookieValue(cookies,
"searchEngine",
"google");
response.setContentType("text/html");
PrintWriterout=response.getWriter();
Stringtitle="SearchingtheWeb";
out.println(ServletUtilities.headWithTitle(title)+
"<BODYBGCOLOR=\"#FDF5E6\">\n"+
"<H1ALIGN=\"CENTER\">SearchingtheWeb</H1>\n"+
"\n"+
"<FORMACTION=\"/servlet/hall.CustomizedSearchEngines\">\n"+
"<CENTER>\n"+
"SearchString:\n"+
"<INPUTTYPE=\"TEXT\"NAME=\"searchString\"\n"+
"VALUE=\""+searchString+"\"><BR>\n"+
"ResultstoShowPerPage:\n"+
"<INPUTTYPE=\"TEXT\"NAME=\"numResults\"\n"+
"VALUE="+numResults+"SIZE=3><BR>\n"+
"<INPUTTYPE=\"RADIO\"NAME=\"searchEngine\"\n"+
"VALUE=\"google\""+
checked("google",searchEngine)+">\n"+
"Google|\n"+
"<INPUTTYPE=\"RADIO\"NAME=\"searchEngine\"\n"+
"VALUE=\"infoseek\""+
checked("infoseek",searchEngine)+">\n"+
"Infoseek|\n"+
"<INPUTTYPE=\"RADIO\"NAME=\"searchEngine\"\n"+
"VALUE=\"lycos\""+
checked("lycos",searchEngine)+">\n"+
"Lycos|\n"+
"<INPUTTYPE=\"RADIO\"NAME=\"searchEngine\"\n"+
"VALUE=\"hotbot\""+
checked("hotbot",searchEngine)+">\n"+
"HotBot\n"+
"<BR>\n"+
"<INPUTTYPE=\"SUBMIT\"VALUE=\"Search\">\n"+
"</CENTER>\n"+
"</FORM>\n"+
"\n"+
"</BODY>\n"+
"</HTML>\n");
}
privateStringchecked(Stringname1,Stringname2){
if(name1.equals(name2))
return("CHECKED");
else
return("");
}
}
CustomizedSearchEngines.java
  后面的SearchEnginesFrontEndServlet把数据发送到CustomizedSearchEnginesServlet。本例在很多方面与后面先容HTTP形态代码时的例子类似,区分在于,本例除要机关一个针对搜刮引擎的URL并向用户发送一个重定向应对以外,还要发送保留用户数据的Cookies。
packagehall;
importjava.io.*;
importjavax.servlet.*;
importjavax.servlet.http.*;
importjava.net.*;
publicclassCustomizedSearchEnginesextendsHttpServlet{
publicvoiddoGet(HttpServletRequestrequest,
HttpServletResponseresponse)
throwsServletException,IOException{

StringsearchString=request.getParameter("searchString");
CookiesearchStringCookie=
newLongLivedCookie("searchString",searchString);
response.addCookie(searchStringCookie);
searchString=URLEncoder.encode(searchString);
StringnumResults=request.getParameter("numResults");
CookienumResultsCookie=
newLongLivedCookie("numResults",numResults);
response.addCookie(numResultsCookie);
StringsearchEngine=request.getParameter("searchEngine");
CookiesearchEngineCookie=
newLongLivedCookie("searchEngine",searchEngine);
response.addCookie(searchEngineCookie);
SearchSpec[]commonSpecs=SearchSpec.getCommonSpecs();
for(inti=0;i<commonSpecs.length;i++){
SearchSpecsearchSpec=commonSpecs[i];
if(searchSpec.getName().equals(searchEngine)){
Stringurl=
searchSpec.makeURL(searchString,numResults);
response.sendRedirect(url);
return;
}
}
response.sendError(response.SC_NOT_FOUND,
"Norecognizedsearchenginespecified.");
}
publicvoiddoPost(HttpServletRequestrequest,
HttpServletResponseresponse)
throwsServletException,IOException{
doGet(request,response);
}
}

JAVA是一种可以撰写跨平台应用软件的面向对象的程序设计语言,由升阳(SunMicrosystems)公司的詹姆斯·高斯林(JamesGosling)等人于1990年代初开发。
精灵巫婆 该用户已被删除
沙发
发表于 2015-1-20 18:14:59 | 只看该作者
所以现在应用最广泛又最好学的就是J2EE了。 J2EE又包括许多组件,如Jsp,Servlet,JavaBean,EJB,JDBC,JavaMail等。要学习起来可不是一两天的事。那么又该如何学习J2EE呢?当然Java语法得先看一看的,I/O包,Util包,Lang包你都熟悉了吗?然后再从JSP学起。
第二个灵魂 该用户已被删除
板凳
发表于 2015-1-24 06:26:14 | 只看该作者
[url]http://www.jdon.com/[/url]去下载,或到同济技术论坛的服务器[url]ftp://nro.shtdu.edu.cn[/url]去下,安装上有什么问题,可以到论坛上去提问。
不帅 该用户已被删除
地板
发表于 2015-1-25 15:00:56 | 只看该作者
是一种语言,用以产生「小应用程序(Applet(s))
因胸联盟 该用户已被删除
5#
发表于 2015-2-2 22:33:19 | 只看该作者
关于设计模式的资料,还是向大家推荐banq的网站 [url]http://www.jdon.com/[/url],他把GOF的23种模式以通俗易懂的方式诠释出来,纯Java描述,真是经典中的经典。
若相依 该用户已被删除
6#
发表于 2015-2-4 19:34:27 | 只看该作者
在全球云计算和移动互联网的产业环境下,Java更具备了显著优势和广阔前景。
莫相离 该用户已被删除
7#
发表于 2015-2-5 04:46:51 | 只看该作者
我大二,Java也只学了一年,觉得还是看thinking in java好,有能力的话看英文原版(中文版翻的不怎么好),还能提高英文文档阅读能力。
再见西城 该用户已被删除
8#
发表于 2015-2-11 04:35:39 | 只看该作者
是一种使用者不需花费很多时间学习的语言
小女巫 该用户已被删除
9#
发表于 2015-2-21 00:27:22 | 只看该作者
象、泛型编程的特性,广泛应用于企业级Web应用开发和移动应用开发。
爱飞 该用户已被删除
10#
发表于 2015-3-5 21:32:03 | 只看该作者
Sun公司看见Oak在互联网上应用的前景,于是改造了Oak,于1995年5月以Java的名称正式发布。Java伴随着互联网的迅猛发展而发展,逐渐成为重要的网络编程语言。
金色的骷髅 该用户已被删除
11#
发表于 2015-3-12 15:22:20 | 只看该作者
如果你学过HTML,那么事情要好办的多,如果没有,那你快去补一补HTML基础吧。其实JSP中的Java语法也不多,它更象一个脚本语言,有点象ASP。
柔情似水 该用户已被删除
12#
发表于 2015-3-19 23:23:50 | 只看该作者
在全球云计算和移动互联网的产业环境下,Java更具备了显著优势和广阔前景。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|仓酷云 鄂ICP备14007578号-2

GMT+8, 2024-11-15 12:03

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表