问题描述
我具有以下动态Web项目设置
Index.jsp
<form action="submitClick" method ="post"
<textarea> id="textarea" name="textarea" rows="25" cols="100">${result}</textarea>
<input type="submit">
SubmitClick.java //servlet class
public class SubmitClick extends HttpServlet{
public void doPost(HttpServletRequest request,HttpServletResponse response){
MainLogicclass mainLogic = new MainLogicclass(username,password); //let's suppose hardcoded
request.setAttribute("result","Hello");// Hello is getting printed on textarea,but I want to print output text on textarea from MainLogicclass.
getServletContext().getRequestdispatcher("/index.jsp").forward(request,response);
}
}
MainLogicclass//different class,present in same package
public class MainLogicclass{
public MainLogicclass(String username,String password){
//DB Connection logic
System.out.println("Database Connection successful");
/* I want to print "Database Connection successful" on textarea which presents on index.jsp
And after that,I need to print few more output so that the text gets appended to textarea like-
"Database Connection successful
DB query executed
DB connection closed"
*/
}
}
如何使用request.setAttribute方法或任何其他解决方法将文本从MainLogicclass打印到Servlet。
解决方法
构造函数没有任何返回类型,因此可以使用方法代替构造函数,并在其中放置逻辑代码并返回一些从那里的价值。因此,MainLogicClass
中的方法如下所示:
public String Something(String username,String password){
String msg = "" ;
msg +="Something to return";
msg +="soemthing more";
//your logic code
return msg;//return back
}
然后在您的servlet doPost
方法中执行以下操作:
MainLogicClass mainLogic = new MainLogicClass();
String message = mainLogic.Something(String username,String password);//call that function
request.setAttribute("result",message );