我有一个页面,你有下拉框和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()'>
我真的很感谢你们的帮助。
答案 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,执行以下步骤:
在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>
在jsp
有一个链接
<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属性中的值。您可以传递其中的任何对象。之后,使用RequestDispatcher和RequestDispatcher.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`传递给它。