[英]How to pass a value of a variable from a java class to the jsp page
我有两个名为Admin.java
和index.jsp
文件。
在Admin.java
通过一个函数我检索名为res
Admin.java
的值。 需要将此变量传递给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;
}
index.jsp的代码是
function login(user, pass)
{
$.ajax({
type:"GET",
url: "Admin?action=login",
dataType: "text",
data: { username: user, password: pass },
success: function(response){
}
在...内
function(response)
{
......
}
我需要访问Admin.java
传递的res
值。 我无法在互联网上为我的代码获得任何适当的帮助。 请有人帮我这个。
好像你正在做AJAX,所以我说你的响应需要以与AJAX兼容的方式编码(JSON,XML,...)。
如果你进行AJAX编码,你的函数可能如下所示:
function(response)
{
var toplevel = response.<your_top_level_element>;
}
编辑:
我们使用JSON Simple进行JSON编码。
然后我们的Java后端看起来像这样(没有错误检查的简化版本):
public String execute()
{
JSONObject jsonResult = new JSONObject();
jsonResult.put( "result", "ok");
return jsonResult.toJSONString();
}
并在Javascript函数中:
function(response)
{
var result = response.result; //now yields "ok"
}
从你的代码,
request.setAttribute("rest", res);
您不应将其设置为请求属性。 设置请求属性仅在转发到JSP文件时才有用。 你需要自己直接写回答。 替换为
response.getWriter().write(res);
这样它就会在响应体中结束,并在JS函数中作为变量response
使用。
如果这是一个ajax请求,您可以将请求转发到另一个jsp页面而不是返回。 有了这个
getServletContext().getRequestDispatcher("/ajax.jsp").forward(request, response);
create the jsp page(ajax.jsp) on your webcontent and add this sample code.
<p>${rest}</p>
<!-- Note: You can actually design your html here.
You can also format this as an xml file and let your js do the work.
//-->
另一种方法是用这个替换你的System.out.println
PrintWriter out = response.getWriter();
out.print("The value of res been passed is "+res);
但我想这是一个不好的做法。 见这里的例子。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.