将servlet链接到选项卡菜单

时间:2016-07-29 15:09:36

标签: java html jsp servlets java-ee

我对servlet/jsp/html有疑问。我有一个标签菜单:



<ul class="nav nav-pills">
    <li class="active"><a data-toggle="pill" href="#list">LIST OF PRODUCTS</a></li>
    <li><a data-toggle="pill" href="#add">ADD PRODUCT</a></li>
</ul>
  
<div class="tab-content">
   <div id="list" class="tab-pane fade in active">
      <h3>LIST OF PRODUCTS</h3>
      <p>Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.</p>
   </div>

   <div id="add" class="tab-pane fade">
      <h3>ADD PRODUCT</h3>
      <p>Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.</p>
   </div>
&#13;
&#13;
&#13;

当我按下标签并因此在servlet中调用jsp而不是:

时,我想关联tab-content
 <p>Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.</p>    

我的servlet代码:

@WebServlet(name = "NewServlet", urlPatterns = {"/NewServlet"})
public class NewServlet extends HttpServlet {

@EJB
private BDBeanLocal bDBean;

/**
 * Processes requests for both HTTP <code>GET</code> and <code>POST</code>
 * methods.
 *
 * @param request servlet request
 * @param response servlet response
 * @throws ServletException if a servlet-specific error occurs
 * @throws IOException if an I/O error occurs
 */
protected void processRequest(HttpServletRequest request, HttpServletResponse response)
        throws ServletException, IOException {

        ArrayList<Products> list = new ArrayList<Products>();
        list =  bDBean.listaProdotti();

        request.setAttribute("lista", list);

        String arg = "/" + this.getServletName() + ".jsp";
        RequestDispatcher dispatcher = this.getServletContext().getRequestDispatcher(arg);
        dispatcher.forward(request, response);


    }

    @Override
    protected void doGet(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {
        processRequest(request, response);
    }

    @Override
    protected void doPost(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {
        processRequest(request, response);
    }

    @Override
    public String getServletInfo() {
    return "Short description";
    }// </editor-fold>

}

这是我的web.xml

 <?xml version="1.0" encoding="UTF-8"?>
<web-app version="3.1" xmlns="http://xmlns.jcp.org/xml/ns/javaee"         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd">
<servlet>
    <servlet-name>NewServlet</servlet-name>
    <servlet-class>servlet.NewServlet</servlet-class>
</servlet>
<servlet>
    <servlet-name>loginServlet</servlet-name>
    <servlet-class>servlet.loginServlet</servlet-class>
</servlet>
<servlet-mapping>
    <servlet-name>NewServlet</servlet-name>
    <url-pattern>/NewServlet</url-pattern>
</servlet-mapping>
<servlet-mapping>
    <servlet-name>loginServlet</servlet-name>
    <url-pattern>/loginServlet</url-pattern>
</servlet-mapping>
<session-config>
    <session-timeout>30</session-timeout>
</session-config>

1 个答案:

答案 0 :(得分:1)

使超链接具有您在web.xml文件中定义的servlet映射的URL。

servlet-mapping元素定义了servlet和URL模式之间的映射。下面的示例将名为myservlet的servlet映射到以/foo开头的任何URL:

<servlet>
   <servlet-name>myservlet</servlet-name>
   <servlet-class>com.foo.examples.MyServlet</servlet-class>
</servlet>
<servlet-mapping>
   <servlet-name>myservlet</servlet-name>
   <url-pattern>/anything/*</url-pattern>
</servlet-mapping>

对于此示例,诸如<a href="/anything/test.html">Click Me</a>之类的超链接将调用servlet。

url-pattern您说/anything之后的每个请求都应由 myservlet Servlet处理。之后,您在servlet Servlet中定义的内容(test.html)将{strong}发送请求发送至URL pattern

<强> -----------

调用servlet的另一种方法是使用参数。

myservlet

我希望这会对你有所帮助。