gpt4 book ai didi

使用 Java Servlet 的 Java 序列化类对象

转载 作者:行者123 更新时间:2023-11-28 23:21:02 25 4
gpt4 key购买 nike

我目前有一个类(class)项目,我需要在 Tomcat 上部署一个简单的银行 Web 应用程序。打开应用程序后,我们应该会看到一个 HTML 文件,其中包含供用户提交用户名或创建新帐户的表单。这必须通过使用在 web.xml 中完成映射的 Java servlet 来完成。

我遇到问题的部分是合并可序列化对象。在我的例子中,可序列化对象类是 Accounts。在 servlet 中,我需要知道如何操作它们(创建、存储、删除和检索)。

这是我引用的 Account.java。 Account.java

//Class from which objects will be created 
//and then passed as arguments.

import java.io.Serializable;

public class Account implements Serializable
{
private int acctNum;
private String surname;
private String firstNames;
private double balance;

public Account(int acctNo, String sname, String fnames, double bal)
{
acctNum = acctNo;
surname = sname;
firstNames = fnames;
balance = bal;
}

public int getAcctNum()
{
return acctNum;
}

public String getName()
{
return (firstNames + " " + surname);
}

public double getBalance()
{
return balance;
}

public double withdraw(double amount)
{
if (amount <= balance)
return amount;
else
return 0;
}

public void deposit(double amount)
{
if (amount > 0)
balance += amount;
}
}

这里是我将使用的 Java servlet 示例。 FirstServlet.java

import java.io.*;
import javax.servlet.*;
import javax.servlet.http.*;

public class FirstServlet extends HttpServlet
{
public void doPost(HttpServletRequest request,
HttpServletResponse response)
throws IOException,ServletException
{
response.setContentType("text/HTML");

String user = request.getParameter("usrname");
PrintWriter out = response.getWriter();
/*
out.println("<HTML>");
out.println("<HEAD>");
out.println("<TITLE>Simple Servlet</TITLE>");
out.println("</HEAD>");
out.println("<BODY>");
out.println("<BR><BR><BR>");
out.println("<CENTER><H1> A Simple Servlet </H1></CENTER>");
out.println("</BODY>");
out.println("</HTML>");
*/
out.print("<html><head><title>Simple Servlet</title></head><body><br><br><br><CENTER><H1> A Simple Servlet </H1><br><br>Username: "+ user +"</CENTER></body></html>");
out.flush();
}
}

最佳答案

编辑 如果您只想向 servlet 提交数据,您可以按如下所述进行。请注意,这是一种单向通信,因为 HTML 只能提交请求,但无法解析甚至接收任何返回的结果。这就是为什么您需要使用 Javascript/jQuery 来发送和检索请求,或者从使用 HTML 更改为使用可以与 servlet 一起工作的 JSP。

HTML

<form method="post or get" action="/web_context/servlet_mapping">
<!-- inputs and buttons -->
</form>

小服务程序

public class TestServlet extends HttpServlet {

private static final long serialVersionUID = -3247638875724522260L;

@Override
public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
// use these to get the form inputs
request.getParameterMap();
request.getParameter("some_parameter");

// process parameters

// create any objects

// perform actions on object
}

@Override
public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
// same thing here
}
}

下面是原始答案

这种情况的一种方法是将您的表单放在 HTML 文件中,并在提交表单或其他用户操作时使用 jQuery 向后端 servlet 发送 Post 或 Get(取决于操作)请求。

servlet 在 HttpServletRequest 对象中接收发送给它的所有数据,因此可以读取和处理使用 jQuery 发送的数据。

为了帮助来回编码数据,我建议您使用 Gson library在后端并以 JSON 格式发送所有数据。这将使您能够非常轻松地序列化和反序列化您的对象。

您可以有一个 servlet,它接收数据和一种操作类型,并将数据路由到特定的操作。或者您可以为每个操作创建一个 servlet。

您没有提到数据库,但您也需要它。

关于使用 Java Servlet 的 Java 序列化类对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43813824/

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