2014-07-24 4 views
0

У меня есть страница с раскрывающимся списком и текстовым полем. В раскрывающемся списке отображаются значения, полученные из базы данных.
Я знаю, как это сделать, используя scriplets, но я хочу использовать строго сервлет решения.
Проблема в том, что я знаю, как их использовать, например, когда вы нажимаете на нижнюю часть формы и т. Д.
Но где у меня есть меню со ссылкой, я понятия не имею, что делать. Это запрос GET?
Моя ссылка
http://localhost:8080/TestPage/functionNamesRegister.jsp
и оттуда я прыгаю прямо на страницу с этой формой. Следует ли добавить аннотацию @WebServlet("functionNamesRegister")
, а затем создать сервлет с таким именем? Это код из меню <li><a href='functionNamesRegister.jsp' class='daddy'>Register FM Function Names</a></li>
Выполнение сервлета по ссылке Нажмите

Я совершенно новой для сервлетов я знаю, как выполнить их, когда у меня есть что-то вроде: <form name='myForm' action='componentRegisterServlet' method='post' onSubmit='return validateCrForm()'>

Я был бы очень признателен за любую помощь от вас, ребята.

+0

Вам нужно получить данные для выпадающего списка, когда ваш файл jsp загружается в браузере без использования скрипта? –

+0

да, что я хочу сделать –

+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... 
+0

Тестирование Это я вампир, как получилось –

1

Если я вас прямо тогда понял вы хотите выполнить Servlet, нажав на ссылку сделать следующие шаги:

  1. В web.xml определяют конфигурацию сервлета. Если вы это сделаете, не используйте аннотацию 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 есть ссылка

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

или

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

Eclipse делает это для меня, разве? У меня есть отображение для всех сервлетов Я просто хочу предварительно загрузить некоторые данные из БД и распечатать их на экране при нажатии этой ссылки. Но я не хочу иметь ссылку вроде: 'printdb? Action = print' just' printdb.jsp' или что-то подобное –

+0

то что вы можете сделать, это сделать сервлет подключиться к базе данных и получить данные и сохранить данные в некоторый объект Collection и установите его в ответ и передайте его в jsp, извлеките коллекцию из запроса и распечатайте его – SparkOn

+0

Я знаю это, но я хочу сделать это автоматически, когда кто-то нажимает на эту ссылку –

0

Вы должны позвонить Servlet вместо вызова непосредственно JSP-страницы.
Запишите код сервлета, чтобы загрузить данные для выпадающего списка из базы данных и установить эти данные для запроса атрибута и перенаправления вашего запроса на страницу JSP.

Sample пример ниже для вашего сервлета:

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(). Вы можете передать любой объект в него. После этого отправьте свой запрос на страницу JSP с помощью функции RequestDispatcher и RequestDispatcher.forward().
Он будет перенаправлен на вашу страницу 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> 

Вы можете прочитать данные из базы данных в сервлет магазине в списке или на карте, прошли это с помощью SetAttribute , read your Map or List using JSTL`.

Смежные вопросы