一个Web应用的笔试题目,求大神迅速出击,小弟感激不尽
使用Java创建一个异步获取歌词的Web应用程序,实现如下功能:
1.用一个index页面列出一些歌曲的名字(歌曲都是英文的,列出2个就行,随便显示几句就行)
2.当一首歌曲的名字被点击的时候,通过使用AJAX从服务器获取歌词并且显示在歌曲的名字下面
3.歌词和歌曲名称都必须存储在数据库里面
4.最后将代码上传到github
就这么一个题目,要求今天完成,Java操作的部分我倒是ok,但是小弟没有使用过AJAX,对于HTML的显示也不太清楚,不知道怎么响应,也没有使用过github。求大神迅速出击,小弟跪拜源码。
[解决办法]
那今天之内哪能搞定啊。。。
你一个小时之内熟悉一下jQuery吧。
[解决办法]
同样,建议你去熟悉一下jquery
[解决办法]
用jQuery倒不算复杂,关键点就两个:
1、Java端就是用一个专门的Servlet或JSP负责把数据查出来生成 JSON 字符串;
2、jQuery本质上就是独立发出HTTP请求,把Java端准备好的JSON字符串给显示出来。
另外推荐个偷鸡点的做法:
1、主页面(index页面列出一些歌曲的名字),预先准备好一个歌词DIV,比如:
<div id="divSongWords" style="display:none;"></div>
2、在歌曲名字上注册点击事件中,用jQuery去异步请求一个JSP页面,比如:SongWords.jsp
3、SongDetail.jsp 的内容就是:
<div>
数据库中取出来的歌词
</div>
4、jQuery在异步请求的返回事件中,将返回的内容直接写入歌词DIV中:
$("#divSongWords").innerHTML = data;
5、修改歌词DIV的CSS,将其显示出来,并注意用绝对定位,定好位置。
这种偷鸡方式可以大量节省JSON封装和DHTML操作过程。
[解决办法]
Jquery说通俗了就是对前台的增删改查,掌握了这个前台脚本将不是问题。
[解决办法]
问题一:
你在document的ready()事件中,用 $(this) 注册 click 函数,此时注册的click事件是整个<BODY>
应该修改为:
$(document).ready(function(){
$("li").click(function(){
问题二:
换行需要替换为HTML换行标签:<br />,
比如: replaceAll("\n", "<br />");
[解决办法]
你可以在servlet 里边加一个switch --case 语句用来判断请求的内容
或在url 链接上加上 id=? 然后在servlet那边获取到,用case语句判断调用那一个。
[解决办法]
我觉得不上机手写就是白痴,建议用手机百度去抄 JQUERY PSOT
[解决办法]
<meta http-equiv="description" content="This is my page">
<script>
//创建XMLHTTPResquest
function createXMLHTTPResquest(){
if(window.XMLHttpRequest){
//非ie浏览器
XMLHTTPReq=new XMLHttpRequest();
}else{
//是ie浏览器
if(window.ActiveXObject){
try{
//新版本IE
XMLHTTPReq = new ActiveXObject("Msxml2.XMLHTTP");
}catch(e){
try{
//老版本IE
XMLHTTPReq = new ActiveXObject("Msxml.XMLHTTP");
}catch(e){
}
}
}
}
}
//处理服务器处理结果
function handleRequest(){
//判断对象是否准备就绪
if(XMLHTTPReq.readyState==4){
//信息成功返回,开始处理信息
if(XMLHTTPReq.status==200){
var out = "";
var res=XMLHTTPReq.responseXML;
var response=XMLHTTPReq.responseText;
document.getElementById("span2").innerHTML=response;
}
}
}
//发送请求
function sendXMLReuqest(url){
createXMLHTTPResquest();
XMLHTTPReq.open("GET",url,true);
//指定相应函数
XMLHTTPReq.onreadystatechange=handleRequest;
//发送
XMLHTTPReq.send(null);
}
//调用ajax
function ss(){
sendXMLReuqest("<%=basePath%>Ajax1");
}
</script>
</head>
<body>
<form enctype="multipart/form-data" action="fileup" method="post" >
<input type="text" onchange="ss()">自动补全<br/>
<span id="span2"></span>
</form>
</body>
</html>
[解决办法]
建一个servlet名字Ajax1
public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
this.doPost(request, response);
}
public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
request.setCharacterEncoding("utf-8");
response.setCharacterEncoding("utf-8");
response.setContentType("text/xml;charset=UTF-8");
response.setHeader("Cache-Control", "no-cache");
PrintWriter out = response.getWriter();
ArrayList<String> list = new ArrayList<String>();
//这个地方换成歌词
list.add("我爱你");
list.add("我恨你");
list.add("我喜欢你");
list.add("我想你");
list.add("我要你");
String div;
String s="<div style='location:position;width:70px;height:200px;background:#eeeeee'>";
for(String k:list){
s+=k;
}
s+="</div>";
//div="<response>"+s+ "</response>";
div = s;
System.out.println(div);
out.write(div);
out.close();
}