Как я могу получить хиты обратно в сервлете из JSP? Я хочу посчитать, сколько раз кликнул по ссылке

1

У меня есть favoritelist.jsp, чтобы отобразить список любимых URL-адресов, комментариев и кликов.

     //favoritelist.jsp

    <%@ page language="java" contentType="text/html; charset=ISO-8859-1"
        pageEncoding="ISO-8859-1"%>
    <%@page import="org.rss.beans.UserBean"%>
    <%@page import="org.rss.beans.FavoriteBean"%>
    <%@page import="java.util.ArrayList;"%>

    <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    <jsp:useBean id="formHandler1" class="org.rss.beans.FavoriteBean"
        scope="request" />

    <html>
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
    <title>Welcome</title>
    <%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
    <style>

    table+table {
        margin-top: 20px
    }
    </style>
    </head>
    <body>
        <form action="processfavoritelist.jsp" method="post">

            <%
                UserBean currentUser = (UserBean)session.getAttribute("currentSessionUser");
            %>
            <%
                ArrayList<?> favoriteList =(ArrayList<?>) session.getAttribute("listFav");
            %>
            <center>

                <a>
                    Favorites for
                    <%=currentUser.getFirstName()  + " " + currentUser.getLastName()%>
                </a>
                <br>
                <font size=2><sup>*</sup> Required Fields</font>
                <table cellpadding=4 cellspacing=2 border=1>
                    <tr>
                        <td align="left">URL<sup>*</sup></td>
                        <td align="left"><input type="text" name="url"
                            value='<%=formHandler1.getUrl()%>' /> <br>
                        <font size=2 color=red><%=formHandler1.getErrorMsg("url")%></font>
                        </td>
                    </tr>
                    <tr>
                        <td align="left">Comment<sup>*</sup></td>
                        <td align="left"><input type="text" name="comment"
                            value='<%=formHandler1.getComment()%>' /> <br>
                        <font size=2 color=red><%=formHandler1.getErrorMsg("comment")%></font>
                        </td>
                    </tr>
                    <tr>
                        <td colspan="2" align="center"><input type="submit"
                            value="Add Favorite" name="addFavorite" /></td>
                    </tr>

                </table>

                <table cellpadding=4 cellspacing=2 border=3>
                    <tbody>
                        <tr>
                            <th>URL</th>
                            <th>Comments</th>
                            <th>Clicks</th>
                        </tr>
                        <c:forEach items="${listFav}" var="fav">
                            <tr>
                                <td><a href="<c:url value=''>
                                <c:param name="hits" value="${fav.clickCount}"/>
                                <c:param name="url" value="${fav.url}"/>
                                <c:param name="comment" value="${fav.comment}"/>

                                </c:url>">${fav.url}  </a>
                                </td>
                                <td><c:out value="${fav.comment}"></c:out></td>
                                <td><c:out value="${fav.clickCount}"></c:out></td>
                            </tr>
                        </c:forEach>
                    </tbody>
                </table>

            </center>
        </form>
    </body>
    </html>

Элемент управления перейдет к processfavoritelist.jsp где я проверю наличие ошибок в URL-адресе и комментариях, введенных в текстовое поле. Если это действительно так, элемент управления должен перейти в Login Servlet.

    //processfavoritelist.jsp

    <%@ page import="java.util.*" %>
    <%@ page import="java.lang.*" %>
    <jsp:useBean id="formHandler1" class="org.rss.beans.FavoriteBean" scope="request">
    <jsp:setProperty name="formHandler1" property="*"/>
    </jsp:useBean>

    <%System.out.println("----------------------Inside processfavoritelist.jsp");%>
    <% 
       if (formHandler1.validate("favoritelist")) {
    %>
         <jsp:forward page="login"/>
    <%
       }  else {
    %>
        <jsp:forward page="favoritelist.jsp"/>
    <%
       }
    %>

Когда я ввожу URL и комментарий в текстовое поле, элемент управления возвращается к сервлету, вставляет rec в db и отображает обратно на favoritelist.jsp. Но когда я нажимаю на любой URL, отображаемый во второй таблице, URL-адрес изменяется. // например. MYAPP/favoritelist.jsp? hitid = 21 & URL = ASAS и комментарии = sasasa
И после этого ответа нет. Он даже не входит в сервлет входа в систему, где у меня есть операторы sysout для проверки. благодаря

  • 0
    Можете ли вы объяснить больше, когда это работает, а когда нет. И, пожалуйста, поделитесь своим методом formHandler1.validate чтобы
  • 0
    Привет, я обновил код выше. Его перенаправление на processlogin.jsp. Даже оператор sysout в processfavoritelist.jsp не работает. Это потому, что значение в href равно ''? Когда я нажимаю на любой URL во второй таблице, URL выглядит следующим образом: localhost: 8080 / Login /…
Показать ещё 1 комментарий
Теги:
jsp
servlets
jstl

1 ответ

2
Лучший ответ
    <td><a href="<c:url value=''>

ВЫ НЕ ПРЕДОСТАВЛЯЕТЕ ЛЮБОЙ СВЯЗЬ С СЕРВЕЛЕМ ИЛИ JSP, КОГДА ВЫ НАЖМИТЕ НА ЭТО. iT - МЕРТВАЯ ЛИНИЯ, КОТОРЫЕ НЕ ПОСЕТИЛИ ЛОГИКУ, И КОГДА ВЫ НАЖМИТЕ НА ССЫЛКЕ, ЧТО ЭТО ОСТАЕТСЯ НА ОДНОЙ СТРАНИЦЕ.

Предоставьте ссылку на jsp или сервлет, обрабатывая ваш код, и он будет работать.

  • 0
    мой плохой ... Я ранее предоставлял ссылку на свой сервлет, но в doGet () не было никакого метода / государственных деятелей. Благодаря тонну

Ещё вопросы

Сообщество Overcoder
Наверх
Меню