gpt4 book ai didi

java - 无法使用 RequestDispatcher 将 servlet 中计算的值转发到 jsp 页面。如何做同样的事情?

转载 作者:行者123 更新时间:2023-12-01 15:47:57 25 4
gpt4 key购买 nike

在我的代码中..我使用 request.getParameter() 从 servlet 中的 jsp 页面检索了输入(文本类型)的值。

现在使用这些值,我已经执行了一些计算。现在我想转发计算值(即结果)以及操作数..即。将检索到的值发送到新的 jsp 页面。我通过使用 request.setAttribute() 设置值并使用 getRequestDispatcher().forward(request,response) 转发到目标 jsp 页面来完成此操作。

但是我的页面没有被转发。

package imsf;  

import java.io.*;
import javax.servlet.*;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.sql.*;
import Service;

public class CalcPurRate extends HttpServlet {
String iname;
String cname;
String mrate;
String irate;
String disR;
String disP;
String newAdd;
String q;
int imr;
int iir;
int idR;
int idP;
String dP;
String dR;
int ina;
int iprate;
int total;

protected void processRequest(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
response.setContentType("text/html;charset=UTF-8");
PrintWriter out = response.getWriter();
try {
String in=request.getParameter("iname");
out.print("my name"+in);
String cn=request.getParameter("cname");
out.print("my cate"+cn);

if(request.getParameter("mrate")!=null)
{
String mr=request.getParameter("mrate");
if(!(mr.equals(null)))
{
imr=Integer.parseInt(mr);
out.print(" mrp= "+imr);
}
}
if(request.getParameter("irate")!=null)
{
String ir=request.getParameter("irate");
if(!(ir.equals(null)))
{
iir=Integer.parseInt(ir);
out.print("invoice= "+iir);
}
}
if(request.getParameter("disR")!=null)
{
out.print("disR not null");
dR=request.getParameter("disR");
if(!(dR.equals(null)))
{
out.print("disR not zero");
idR=Integer.parseInt(dR);
/*if(request.getParameter("disP")==null)
{
out.print("disP not zero");
dP=request.getParameter("disP");
if(dP.equals(null))
{
out.print("disP not zero");
iprate=((iir)-(idR));
out.print("iprate="+iprate);
}
}*/
out.print("integer dis R="+idR);
iprate=((iir)-(idR));
out.print("iprate="+iprate);
}
}
/*if(request.getParameter("disP")!=null)
{
out.print("disP not null");
dP=request.getParameter("disP");
if(!(dP.equals(null)))
{
out.print("disP value="+dP);
out.print("disP not zero");
/*if(request.getParameter("disR")==null)
{
dR=request.getParameter("disR");
if(dR.equals(null))
{
idP=Integer.parseInt(dP);
out.print("integer dis P="+idP);
iprate=((iir)-(((idP)*(iir))/100));
out.print("pur rate"+iprate);
}
}*/
//}
//}
/*if(idR!=0)
{
out.print("innn");
iprate=((iir)-(idR));
out.print("pur rate"+iprate);
}
out.print("heheh");

if(idP!=0)
{
iprate=iir-((idP*iir)/100);
out.print("vgfhg"+iprate);
}*/
if(request.getParameter("newAdd")!=null)
{
String na=request.getParameter("newAdd");
if(!(na.equals(null)))
{
ina=Integer.parseInt(na);
total=((ina)*(iprate));
out.print("total="+total);
}
}
request.setAttribute("purRate",iprate);
request.setAttribute("total",total);
//response.sendRedirect("ItemDetail.jsp");
RequestDispatcher rd=request.getRequestDispatcher("/ItemDetail.jsp");
rd.forward(request, response);
}
catch(Exception e)
{
e.getMessage();
}
}

}

最佳答案

processRequest() 不是对 HttpServlet 具有任何意义的方法。您的 servlet 实际上什么也没做 - processRequest() 不会被任何东西调用。

您应该实现 doGet()doPost(),并将逻辑放入其中。

顺便说一下,像这样将数据存储在 servlet 的字段中是一个极其的坏主意。它不是线程安全的 - 多个并发请求会破坏您的 servlet 的状态。

关于java - 无法使用 RequestDispatcher 将 servlet 中计算的值转发到 jsp 页面。如何做同样的事情?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6754964/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com