首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在jsp页面和servlet之间传递参数

问在jsp页面和servlet之间传递参数
EN

Stack Overflow用户
提问于 2017-01-05 20:05:53
回答 2查看 332关注 0票数 0

我是web服务、jsps和servlet的新手,我有这个非常简单的例子,只是为了理解它们是如何工作的。

首先,我有一个简单的web服务:

代码语言:javascript
复制
    package com.sav.calculator;

    import javax.jws.WebService;
    import javax.jws.WebMethod;
    import javax.jws.WebParam;

    @WebService(serviceName = "CalculatorWS")
    public class CalculatorWS {

        @WebMethod(operationName = "add")
        public int add(@WebParam(name = "i") int i, @WebParam(name = "j") int j) {
            int k = i + j;
            return k;
        }

    }

然后,我在客户端应用程序中使用此web服务。我试图以正确的方式工作,所以我将数据从一个jsp发送到servlet,在servlet中进行计算,然后在另一个jsp中发送数据用于演示。但问题是,为什么我做得不对?

下面是第一个jsp(只是一个html表单):

代码语言:javascript
复制
    <%@page contentType="text/html" pageEncoding="UTF-8"%>
    <!DOCTYPE html>
    <html>
        <head>
            <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
        </head>
        <body>

            <form method="POST" action="ClientServlet">
                <input type="text" name="j"/>
                <input type="text" name="i"/>
                <input type="submit" value="submit"/>
            </form>

        </body>
    </html>

下面是我使用add webmethod的servlet:

代码语言:javascript
复制
package com.sav.calculator.client;

import com.sav.calculator.CalculatorWS_Service;
import java.io.IOException;
import java.io.PrintWriter;
import javax.servlet.RequestDispatcher;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.xml.ws.WebServiceRef;

@WebServlet(name = "ClientServlet", urlPatterns = {"/ClientServlet"})
public class ClientServlet extends HttpServlet {

    @WebServiceRef(wsdlLocation = "WEB-INF/wsdl/localhost_8080/CalculatorWSApplication/CalculatorWS.wsdl")
    private CalculatorWS_Service service;

    protected void processRequest(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {

    }

    @Override
    protected void doGet(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {
        processRequest(request, response);
        doPost(request, response);
    }

    @Override
    protected void doPost(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {
        processRequest(request, response);

        int i = (int) request.getAttribute("i");
        int j = (int) request.getAttribute("j");

        int k = add(i, j);
        request.setAttribute("k",k);

        RequestDispatcher dispatcher = this.getServletContext().getRequestDispatcher("newjsp2.jsp");
        dispatcher.forward(request, response);
    }

    @Override
    public String getServletInfo() {
        return "Short description";
    }

    private int add(int i, int j) {
        com.sav.calculator.CalculatorWS port = service.getCalculatorWSPort();
        return port.add(i, j);
    }

}

newjsp2只是一个hello world页面,我只是想先到达那里,但得到的结果是:that.

EN

回答 2

Stack Overflow用户

发布于 2017-01-05 20:17:27

启动web服务服务器后,在web浏览器中键入地址:

代码语言:javascript
复制
 http://localhost:8080/CalculatorWSApplication/CalculatorWS.wsdl

如果此地址包含wsdl (xml格式),则将其用作wsdlLocation。

也可以尝试一些工具,比如SoapUI, or some other。

票数 0
EN

Stack Overflow用户

发布于 2017-01-05 20:19:28

从Servlet到JSP的

您可以在将请求转发到jsp之前将值设置到响应对象中。或者,您可以将值放入会话bean中,然后在jsp中访问它。

从JSP到Servlet的

您需要提交一个表单并将参数作为输入传递。一个示例 ...

代码语言:javascript
复制
<form method="Post" action="path/to/servlet">
    <input type="text" name="x" />
    <input type="password" name="xx" />
    <input type="hidden" name="xxx" value="zzz" />
    <input type='submit' />
</form>
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/41484679

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档