محدود نمودن امتیاز دهی و تعداد بازدید ها در یک وب سایت با جاوا

0 رأی
میانگین بازدید روزانه 0.09155 بازدید

بر چه اساسی می توان امتیازدهی کاربران و یا آمار تعداد بازدید مربوط به ایتم خاص را محدود نمود؟

برای مثال در همین سایت جواب یاب مواقعی که شما چند بار یک سوال را مشاهده می کنید با این حال آمار بازدید افزایش نمی یابد؟

در جاوا چگونه می توان این راهکار ها را پیاده سازی کرد؟

سوال 4 سال قبل در تالار کامپیوتر و اینترنت توسط amin_y64 (50 امتیاز)
ویرایش 4 سال قبل توسط Saeed Zarinfam
همانطور که دوستومون Hosseini گفتند شما باید آی پی کاربری که از مطلبی بازدید می کند و همچنین آی دی کاربری که به مطلبی امتیاز می دهد را در جداول واسط پایگاه داده خود ذخیره کنید.
اگر به جواب رسیدید لطفا در قالب جواب قرار بدید که من و بقیه هم استفاده کنیم ممنون

1 جواب

+1 رأی

این کار رو من با اسپرینگ انجام دادم. به گفته دوستان آی پی و آیدی کاربر و آیدی مطلب رو در پایگاه داده ذخیره کنید. فرض کنید جدول بازدید شما به این صورت می باشد.

ip subjectId userId
     

برای بازدید نیاز به کد Ajax ندارید کافی قبلش چک کنید و ببینید که آی پی کاربر و آیدی مطلب مورد نظر در جدول وجود دارد یا نه اگر نبود فیلد مربوط به بازدید رو یکی افزایش میدین و آی پی و آدی مطلب و کاربر رو در این جدول ذخیره می کنید در غیر این صورت لازم نیست کوئری ها گفته شده اجرا شوند.

برای امتیاز دادن به کد Axjax نیاز دارید. برای مثال کد مربوط به امتیاز مثبت رو در اینجا میارم که طبیعتا نمره منفی دادن نیز مشابه خواهد. برای مطالعه بیشتر درباره ی کتابخانه های استفاده شده برای ارتباط ajax و کنترلر در اسپرینگ به این آدرس مراجعه کنید. http://www.raistudies.com/spring/spring-mvc/ajax-form-validation-using-spring-mvc-and-jquery/

function up() {  
	var Id = $('#Id').val();
	var dataString = "Id="+Id;
	var up = parseInt($('#up').val());
	$.ajax({
	type: "POST",
	 dataType: 'json',
         async: true,
	url: "/up.htm",
	data: dataString,
	
	   success: function(response){
		      // we have the response 
		      if(response.status == "SUCCESS"){
		    	  up = up+1;
		    	  $('#up').val("+"+up);
		    	  $('#msg').show('slow');
		    	 
		    	  setTimeout(function(){
		    		  $('#msg').hide('slow');        
		    	    }, 2000); 
		      }else{
		      $('#msg1').show('slow');
		       $('#msg').hide('slow');
		       setTimeout(function(){
		    		  $('#msg1').hide('slow');        
		    	    }, 2000);
		      }	      
		    },  
    error: function(e){  
      alert('Error:'+e);  
    }  
  });  
}

و کد مربوط به کنترلر به این صورت می باشد

@RequestMapping(value="/up.htm")
public @ResponseBody JsonResponse up(HttpServletRequest request,Model model){
  JsonResponse res = new JsonResponse();
  int Id = Integer.parseInt(request.getParameter("Id").toString());
	if(voteService.checkVote(Id,request.getRemoteAddr())){// چک می کند که آیا تبه این مطلب توسط ایتن آی پی رای داده شده است یا نه
	  Vote vote = new Vote();
	  vote.seId(Id);
	  vote.setIp(request.getRemoteAddr(););// request.getRemoteAddr();برای دستیابی به آی پی کابر
           service.up(Id);//افزایش امتیاز 
           voteService.insertIP(vote);// ذخیره آی پی و آیدی 
          res.setStatus("SUCCESS");
		}
         else
        	 res.setStatus("FAIL");// پیامی ظاهر می شود که شما به این مطلب رای داده اید.
		return res;
	}

برای دیدن نمونه به این آدرس مراجعه کنید.

جواب 4 سال قبل توسط hadi20 (15 امتیاز)
ویرایش 4 سال قبل توسط hadi20
کد توابع و یا کلاس ها رو به این دلیل ننوشتم چون چندان مهم نبودن.(بیشتر مربوط به نوشتن در پایگاه داده و یا خوندن از پایگاه داده اس) و یا لینک کمکی برای مطالعه بیشتر رو ذکر کرده ام. اگه تابع و یا کلاس خاصی مد نظرتون هست بفرمایید تا کدش رو اضافه کنم.
همچنین سعی می کنم که در قالب یک پروژه eclipse قرار بدم.
hadi20@ بنده اون طوری که از سوال متوجه شدم را بیان کردم ممنون که تجربیات خودتون رو به اشتراک گذاشتید.

سوال های مشابه

+1 رأی
0 جواب میانگین بازدید روزانه 0.21360 بازدید
0 رأی
2 جواب میانگین بازدید روزانه 0.17303 بازدید
0 رأی
1 جواب میانگین بازدید روزانه 0.36728 بازدید
+1 رأی
2 جواب میانگین بازدید روزانه 1.211,220 بازدید
0 رأی
0 جواب میانگین بازدید روزانه 0.06100 بازدید
0 رأی
1 جواب میانگین بازدید روزانه 0.1178 بازدید
0 رأی
1 جواب میانگین بازدید روزانه 0.06104 بازدید
+1 رأی
1 جواب میانگین بازدید روزانه 0.791,581 بازدید
+1 رأی
2 جواب میانگین بازدید روزانه 0.2422 بازدید
0 رأی
1 جواب میانگین بازدید روزانه 0.21258 بازدید
کانال تلگرام جواب یاب
...