java 长耗时_java web之中,如果Servlet中有耗时较长的计算,该怎么做才好?

java web之中,如果Servlet中有耗时较长的计算,该怎么做才好?

下面用Thread.sleep(5000)来模拟耗时较长的计算:

public class calcServlet extends HttpServlet {

/**

* Destruction of the servlet.

*/

public void destroy() {

super.destroy(); // Just puts "destroy" string in log

// Put your code here

}

/**

* The doGet method of the servlet.

*

* This method is called when a form has its tag value method equals to get.

*

* @param request the request send by the client to the server

* @param response the response send by the server to the client

* @throws ServletException if an error occurred

* @throws IOException if an error occurred

*/

public void doGet(HttpServletRequest request, HttpServletResponse response)

throws ServletException, IOException {

response.setContentType("text/html");

PrintWriter out = response.getWriter();

out.println(""-//W3C//DTD HTML 4.01 Transitional//EN\">");

out.println("");

out.println("

A Servlet");

out.println("

");

out.print(" This is ");

out.print(this.getClass());

out.println(", using the GET method");

out.println(" ");

out.println("");

out.flush();

out.close();

}

/**

* The doPost method of the servlet.

*

* This method is called when a form has its tag value method equals to post.

*

* @param request the request send by the client to the server

* @param response the response send by the server to the client

* @throws ServletException if an error occurred

* @throws IOException if an error occurred

*/

public void doPost(HttpServletRequest req, HttpServletResponse res)

throws ServletException, IOException {

String numa = req.getParameter("numa");

String numb = req.getParameter("numb");

int iNuma=Integer.parseInt(numa);

int iNumb=Integer.parseInt(numb);

int calcResult=calc(iNuma,iNumb);

String strCalcResult=String.valueOf(calcResult);

req.setAttribute("calcResult", strCalcResult);

req.getRequestDispatcher("/showCalcResult.jsp").forward(req, res);

}

private int calc(int iNuma, int iNumb) {

// TODO Auto-generated method stub

try {

Thread.sleep(5000);

} catch (InterruptedException e) {

// TODO Auto-generated catch block

e.printStackTrace();

}

return iNuma+iNumb;

}

/*

public native int calc(int iNuma, int iNumb);

static{

System.out.println(System.getProperty("java.library.path"));

System.out.print("start load!!!");

System.loadLibrary("calc");

System.out.print("end load!!!");

}

*/

/**

* Initialization of the servlet.

*

* @throws ServletException if an error occurs

*/

public void init() throws ServletException {

// Put your code here

}

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值