链接上的Servlet执行单击

时间:2014-07-24 11:14:14

标签: java jsp servlets

我有一个页面,你有下拉框和textarea。 下拉框中填充了从DB获得的值 我知道如何使用scriplet来做,但我想使用严格的servlet解决方案 问题是我知道如何使用它们,例如你点击形式等的底部。
但是我有一个带链接的菜单,我不知道该怎么做。 这是GET请求吗?我的链接只是http://localhost:8080/TestPage/functionNamesRegister.jsp
,从那里我直接跳到那个表单的页面。 我应该添加注释@WebServlet("functionNamesRegister")
然后创建一个具有该名称的servlet吗? 这是来自菜单<li><a href='functionNamesRegister.jsp' class='daddy'>Register FM Function Names</a></li>

的代码

对于我知道如何执行它们的servlet我是新手: <form name='myForm' action='componentRegisterServlet' method='post' onSubmit='return validateCrForm()'>

我真的很感谢你们的帮助。

3 个答案:

答案 0 :(得分:1)

Implement just like below example

web.xml

<servlet>
    <description>All XML Functions</description>
    <display-name>XMLTestServlets</display-name>
    <servlet-name>XMLTestServlets</servlet-name> <servlet-class>com.test.testProjects.XMLTestServlets</servlet-class>
    </servlet>

<servlet-mapping>
    <servlet-name>XMLTestServlets</servlet-name>
    <url-pattern>/XMLTestServlets</url-pattern>
</servlet-mapping>



in JSP:

<a href="<%=request.getContextPath()%>/XMLTestServlets">Link Name</a>

just try this...

答案 1 :(得分:1)

如果我理解你,那么你想通过点击一个链接执行一个Servlet,执行以下步骤:

  1. 在web.xml中定义servlet的配置。如果您这样做,那么不要使用WebServlet注释。

    <servlet> <servlet-name>s1</servlet-name> <servlet-class>packagename.className</servlet-class> </servlet> <servlet-mapping> <servlet-name>s1</servlet-name> <url-pattern>/yourUrl</url-pattern> </servlet-mapping>

  2. jsp有一个链接

  3. <a href="${pageContext.request.contextPath}/yourUrl">Link Name</a>

    <a href="<%=request.getContextPath()%>/yourUrl">Link Name</a>
    

答案 2 :(得分:0)

您应该调用Servlet而不是直接调用JSP页面 在servlet中编写代码以从数据库加载下拉数据,并将该数据设置为request属性并将请求转发到JSP页面。

下面是您的servlet的示例:

protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException 
{  

    String input = "Send this value to JSP";
    request.setAttribute("servlet_value",input);
    RequestDispatcher rd = request.getRequestDispatcher("display.jsp");
    rd.forward(request, response);
}  

在上面的代码中,使用函数request.setAttribute()传递request属性中的值。您可以传递其中的任何对象。之后,使用RequestDispatcherRequestDispatcher.forward()函数将您的请求转发到JSP页面 它将重定向到参数中给出的JSP页面。在JSP方面,您需要使用JSTL或使用EL(Expression Language)来读取此属性。

示例JSP代码:

<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
    pageEncoding="ISO-8859-1"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
 <head>
   <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
   <title>JSP Demo</title>
 </head>
 <body>
   The values from the servlet (ServletValues) is,
   <br>
   <br>
      ${servlet_value}
      <!-- servlet_value is set in the ServletValues servlet. -->
 </body>
</html>  

您可以在List或Map中的servlet存储中从数据库中读取数据,使用setAttribute , read your Map or List using JSTL`传递给它。