从JSP / Servlet中的不同类以TextArea附加方式打印输出

问题描述

我具有以下动态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 );