我有两个名为Admin.java和的文件index.jsp.
在Admin.java通过函数我检索名为varible的值res.需要将此变量传递给JSP页面.
的Admin.java是C:\Users\praveen\workspace\SemanticWeb\src\controller,而index.jsp在C:\Users\praveen\workspace\SemanticWeb\WebContent.
Admin.java的代码是:
public Admin()
{
super();
}
protected void doGet(HttpServletRequest request,HttpServletResponse response) throws ServletException, IOException
{
if (action.equals("login"))
{
String userName="";
String password="";
userName = request.getParameter("username");
password = request.getParameter("password");
response.setCharacterEncoding("UTF-8");
SemanticSearch semsearch = new SemanticSearch(request.getSession());
semsearch.loadData(REALPATH + RDFDATASOURCEFILE1);
String res=semsearch.searchForUser(userName, password);
System.out.println("The value of res been passed is "+res);
request.setAttribute("rest", res);
return;
}
Run Code Online (Sandbox Code Playgroud)
index.jsp的代码是
function login(user, pass)
{
$.ajax({
type:"GET", …Run Code Online (Sandbox Code Playgroud) 我在Eclipse中工作并使用2个Java文件:Admin.java和SemanticSearch.java.通过Admin.java我登录并检查我的RDF文件中是否存在用户名和密码.Admin.java中的登录功能调用运行SPARQL查询的SemanticSearch.java.我的查询在Eclipse的Console中给我答案,甚至在另一个文件上.现在我的工作是通过返回值或通过计算行并将该值发送到Admin.java来回复Admin.java的答案.如果行数为1表示用户名和密码匹配,我可以允许用户登录.
但我无法这样做.我已经尝试使用count(),Count()作为CNT,甚至尝试过int res = results.next.但似乎没有任何帮助.
我粘贴下面的代码:
Admin.java
SemanticSearch semsearch = new SemanticSearch(request.getSession());
semsearch.loadData(REALPATH + RDFDATASOURCEFILE1);
semsearch.searchForUser(response.getOutputStream(),null, userName, password);
Run Code Online (Sandbox Code Playgroud)
在SemanticSearch.java中
public void searchForUser(OutputStream out, String xslfile1, String userName, String password) {
String prolog = "PREFIX kb:<"+VUSER.getURI()+">";
System.out.println("Search for user in semantic search.java");
String queryString1 = prolog +"\n" +"SELECT * " +"WHERE {" +"?x kb:Uname ?username. ?x kb:Password ?password. ?x kb:Interest ?interest. " +"FILTER regex(?username, \"" +userName +"\")}";
System.out.println(queryString1);
Query query=QueryFactory.create(queryString1);
QueryExecution qexec = QueryExecutionFactory.create(query, model);
ResultSet results1 = qexec.execSelect(); --> here …Run Code Online (Sandbox Code Playgroud) 我要求将项目中用户使用的用户名与已注册的其他用户名进行比较.用户名应该是不同的.为此,输入在newuser.jsp中获取,后者又调用SemanticSearch.java中的函数searchForUsername.当新用户注册时,即使检查了电子邮件ID以进行验证,并且稍后在键入用户名时,也需要进行上述检查.我试过一种不起作用的方法.请指出我在做什么错误?
我在SemanticSearch.java中的代码有构造函数:
public SemanticSearch() {}
Run Code Online (Sandbox Code Playgroud)
验证电子邮件ID后,以下代码如下.
我在newuser.jsp中的代码是
SemanticSearch myclass=new SemanticSearch();
boolean rets=myclass.searchForUsername(username);
if (rets==false)
{
alert("Username already exists");
document.getElementById("username").value="";
document.getElementById("password").value="";
document.getElementById("username").focus();
}
Run Code Online (Sandbox Code Playgroud)
在adduser按钮的单击事件期间,必须调用此函数.但在点击功能期间似乎没有任何事情发生.请帮忙.