Форум программистов, компьютерный форум, киберфорум
Java EE (J2EE)
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 5.00/5: Рейтинг темы: голосов - 5, средняя оценка - 5.00
4 / 4 / 0
Регистрация: 25.10.2011
Сообщений: 84

Объясните новичку!

09.01.2018, 16:53. Показов 1083. Ответов 7
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Сразу прошу не отсылать к куче мануалов, я их пробовала читать и это мое первое web-приложение. У меня такой вопрос: существует стартовая jsp-страница. Мне нужно, чтобы сразу при загрузке на ней заполнялся компонент <select name="parameter" size="1"> списком из бд.
Вот, что есть на сегодняшний день(эти классы будут дополняться), учусь, так что все замечания принимаются
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
package map.belarus.beans;
 
public class MParameter {
    private String name;
    private String units;
    public MParameter() {  }
    public MParameter(String name, String units) {
        this.name = name;
        this.units = units;
    }
    public String getName() {
        return name;
    }
 
    public void setName(String name) {
        this.name = name;
    }
 
    public String getUnits() {
        return units;
    }
 
    public void setUnits(String units) {
        this.units = units;
    }
}
Миниатюры
Объясните новичку!  
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
09.01.2018, 16:53
Ответы с готовыми решениями:

Объясните новичку код
Код программы: import java.io.*; import java.util.Scanner; public class MyArray { int arr; int count; int...

Модульность в java, объясните пожалуйста новичку
Я уже знаком с синтаксисом в java, с устройством классов, объектов, наследованием, но не знаком ещё ни с одной библиотекой. Я где то читал...

Объясните новичку
Ребят,только только начинаю учить,вот скачала Microsoft visual studio 2010 ,вписала маленькую прогу и вот ошибка. В чём дело? Может нужно...

7
4 / 4 / 0
Регистрация: 25.10.2011
Сообщений: 84
09.01.2018, 16:59  [ТС]
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
package map.belarus.conn;
 
import java.sql.Connection;
import java.sql.SQLException;
 
public class ConnectionUtils {
    public static Connection getConnection()
            throws ClassNotFoundException, SQLException {
        return MSSQLServerConnUtils.getSQLServerConnection_JDBC();
    }
 
    public static void closeQuietly(Connection conn) {
        try {
            conn.close();
        } catch (Exception e) {
        }
    }
 
    public static void rollbackQuietly(Connection conn) {
        try {
            conn.rollback();
        } catch (Exception e) {
        }
    }
}
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
package map.belarus.conn;
 
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
 
public class MSSQLServerConnUtils {
    public static Connection getSQLServerConnection_JDBC() //
            throws ClassNotFoundException, SQLException {
 
        // Note: Change the connection parameters accordingly.
        String hostName = "192.168.29.206";
        String port = "1433";
        String database = "MetAggregator";
        String userName = "RHMC";
        String password = "9oSpMANP";
 
 
        return getSQLServerConnection_JDBC(hostName, port, database, userName, password);
    }
    private static Connection getSQLServerConnection_JDBC(String hostName, //
                                                             String port, String database, String userName, String password)//
            throws ClassNotFoundException, SQLException {
 
        Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");
 
 
        // Example:
        // jdbc:sqlserver://ServerIp:1433/SQLEXPRESS;databaseName=simplehr
        String connectionURL = "jdbc:sqlserver://" + hostName + ":" + port   //
                + ";databaseName=" + database;
        //System.out.println(connectionURL);
        Connection conn = DriverManager.getConnection(connectionURL, userName, password);
        return conn;
    }
}
Добавлено через 32 секунды
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
package map.belarus.filter;
 
import map.belarus.conn.ConnectionUtils;
import map.belarus.utils.DBUtils;
 
import java.io.IOException;
import java.sql.Connection;
import java.util.Collection;
import java.util.Map;
 
import javax.servlet.Filter;
import javax.servlet.FilterChain;
import javax.servlet.FilterConfig;
import javax.servlet.ServletException;
import javax.servlet.ServletRegistration;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;
import javax.servlet.annotation.WebFilter;
import javax.servlet.http.HttpServletRequest;
 
@WebFilter(filterName = "jdbcFilter", urlPatterns = { "/*" })
public class JDBCFilter  implements Filter{
    public JDBCFilter() {
    }
 
    public void init(FilterConfig fConfig) throws ServletException {
    }
 
    public void destroy() {
    }
 
    // Проверяем является ли Servlet цель текущего request?
    private boolean needJDBC(HttpServletRequest request) {
        System.out.println("JDBC Filter");
        String servletPath = request.getServletPath();
        String pathInfo = request.getPathInfo();
        //System.out.println(servletPath + " " + pathInfo);
        String urlPattern = servletPath;
        if (pathInfo != null) {
            // => /spath/*
            urlPattern = servletPath + "/*";
            //System.out.println(urlPattern);
        }
        Map<String, ? extends ServletRegistration> servletRegistrations = request.getServletContext()
                .getServletRegistrations();
        // Коллекционировать все Servlet в вашем WebApp.
        Collection<? extends ServletRegistration> values = servletRegistrations.values();
        for (ServletRegistration sr : values) {
            Collection<String> mappings = sr.getMappings();
            if (mappings.contains(urlPattern)) {
                return true;
            }
            //System.out.println(mappings.toString());
        }
        return false;
    }
    public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException {
        HttpServletRequest req = (HttpServletRequest) request;
        // Открыть  connection (соединение) только для request со специальной ссылкой.
        // (Например ссылка к servlet, jsp, ..)
        // Избегать открытия Connection для обычных запросов.
        // (Например image, css, javascript,... )
        System.out.println(needJDBC(req));
        if (this.needJDBC(req)) {
 
            System.out.println("Open Connection for: " + req.getServletPath());
 
            Connection conn = null;
            try {
                // Создать объект Connection подключенный к database.
                conn = ConnectionUtils.getConnection();
                //System.out.println("conn OK");
                // Настроить автоматический commit false, чтобы активно контролировать.
                conn.setAutoCommit(false);
 
                // Разрешить request продвигаться далее.
                // (Далее к следующему Filter или к цели).
                chain.doFilter(request, response);
                //System.out.println("chain OK");
                // Вызвать метод commit() чтобы завершить транзакцию с DB.
                conn.commit();
            } catch (Exception e) {
                e.printStackTrace();
                ConnectionUtils.rollbackQuietly(conn);
                throw new ServletException();
            } finally {
                ConnectionUtils.closeQuietly(conn);
            }
        }
        // Для обычных request (image,css,html,..)
        // не нужно открывать connection.
        else {
            // Разрешить request продвигаться далее.
            // (Далее к следующему Filter или к цели).
            chain.doFilter(request, response);
        }
    }
Добавлено через 45 секунд
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
package map.belarus.servlet;
 
import map.belarus.beans.MParameter;
import map.belarus.conn.ConnectionUtils;
import map.belarus.utils.DBUtils;
 
import java.io.IOException;
import java.sql.Connection;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.List;
 
import javax.servlet.RequestDispatcher;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
 
public class ParameterListServlet extends javax.servlet.http.HttpServlet {
    protected void doPost(javax.servlet.http.HttpServletRequest request, javax.servlet.http.HttpServletResponse response) throws javax.servlet.ServletException, IOException {
 
    }
 
    protected void doGet(javax.servlet.http.HttpServletRequest request, javax.servlet.http.HttpServletResponse response) throws javax.servlet.ServletException, IOException {
        try {
            Connection conn = ConnectionUtils.getConnection();
            Statement statParam = conn.createStatement();
            String errorString = null;
            List<MParameter> list = null;
            try {
                list = DBUtils.queryParameter(conn);
            } catch (SQLException e) {
                e.printStackTrace();
                errorString = e.getMessage();
            }
 
            // Сохранить информацию в request attribute перед тем как forward к views.
            request.setAttribute("errorString", errorString);
            request.setAttribute("parameterList", list);
 
            // Forward к /WEB-INF/views/productListView.jsp
            RequestDispatcher dispatcher = request.getServletContext()
                    .getRequestDispatcher("/WEB-INF/startMap.jsp");
            dispatcher.forward(request, response);
        } catch (ClassNotFoundException e) {
            e.printStackTrace();
        } catch (SQLException e) {
            e.printStackTrace();
        }
    }
}
Добавлено через 42 секунды
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
package map.belarus.utils;
 
import map.belarus.beans.MParameter;
 
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.List;
 
//import org.o7planning.simplewebapp.beans.UserAccount;
 
public class DBUtils {
    public static List<MParameter>queryParameter(Connection conn) throws SQLException{
        String sql = "SELECT Name, Units FROM dbo.MeasuringType Order by Name;";
        PreparedStatement psParameter = conn.prepareStatement(sql);
        ResultSet rsParameter = psParameter.executeQuery();
        List<MParameter> list = new ArrayList<MParameter>();
        while (rsParameter.next()) {
            String name = rsParameter.getString("Name");
            String units = rsParameter.getString("Units");
            MParameter parameter = new MParameter();
            parameter.setName(name);
            parameter.setUnits(units);
            System.out.println(name + " " + units);
            list.add(parameter);
        }
 
        return list;
    }
}
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
package map.belarus.utils;
 
import java.sql.Connection;
import javax.servlet.ServletRequest;
 
public class ParameterUtils {
    public static final String ATT_NAME_CONNECTION = "ATTRIBUTE_FOR_CONNECTION";
    // Сохранить Connection в attribute в request.
    // Данная информация хранения существует только во время запроса (request)
    // до тех пор, пока данные возвращаются приложению пользователя.
    public static void storeConnection(ServletRequest request, Connection conn) {
        request.setAttribute(ATT_NAME_CONNECTION, conn);
    }
    // Получить объект Connection сохраненный в attribute в request.
    public static Connection getStoredConnection(ServletRequest request) {
        Connection conn = (Connection) request.getAttribute(ATT_NAME_CONNECTION);
        return conn;
    }
}
Добавлено через 2 минуты
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
  <head>
      <title>Карта Беларуси</title>
      <meta charset="UTF-8">
      <meta name="viewport" content="width=device-width, initial-scale=1.0">
      <script src="https://d3js.org/d3.v4.js"></script>
      <script src="https://unpkg.com/topojson-client@2"></script>
      <link rel="stylesheet" href="assets/css/belMap.css" type="text/css">
  </head>
  <body>
  <header>
      <img src="assets/img/logotype.png" class="logo">
      <h1>Белгидромет</h1>
  </header>
  <h2>Данные с автоматических метеостанций за </h2>
  <form method="get"><h3>Метеорологический или гидрологический параметр
      <select name="parameter" size="1">
        вывести список
      </select></h3></form>
  <a>Карта</a><a>Таблица(за текущие метеосутки)</a>
  <div class="map">
      <%--<div class="menu"></div>--%>
      <%--<div  ></div>--%>
      <div id="container" class="container"><script src="assets/js/map.js"></script></div>
  </div>
  </body>
</html>
Добавлено через 50 секунд
XML
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
<?xml version="1.0" encoding="UTF-8"?>
<web-app 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"
         version="3.1">
 
    <welcome-file-list>
        <welcome-file>startMap.jsp</welcome-file>
    </welcome-file-list>
    <!--<servlet>-->
    <!--<servlet-name>ParameterListServlet</servlet-name>-->
    <!--<servlet-class>map.belarus.servlet.ParameterListServlet</servlet-class>-->
    <!--</servlet>-->
    <!--<servlet-mapping>-->
    <!--<servlet-name>ParameterListServlet</servlet-name>-->
    <!--<url-pattern>/*</url-pattern>-->
    <!--</servlet-mapping>-->
    <filter-mapping>
        <filter-name>jdbcFilter</filter-name>
        <url-pattern>/*</url-pattern>
    </filter-mapping>
 
</web-app>
0
Эксперт Java
3639 / 2971 / 918
Регистрация: 05.07.2013
Сообщений: 14,220
09.01.2018, 17:09
Цитата Сообщение от Tasha* Посмотреть сообщение
request.setAttribute("parameterList", list);
// Forward к /WEB-INF/views/productListView.jsp
* * * * * * RequestDispatcher dispatcher = request.getServletContext()
* * * * * * * * * * .getRequestDispatcher("/WEB-INF/startMap.jsp");
вот ты засунула list, в jsp доставай его и делай, что требуется
0
4 / 4 / 0
Регистрация: 25.10.2011
Сообщений: 84
10.01.2018, 10:22  [ТС]
добавляю в jsp
Java
1
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
, ругается на http://java.sun.com/jsp/jstl/core, в чем может быть причина
0
Эксперт Java
3639 / 2971 / 918
Регистрация: 05.07.2013
Сообщений: 14,220
10.01.2018, 11:18
https://stackoverflow.com/ques... annot-be-r
0
4 / 4 / 0
Регистрация: 25.10.2011
Сообщений: 84
10.01.2018, 13:57  [ТС]
все равно не работает, уже не знаю, что и читать
pom.xml
XML
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>
 
    <groupId>by.belgidromet</groupId>
    <artifactId>Belarus.map</artifactId>
    <version>1.0-SNAPSHOT</version>
 
    <dependencies>
        <dependency>
            <groupId>javax.servlet</groupId>
            <artifactId>jstl</artifactId>
            <version>1.2</version>
        </dependency>
        <dependency>
            <groupId>org.jvnet.jax-ws-commons</groupId>
            <artifactId>jaxws-maven-plugin</artifactId>
            <version>2.3</version>
        </dependency>
    </dependencies>
</project>
Миниатюры
Объясните новичку!  
Изображения
 
0
4 / 4 / 0
Регистрация: 25.10.2011
Сообщений: 84
11.01.2018, 16:28  [ТС]
пробовала добавлять и в WEB-INF/lib, не помогло

Добавлено через 56 секунд
XML
1
2
3
<groupId>javax.servlet</groupId>
            <artifactId>jstl</artifactId>
            <version>1.2</version>
это все подчеркивается

Добавлено через 2 часа 53 минуты
Есть и другой вопрос: мой лист не заполняется при открытии стартовой страницы, понятно, что это связано с mapping и фильтром. Так вот вопрос - как прописать servlet-mapping, чтобы ParameterListServlet отрабатывал в момент запуска стартовой страницы. Может это не возможно, и я спрашиваю глупость...тогда подскажите, как должна быть выстроена логика

Добавлено через 23 часа 34 минуты
надо было разобраться с прокси, вечно я о нем забываю
0
4 / 4 / 0
Регистрация: 25.10.2011
Сообщений: 84
16.01.2018, 10:36  [ТС]
разобралась сама. Можно делать так, как делала я, но проблема в том, что когда подгружаются данные и БД нужно перегружать страницу, по крайней мере, я добилась результата только так. Поэтому, я решила, что лучше подгружать кусочек с данными из БД с помощью jquery (AJAX). Вот, что вышло у меня, может кому пригодится:
startMap.jsp
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
<html>
<head>
    <title>Карта Беларуси</title>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <script src="https://d3js.org/d3.v4.js"></script>
    <script src="https://unpkg.com/topojson-client@2"></script>
    <link rel="stylesheet" href="assets/css/belMap.css" type="text/css">
    <script type="text/javascript" src="assets/js/jquery-3.2.1.js"></script>
</head>
<body>
<header>
    <img src="assets/img/logotype.png" class="logo">
    <h1>Белгидромет</h1>
</header>
<h2>Данные с автоматических метеостанций за </h2>
<form><h3>Метеорологический или гидрологический параметр
    <select id="parameter" name="parameter" size="1">
        <script type="text/javascript">
           $(document).ready(function(){
                $.get("ParameterList", function (responseXml) {
                    $("#parameter").html($(responseXml).find("data").html());
                })
            });
 
 
        </script>
 
    </select></h3></form>
<a>Карта</a><a>Таблица(за текущие метеосутки)</a>
<div class="map">    
    <div id="container" class="container"><script src="assets/js/map.js"></script></div>
</div>
</body>
</html>
parameterList.jsp
Java
1
2
3
4
5
6
7
8
<?xml version="1.0" encoding="UTF-8"?>
<%@ page contentType="application/xml" pageEncoding="UTF-8"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
<data>
    <c:forEach items="${parameterList}" var="parameter">
        <option>${parameter.name}, ${parameter.units}</option>
    </c:forEach>
</data>
запись в web.xml
XML
1
2
3
4
5
6
7
<servlet-name>ParameterListServlet</servlet-name>
    <servlet-class>map.belarus.servlet.ParameterListServlet</servlet-class>
    </servlet>
    <servlet-mapping>
    <servlet-name>ParameterListServlet</servlet-name>
    <url-pattern>/ParameterList</url-pattern>
    </servlet-mapping>
Добавлено через 3 минуты
в сервлете заменила одну строку
Java
1
2
RequestDispatcher dispatcher = request.getServletContext()
                    .getRequestDispatcher("/WEB-INF/xml/parameterList.jsp");
Добавлено через 49 секунд
если есть замечания, пишите
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
16.01.2018, 10:36
Помогаю со студенческими работами здесь

объясните новичку
Купил место на хостинге, вроде сделал новую базу данных на MySQL, залил главную страницу index.html, Пытаешся зайти на сайт, пишит error....

Объясните новичку
Здравстуйте, хочу изучить WScript, не знаю с чего начать, хочу написать программу, которая будет автоматически обновлять конфигурации в 1С...

Объясните новичку
Я новичок в SEO мне нужно рабочие примеры. Скажите пожалуйста с каких азы начинать оптимизировать свой сайт. Теги, загаловки неужели...

Ui->gridLayout. Объясните новичку
Увидела хороший способ для удобного расположения кнопок. Выглядеть должно так. Но у ui нет такого метода. Что сделать? ошибка: 'class...

Объясните новичку по коду
Ребята, помогите разобраться. В тренировочных целях пишу такой вот код : { static void Main() { ...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
Новые блоги и статьи
Ритм жизни
kumehtar 27.02.2026
Иногда приходится жить в ритме, где дел становится всё больше, а вовлечения в происходящее — всё меньше. Плотный график не даёт вниманию закрепиться ни на одном событии. Утро начинается с быстрых,. . .
SDL3 для Web (WebAssembly): Сборка библиотек SDL3 и Box2D из исходников с помощью CMake и Emscripten
8Observer8 27.02.2026
Недавно вышла версия SDL 3. 4. 2 библиотеки SDL3. На странице официальной релиза доступны исходники, готовые DLL (для x86, x64, arm64), а также библиотеки для разработки под Android, MinGW и Visual. . .
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
Конвертировать закладки radiotray-ng в m3u-плейлист
damix 19.02.2026
Это можно сделать скриптом для PowerShell. Использование . \СonvertRadiotrayToM3U. ps1 <path_to_bookmarks. json> Рядом с файлом bookmarks. json появится файл bookmarks. m3u с результатом. # Check if. . .
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так: https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347 Основана на STM32F303RBT6. На борту пять. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru