JS直接从request.Attribute取值

本文介绍了一个Servlet与JavaScript页面交互的例子,展示了如何通过setAttribute方法传递数据,并使用JavaScript进行页面元素的颜色更改。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Servlet中的代码:

request.setAttribute("methodId", method);
request.setAttribute("infos",infos);
request.setAttribute("currentPage", String.valueOf(currentPage));
request.setAttribute("count", count);
request.setAttribute("pageCount",pageCount);
request.getRequestDispatcher("Index.jsp").forward(request,response);

其中method的值为String类型:

String method = request.getParameter("method");

js代码为:

</pre><pre name="code" class="javascript">window.onload = function changColor(){
    var systemId = getQueryString("methodId");
    if(systemId == null){
	var currentA = document.getElementById("daiban");
	currentA.style.color = "#FFCC00";
    }
    else {
	var currentA = document.getElementById(systemId);
	currentA.style.color = "#FFCC00";
    }
}
function getQueryString(name){
    var reg = new RegExp("(^|&)" + name + "=([^&]*)(&|$)", "i");
    var r = window.location.search.substr(1).match(reg);
    if (r != null) return unescape(r[2]); return null; 
}



实现的功能是将对应的文字颜色初始化。对于其他的初始化也可尝试

目前正在进行京东评论的爬虫,完整代码如下:from DrissionPage import WebPage from DrissionPage.common import Actions import time import random import json import csv #创建文件对象 f = open('data.csv',mode='w',encoding='utf-8',newline='') csv_writer = csv.DictWriter(f,fieldnames=[ '昵称', '评分', '产品', '日期', '评论', ]) csv_writer.writeheader() # 初始化WebPage dp = WebPage() dp.get('https://item.jd.com/100065747413.html') #实例化动作链对象 ac = Actions(dp) # 等待元素 dp.wait.ele_displayed('css:.all-btn .arrow', timeout=30) # 定位元素 try: btn = dp.ele('css:.all-btn .arrow', timeout=15) except Exception: btn = dp.ele('xpath://*[contains(@class, "all-btn")]//*[contains(@class, "arrow")]', timeout=10) # 确保可交互 btn.scroll.to_center() time.sleep(random.uniform(0.5, 1.2)) # 点击 try: btn.click() except: dp.run_js('arguments[0].click();', btn) # 监听请求 def check_request(request): return 'client.action' in request.url.lower() dp.listen.start('client.action', check_request) for page in range(1,11): print(f'正在遍历第{page}页') # 等待响应 #r = dp.listen.wait(timeout=25) r = dp.listen.wait(timeout=40) #数据 json_data = r.response.body #字典取值,提取评论信息 comment_list = json_data['result']['floors'][2]['data'] #print(comment_list) #遍历,提取列表中的元素 for index in comment_list: if 'commentInfo' in [i for i in index.keys()]: dit = { '昵称':index['commentInfo']['userNickName'], '评分':index['commentInfo']['commentScore'], '产品':index['commentInfo']['productSpecifications'].replace('已购',''), '日期':index['commentInfo']['commentDate'], '评论':index['commentInfo']['commentData'], } #写入数据 csv_writer.writerow(dit) print(dit) else: pass #定位窗口标签 #jdc-pc-rate-card-content #tab = dp.ele('css:div.ReactVirtualized__Grid__innerScrollContainer') tab = dp.ele('css:div._listItem_1ygkr_73') ac.scroll(delta_y=2000,on_ele=tab) #tab.scroll.to_bottom(),报错:AttributeError: 'bool' object has no attribute 'response'
06-19
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值