从 JSP/Servlet 中的不同 class 在 TextArea(附加方式)中打印输出

Print output in TextArea(append-way) from different class in JSP/Servlet

我有下面的动态 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。

构造函数没有任何return类型所以你可以创建一个而不是构造函数方法 并将您的逻辑代码放在那里,return 从那里获得一些价值。因此,您在 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 );