我有以下 HTML。我希望在单击链接时将 URL“http://www.google.com”插入到数据库表中。
<a href="http://www.google.com" onclick="insert.jsp">Google</a>
insert.jsp
包含连接代码,单击按钮即可正常工作,但上面的代码不起作用。
最佳答案
在所有这些链接上使用 rel="ext"
,它可以提供额外的 SEO 优势
<a href="http://www.google.com" rel="ext">
<a href="http://www.stackoverflow.com" rel="ext">
...
并使用这段 JavaScript 来记录它们(我只是简单地利用 jQuery 使其可靠地跨浏览器兼容,而无需再编写 100 行)
$('a[rel=ext]').click(function(e) {
var $link = $(this);
var url = '/log?url=' + encodeURIComponent($link.attr('href'));
if (e.ctrlKey || $link.attr('target') == '_blank') {
window.open(url);
} else {
window.location = url;
}
e.preventDefault();
});
终于有了servlet在 /log
的 URL 模式上完成这项工作
@WebServlet("/log")
public class LogServlet extends HttpServlet {
@EJB
private LogService logService;
@Override
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
String url = request.getParameter("url");
if (url == null || url.trim().isEmpty()) {
response.sendError(HttpServletResponse.SC_BAD_REQUEST);
} else {
logService.log(url);
response.sendRedirect(url);
}
}
}
不要为此使用 JSP。这没有任何意义。
关于java - 如何捕获并记录外部 URL 链接上的点击事件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9441591/