powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Java [игнор отключен] [закрыт для гостей] / Выполнение сервлета. Jserv+apache
11 сообщений из 11, страница 1 из 1
Выполнение сервлета. Jserv+apache
    #33027107
fcs
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
fcs
Гость
Здравствуйте.
Ситуация:
есть сервлет - соединяется с БД выполняет запрос клиента. всё это дело работает с apache.

Вопрос: бывают ситации одноврменного доступа несколько пользователей заходят и выполняют запрос на поиск человека. Один нашёл, другоё нашёл а следующему возвращается результат не его запроса, а совсем другого (уже отбработанного). С чем это может быть связано. Где искать ?
...
Рейтинг: 0 / 0
Выполнение сервлета. Jserv+apache
    #33027135
GMax
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Может синхронизировать метод, который осуществляет поиск, чтобы к нему имел доступ только один пользователь?
...
Рейтинг: 0 / 0
Выполнение сервлета. Jserv+apache
    #33027146
А.Грасоff™ JE
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
м.б., результат запроса кэшируется?
...
Рейтинг: 0 / 0
Выполнение сервлета. Jserv+apache
    #33027192
fcs
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
fcs
Гость
Если он кешируется - где это чудо убрать. Я так понимаю это в настройках apache.
...
Рейтинг: 0 / 0
Выполнение сервлета. Jserv+apache
    #33027195
wessen
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
fcsЕсли он кешируется - где это чудо убрать. Я так понимаю это в настройках apache.
Дело всего быстрее в твоем сервлете. Можешь его показать?
...
Рейтинг: 0 / 0
Выполнение сервлета. Jserv+apache
    #33027203
А.Грасоff™ JE
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
wessen fcsЕсли он кешируется - где это чудо убрать. Я так понимаю это в настройках apache.
Дело всего быстрее в твоем сервлете. Можешь его показать?
хитрый :)
...
Рейтинг: 0 / 0
Выполнение сервлета. Jserv+apache
    #33027345
fcs
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
fcs
Гость
Показать могу - не проблема:
с маленькими изменениями

Код: plaintext
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.
98.
99.
100.
101.
102.
103.
104.
105.
106.
107.
108.
109.
110.
111.
112.
113.
114.
115.
116.
117.
118.
119.
120.
121.
122.
123.
124.
125.
126.
127.
128.
129.
130.
131.
132.
133.
134.
135.
136.
137.
138.
139.
140.
141.
142.
143.
144.
145.
146.
147.
148.
149.
150.
151.
152.
153.
154.
155.
156.
157.
158.
159.
160.
 import  javax.servlet.*;
 import  javax.servlet.http.*;
 import  java.io.*;
 import  java.sql.*;
 import  java.lang.*;
 import  java.net.URL.*;
 import  java.util.*;

 public   class  ServletMy  extends  HttpServlet 
{
   public  Connection cn =  null ;
   public  ResultSet rs =  null ;
   public  PreparedStatement st =  null ;
  PrintWriter out;
   public   void  init(ServletConfig config)  throws  ServletException
  {
     super .init(config);
     try 
    {
       Class .forName("oracle.jdbc.driver.OracleDriver").newInstance();
    } catch (Exception ex)
    {
      out.println("<p>ОШИБКА ИНИЦИАЛИЗАЦИИ</p>");
    }
  }
  
   public   void  CreateConnection(String sUser, String sPass)
  {
     try 
    {
      cn = DriverManager.getConnection("jdbc:oracle:thin:@[тут у меня мой сервак с БД]",sUser, sPass);
    
    } catch (SQLException ex)
    {
      out.println("<p>ОШИБКА СОЕДИНЕНИЯ С БД. СООБЩЕНИЯ ОБ ОШИБКЕ:</p>");
      out.println(ex.getMessage());
    }
  }
  
   public   void  ShowResult(ResultSet rs)
  {
    /*Заполняем результат*/
     try  
    {
      ResultSetMetaData meta = rs.getMetaData();  
       int  columns = meta.getColumnCount();
       int  i, length;
      out.println("<table>");
      //Формируем шапку таблицы
      out.println("<tr>");
      out.println("<th> ЛЬГОТА</th>"); 
       for  (i= 0 ;i<columns;i++){  out.println("<th> "+meta.getColumnLabel(i+ 1 )+"</th>");  }
      out.println("<th> ЛЬГОТА</th>");
      out.println("</tr>");
      out.println("<tr><pre></pre><tr><pre></pre></tr>");
       while  (rs.next())
      {         
          out.println("<tr>");
          
	   for  (i= 0 ;i<columns;i++){
		 if (rs.getString(i+ 1 )=="null"){
			out.println("<td> </td>");
		} else {out.println("<td> "+rs.getString(i+ 1 )+"</td>");}
	  }
	
	  out.println("</tr>");
       }
      out.println("</table>");
      st.close();
      cn.close();      
    } catch (SQLException ex)
    {
      
    }
    
  }

