Какой механизм используется для запуска вызова из jsp сервлетам, используя href - PullRequest
0 голосов
/ 08 апреля 2019

Я использую href для вызова URL сервлета, и он работает нормально. Я хочу добавить параметры и получить ответ от этого запроса. Является ли это возможным? Я пробовал с вызовом AJAX, но обнаружена проблема с CORS (при вызове внешнего Api).

Есть ли лучший способ ...?

Пример: <a href="servleturl">click</a>

1 Ответ

0 голосов
/ 08 апреля 2019
    Try like this:

    <a href="servleturl?name=<%=userName%>&country=<%=userCountry%>">click</a>

    In Servlet:

    String userName= request.getParameter("name");
    String userCountry= request.getParameter("country");

OR If you are using JSTL:

<c:url value="/servleturl" var="url">
  <c:param name="name" value="userName" />
  <c:param name="country" value="userCountry" />
</c:url>

<a href="<c:out value='${url}'/>">ServletLink</a>


For enabling CORS create a filter having overrided method like this:
// content of Request Filter
public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain)
                throws IOException, ServletException {

            HttpServletRequest request = (HttpServletRequest) request;    

            ((HttpServletResponse) servletResponse).addHeader("Access-Control-Allow-Origin", "*");
            ((HttpServletResponse) servletResponse).addHeader("Access-Control-Allow-Methods","GET, OPTIONS, HEAD, PUT, POST");

            HttpServletResponse resp = (HttpServletResponse) response;

            if (request.getMethod().equals("OPTIONS")) {
                resp.setStatus(HttpServletResponse.SC_ACCEPTED);
                return;
            }    

            chain.doFilter(request, response);
        }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...