Получить информацию из JSP (форма) в Java Bean - PullRequest
1 голос
/ 25 августа 2010

У меня есть форма JSP.Мое требование состоит в том, чтобы получить данные этой формы и создать объект java-бинов на стороне сервера.

Пример: моя форма имеет такие поля, как Имя, SSN, EMAIL и номер телефона

public class Test {


  long ssv= 1282199222991L;
  long phone= 4082224444L;
  String email = "abcdef@yahoo.com";
  String name="abcdef"


}

Исходя из моих знаний, я думал о создании объекта bean-компонента с использованием сервлета, созданного из JSP, на стороне сервера.Мой вопрос: как мне получить доступ к сервлету, созданному сервером, для получения данных переменных?

PS: я новичок в веб-программировании и серверных сценариях.Пожалуйста, дайте мне знать, если вопрос не ясен.Любая информация была бы очень ценной для меня.Пожалуйста, дайте мне знать, если я думаю правильно.Трейлер Спасибо!

Ответы [ 4 ]

3 голосов
/ 25 августа 2010

JSP действительно должен отправить форму сервлету. Сервлет должен действительно создать bean-компонент и использовать его для передачи отправленных данных через необходимые слои (сохранение в базе данных с использованием класса DAO и / или повторное отображение в результате JSP после отправки).

Вот пример того, как должна выглядеть JSP:

<form action="register" method="post">
    <p><input name="name">
    <p><input name="email">
    <p><input name="phone">
    <p><input name="ssv">
    <p><input type="submit">
</form>

А вот как вы можете написать doPost() метод сервлета, который прослушивает url-pattern из /register.

String name = request.getParameter("name");
String email = request.getParameter("email");
String phone = request.getParameter("phone");
String ssv = request.getParameter("ssv");

// Do the necessary validations here and then ..

User user = new User(name, email, phone, Long.valueOf(ssv));

// Now you have an User javabean with the necessary information.
// Do with it whatever you want. E.g. saving in database.

userDAO.save(user);

Смотри также:

3 голосов
/ 30 декабря 2013

Ну, это было давно, так как этот вопрос был задан.Однако я считаю, что это обязательный ответ.

Начните с HTML-формы, чтобы собрать данные, как показано ниже (я использовал только имя пользователя и адрес электронной почты)

<HTML>
<BODY>
<FORM METHOD=POST ACTION="process.jsp">
Name <INPUT TYPE=TEXT NAME=Name SIZE=20><BR>
Email <INPUT TYPE=TEXT NAME=email SIZE=20><BR>
<P><INPUT TYPE=SUBMIT>
</FORM>
</BODY>
</HTML>

Чтобы собрать эти данные вbean создайте класс, например MyData, как показано

package datapackage;

public class MyData{
String name;
String email;

public void setName( String value )
{
    name = value;
}

public void setEmail( String value )
{
    email = value;
}

public String getName() { return name; }

public String getEmail() { return email; }

}

Убедитесь, что он скомпилирован и доступен для среды вашего приложения

Затем создайте JSP-страницу process.jsp для получения этих данных

<jsp:useBean id="data" class="datapackage.MyData" scope="session"/>
<jsp:setProperty name="data" property="*"/> 
<HTML>
<BODY>
You can output the data here too with e.g.  <%= data.getName() %> but that was not your question 
</BODY>
</HTML>

На данный момент у вас есть объект в сеансе (может быть в области страницы, приложения и области запроса, если вы установите параметр области на странице jsp для любого из них).Любой сервлет, который вызывается, пока у пользователя есть действительный сеанс после заполнения формы, может получить доступ к объекту из сеанса следующим образом:

package datapackage;
import java.io.IOException;
import javax.servlet.http.*;

public class SalesServlet extends HttpServlet {
    public void doGet(HttpServletRequest req, HttpServletResponse resp)
            throws IOException {
        HttpSession session = request.getSession();
        MyData d  = (MyData)session.getAttribute("data"); //data is the variable name set in the JSP page
    }
}

Я полагаю, что это общий поток, показывающий, как выможет получить доступ к данным Java Bean из сервлета.

1 голос
/ 25 августа 2010

Взгляните на учебник по Обработка данных формы

0 голосов
/ 29 июня 2015

если вам нужно находиться далеко от сервлетов, вы можете передавать объект другим JSP с одной страницы на другую.

скажем, ваш класс com.company.beans.User

на первой странице GetInput.jsp у вас есть следующий код

<jsp:useBean id="user" class=com.company.beans.User />

теперь объект-пользователь может повторно использоваться на всех страницах JSP, например, контейнер создает экземпляр класса.

на той же странице вы можете иметь форму, которая передает ввод формы на другую страницу JSP

<form action="second.jsp">
   <input type="text" name="uname"/>
   <input type="password" name="pass"/>
   <input type="submit" value="submit"/>
</form>

на второй странице вы можете получить доступ к объекту с именем user

<jsp:useBean id="user" class="com.deeb.beans.User"  />
<%
    user.setUsername(request.getParameter("uname"));
    user.setPassword(request.getParameter("pass"));

%>

также на другой странице вы можете получить значения

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...