   public   void  doGet(HttpServletRequest request, HttpServletResponse response)  throws  ServletException, IOException
  {
    response.setContentType("text/html;charset=Windows-1251");
    out = response.getWriter();
    out.println("<html>");
    out.println("<head><title>Результат поиска</title><link rel=stylesheet type=\"text/css\");
    out.println("<META content=\"text/html; charset=windows-1251\" http-equiv=\"Content-Type\"></head>");
    out.println("<body>");
    
    String requestEnc = "ISO-8859-1";
    // Кодировка, установленная в броузере
    String clientEnc = request.getParameter("charset");
     if ( clientEnc== null  ) clientEnc="Cp1251";
    
    String sFamily="";  String sName=""; String sFather=""; String sDR="";  
    String Family = ""; String Name = ""; String Father = "";
    String birthdate = "";
    /*Получаем параметры*/
     try 
    {
      Family = request.getParameter("Family");
      Name = request.getParameter("Name");
      Father = request.getParameter("Father");
      birthdate = request.getParameter("Birthdate");
    }
     catch (Exception e)
    {
      e.printStackTrace();
    }
    
     if (Family!= null ) {      Family =  new  String(Family.getBytes(requestEnc),clientEnc); sFamily = "upper(family) like upper(?)";     }
     if (Name!= null )   {      Name =  new  String(Name.getBytes(requestEnc),clientEnc);  sName = " and upper(name) like upper(?)";       }  
     if (Father!= null ) {      Father =  new  String(Father.getBytes(requestEnc),clientEnc); sFather = " and upper(father) like upper(?)";}
     if (birthdate.length()!= 0 ) {      sDR = "and d_rogd=(?)"; }

     try 
    {
       if ((sFather.length()== 0 ) && (sName.length()== 0 ) && (sFamily.length()== 0 ) && (sDR.length()== 0 )){
        out.println("<font color=\'red\'><p>Вы не ввели ни одного критерия для поиска</p></font>");
      }
       else   if (sFamily.length()> 0 )
      {
	 if (sDR.length()> 0 )
	{
	  CreateConnection("[тут user]","[тут pass]");
	  st = cn.prepareStatement("SELECT * FROM v_son WHERE "+sFamily+sName+sFather+sDR);
          st.setString( 1 ,Family+'%');
          st.setString( 2 ,Name+'%');
          st.setString( 3 ,Father+'%');
	  st.setString( 4 ,birthdate);
          rs = st.executeQuery();
          ShowResult(rs);		
	} else   if (sDR.length()== 0 )
	{
	  CreateConnection("[тут user]","[тут pass]");
	  st = cn.prepareStatement("SELECT * FROM v_son WHERE "+sFamily+sName+sFather);
          st.setString( 1 ,Family+'%');
          st.setString( 2 ,Name+'%');
          st.setString( 3 ,Father+'%');
          rs = st.executeQuery();
          ShowResult(rs);			
	}
      }

                    
    } catch (SQLException ex)
    {
      out.println("<p><ОШИБКА В ПРОЦЕССЕ ВЫПОЛНЕНИЯ ЗАПРОСА./p>");  
    }
    
    
    out.println("</pre>");
    out.println("<hr>");
    
    out.println("</body></html>");
    out.close();
  }

   public   void  doPost(HttpServletRequest request, HttpServletResponse response)  throws  ServletException, IOException
  {
    doGet(request,response);
  }
}
...
Рейтинг: 0 / 0
Выполнение сервлета. Jserv+apache
    #33027352
А.Грасоff™ JE
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
мамочки...
...
Рейтинг: 0 / 0
Выполнение сервлета. Jserv+apache
    #33027380
wessen
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
У тебя все переменные глобальные и не один метод не синхронизирован, а это очень плохо! При большой нагрузке, кирдык твоему сервлету настанет. И даже переменная out у тебя глобальноя, это не куда не годится.
...
Рейтинг: 0 / 0
Выполнение сервлета. Jserv+apache
    #33027401
А.Грасоff™ JE
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
wessenУ тебя все переменные глобальные и не один метод не синхронизирован, а это очень плохо! При большой нагрузке, кирдык твоему сервлету настанет. И даже переменная out у тебя глобальноя, это не куда не годится.осталось добавить: мы все умрём :)
...
Рейтинг: 0 / 0
Выполнение сервлета. Jserv+apache
    #33027420
fcs
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
fcs
Гость
wessenУ тебя все переменные глобальные и не один метод не синхронизирован, а это очень плохо! При большой нагрузке, кирдык твоему сервлету настанет. И даже переменная out у тебя глобальноя, это не куда не годится.

Спасибо за подсказку. Буду капать. Если не разберусь - спрошу ещё.
...
Рейтинг: 0 / 0
11 сообщений из 11, страница 1 из 1
Форумы / Java [игнор отключен] [закрыт для гостей] / Выполнение сервлета. Jserv+apache
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]