Java 如何编程导航和内容之间的交互

Java 如何编程导航和内容之间的交互,java,jquery,servlets,Java,Jquery,Servlets,我的问题是: 我有一个index.html和(目前)两个servlet。一个是通过从DB中加载类别来生成导航,另一个是获取导航的文章并将其放在导航右侧的内容空间中。问题是,我不知道这两个servlet如何意外地一起工作。当我单击导航按钮时,内容空间将作为单个页面加载,或者根本不加载 首先,作为单个页面加载: 在我的index.html中,我有以下jQuery: $(document).ready(function() { $

我的问题是: 我有一个index.html和(目前)两个servlet。一个是通过从DB中加载类别来生成导航,另一个是获取导航的文章并将其放在导航右侧的内容空间中。问题是,我不知道这两个servlet如何意外地一起工作。当我单击导航按钮时,内容空间将作为单个页面加载,或者根本不加载

首先,作为单个页面加载:

在我的index.html中,我有以下jQuery:

    $(document).ready(function() {                        
        $('#navigation').load('Navigation');
        $('#content').load('Content');
    });
这是我的两个servlet,我正在将它们加载到这个索引文件中的div中

这是我的导航servlet的一个类别链接:

out.println("<li><a><form action='Content' method='get'><button type='submit'>" + k2.getKName() + "</button><input type='hidden' name='category' value='"+ k2.getKategorieNr() + "'/></form></a></li>");
上面我的表格上有一个id='cat'。但是现在导航不再加载了

我想使用第一个想法,但我不知道如何在索引中加载内容。我尝试了不同的插件,但没有成功


有没有人有完全不同的方法来解决这个问题?像控制器之类的?

这应该可以满足您的需要:

index.html:

<!DOCTYPE html>
<html>
<head>
<meta charset="ISO-8859-1">
<title>Insert title here</title>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.4/jquery.min.js"></script>

<script>

$(document).ready(function() {                        
$('#navigation').load('Navigation');
$('#content').load('Content?page=1');
});

$(document).on("click","a",function(){
    $('#content').load('Content?page='+$(this).attr('data-selectedpage'));
    return 0;
});


</script>


</head>
<body>
<div id="navigation"></div>
<br/>
<br/>
This is the loaded content
<div id="content"></div>
</body>
</html>
Navigation.java

import java.io.IOException;
import java.io.PrintWriter;

import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

/**
 * Servlet implementation class Navigation
 */
@WebServlet("/Navigation")
public class Navigation extends HttpServlet {
    private static final long serialVersionUID = 1L;
    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        PrintWriter wtr=  response.getWriter();
        wtr.println("<nav>");
        wtr.println("<a href='#'  data-selectedpage='1'>Page 1</a><br/>");
        wtr.println("<a href='#'  data-selectedpage='2'>Page 2</a><br/>");
        wtr.println("<a href='#'  data-selectedpage='3'>Page 3</a><br/>");
        wtr.println("</nav");
    }
}
import java.io.IOException;
导入java.io.PrintWriter;
导入javax.servlet.ServletException;
导入javax.servlet.annotation.WebServlet;
导入javax.servlet.http.HttpServlet;
导入javax.servlet.http.HttpServletRequest;
导入javax.servlet.http.HttpServletResponse;
/**
*Servlet实现类导航
*/
@WebServlet(“/Navigation”)
公共类导航扩展了HttpServlet{
私有静态最终长serialVersionUID=1L;
受保护的void doGet(HttpServletRequest请求,HttpServletResponse响应)抛出ServletException,IOException{
PrintWriter wtr=response.getWriter();
wtr.println(“”);
wtr.println(“
”); wtr.println(“
”); wtr.println(“
”);
println(“这不起作用。我看到的唯一一件事是“这是加载的内容”对我有效,你需要确保内容和导航java类也被复制到你的webapp(默认包)中,你是否在tomcat 7服务器上运行它??war文件(包括源代码)可以在这里下载:我如何使用搜索表单来实现这一点?这是同一个概念吗?我想是的-您只需在post URL的末尾包含搜索查询-post('Content?search='+search);
import java.io.IOException;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

/**
 * Servlet implementation class Content
 */
@WebServlet("/Content")
public class Content extends HttpServlet {
    private static final long serialVersionUID = 1L;


    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
    response.getOutputStream().println("Page: "+request.getParameter("page"));

    }

}
import java.io.IOException;
import java.io.PrintWriter;

import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

/**
 * Servlet implementation class Navigation
 */
@WebServlet("/Navigation")
public class Navigation extends HttpServlet {
    private static final long serialVersionUID = 1L;
    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        PrintWriter wtr=  response.getWriter();
        wtr.println("<nav>");
        wtr.println("<a href='#'  data-selectedpage='1'>Page 1</a><br/>");
        wtr.println("<a href='#'  data-selectedpage='2'>Page 2</a><br/>");
        wtr.println("<a href='#'  data-selectedpage='3'>Page 3</a><br/>");
        wtr.println("</nav");
    }
}