-2

我被限制在使用 Netbeans IDE 的企业软件项目上工作,没有框架。

前端显示是register.jsp。我的模型包包含Customer.java类,带有一些 getter 和 setter。数据包包含“CustomerData.java”,具有与客户相关的 DB 功能:注册、登录 CustomerDataHttpServlet

CustomerData我需要从我的注册表单中引用类中的特定方法。这可能吗?

如果可以这样做,web.xml文件条目应该是servlet什么servletmapping

这是代码。

注册.jsp

<form name="loginForm" method="post" action="CustomerData/RegisterCustomer">
......
</form>

CustomerData.java骨架:

public class CustomerData extends HttpServlet {

    public void registerCustomer(HttpServletRequest request)
        throws ServletException, IOException
    {
        // this is the method I need to reference. It creates a db connection, checks to see if
        // the Customer is already in the DB, and if not, registers the user.
    }

    public void loginCustomer(HTTPServlet request)
        throws ServletException, IOException
    {
        // Some other Customer data method that will need to be called from my login.jsp page
    }

    public void SomeOtherMethod()
    {
       // some helper methods or validation methods for Customer
    }
}
4

2 回答 2

0

我会向您推荐以下内容。

在 JSP 页面中,您可以定义一个参数,说明opr您可以在哪里设置操作的值。

<form name="loginForm" method="post" action="CustomerData/">
<input type=hidden name=opr id=opr value=1
......
</form>

在 Servlet 中,您可以通过传递的操作值来处理操作,如下所示

public doPost(HttpServletRequest req, HttpServletResponse res){
        int operation = Integer.valueOf(req.getParameter("opr"));

        if (operation == 1){
            registerCustomer(req);
        }else if (operation == 2){
            loginCustomer(req);
        }else if (operation == 3){
            SomeOtherMethod();
        }...
    }

希望这会帮助你。

于 2012-11-28T17:38:17.663 回答
0

您可以使用getPathInfo来完成您想要做的事情

假设您的 servlet 映射是

<servlet-mapping>
    <servlet-name>CustomerData</servlet-name>
    <url-pattern>/CustomerData/*</url-pattern>
</servlet-mapping>

打电话

String pathInfo = request.getPathInfo();

将为您提供'/RegisterCustomer'pathInfo 中的值。从那里找出需要调用的方法应该是相当简单的。不要忘记添加检查代码来处理可能在 servlet 上抛出的各种滥用行为(例如,没有给出“方法名称”,指定不存在的方法名称等)。

于 2012-11-28T17:42:01.987 回答