gpt4 book ai didi

java - 如何从 jsp 在 servlet 中返回 Url 命中?我想统计url被点击的次数

转载 作者:行者123 更新时间:2023-11-30 08:59:50 24 4
gpt4 key购买 nike

我有一个 favoritelist.jsp 来显示 Collection 的 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 和 Comment 时,控件返回到 servlet,将 rec 插入 db 并显示回 favoritelist.jsp。但是,当我单击第二个表中显示的任何 URL 时,该 URL 会发生变化。//例如。 myApp/favoritelist.jsp?hitid=21&url=asas&comment=sasasa
之后没有任何回应。它甚至不进入我要检查 sysout 语句的登录 servlet。谢谢

最佳答案

    <td><a href="<c:url value=''>

当您点击 SerVlet 或 JSP 时,您并未提供任何指向该 SerVlet 或 JSP 的链接。这是一个死链接,这就是为什么没有逻辑在运行并且当您单击该链接时它停留在同一页面上的原因。

提供指向 jsp 或 servlet 的链接,无论您的代码如何处理,它都会起作用。

关于java - 如何从 jsp 在 servlet 中返回 Url 命中?我想统计url被点击的次数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27084347/

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