Все данные имени пользователя и пароля присутствуют в базе данных Oracle. Я использую сервлеты и jsp в качестве backend. Когда имя пользователя зарегистрировано через сервлет java, он находится в oracle db.
Теперь я хочу проверить, доступно ли существующее имя пользователя. Я знаю, как он делает вызов ajax для получения информации, но что я передаю как URL? Должен ли я передать шаблон url сервлета (пример: url:'./getRecords'
)? или есть ли другой способ сделать это?
Также использовать задний конец как сервлет и jsp - хорошая идея? Интересно, почему люди используют узлы js и mondo DB с угловыми js.
Моя проблема решена с этим: я использую фрейм MVC framework с угловыми.
Я написал директиву для проверки уникального поля (проверка из БД). Это сценарий: app.js
var base_url="http://localhost/mysystem/";
var angularapp = angular.module('angularapp', ['ngRoute','angularControllers','uniqueField']);
angularapp.config(['$routeProvider', function($routeProvider){
$routeProvider
.when('/add_user', {
controller : 'AddUserCtrl',
templateUrl : base_url+'angular/partials/add_user.php'
})
.otherwise({
redirectTo : '/dashboard'
});
}]);
//unique field --creating directive
angular.module('uniqueField', [])
.directive('uniqueField', function($http) {
var toId;
return {
restrict: 'A',
require: 'ngModel',
link: function(scope, elem, attr, ctrl) {
//when the scope changes, check the field.
scope.$watch(attr.ngModel, function(value) {
// if there was a previous attempt, stop it.
if(toId) clearTimeout(toId);
// start a new attempt with a delay to keep it from
toId = setTimeout(function(){
// call to some API that echo "1" or echo "0"
$http.get(base_url+'controller/check_unique?check=' + value).success(function(data) {
//set the validity of the field
if (data == "1")
{
ctrl.$setValidity('uniqueField', false);
}
else if (data == "0")
{
ctrl.$setValidity('uniqueField', true);
}
});
}, 200);
})
}
}
});
Это HTML:
User Name: <input required type="text" ng-model="uname" name="uname" id="uname" unique-field /><br/>
<span style="color:red" ng-show="form_add.uname.$dirty && form_add.uname.$invalid">
<span ng-show="form_add.uname.$error.required">User Name is required.</span>
<span ng-show="form_add.uname.$error.uniqueField">User Name already exists.</span>
</span>
Примечание: кнопка отправки отключается, если имя пользователя уже существует. Надеюсь, это поможет.
Задняя часть и передняя часть полностью раздельны. Большинство вызовов AngularJS являются стандартными HTTP-запросами, используя $http
. Не имеет значения, какой серверный язык или БД используется сервером, что по сути является черным ящиком, что касается реализации на передней панели.
Вам нужен веб-интерфейс на вашем сервере, который можно запросить, чтобы проверить, существует ли имя пользователя или нет. Затем просто вызовите этот URL, используя $http
с нужным именем пользователя в качестве параметра из AngularJS. Затем ваш код на стороне сервера запустит запрос, чтобы определить, является ли имя пользователя уникальным или нет, а затем возвращает полезную нагрузку с указанием, доступна ли она.