我试图使用RequestDispatcher从servlet发送参数.
这是我的servlet代码:
protected void processRequest(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
String station = request.getParameter("station");
String insDate = request.getParameter("insDate");
//test line
String test = "/response2.jsp?myStation=5";
RequestDispatcher rd;
if (station.isEmpty()) {
rd = getServletContext().getRequestDispatcher("/response1.jsp");
} else {
rd = getServletContext().getRequestDispatcher(test);
}
rd.forward(request, response);
}
Run Code Online (Sandbox Code Playgroud)
这是我的jsp,带有读取值的代码 - 但它显示为null.
<h1>response 2</h1>
<p>
<%=request.getAttribute("myStation") %>
</p>
Run Code Online (Sandbox Code Playgroud)
谢谢你的任何建议.更环保
我正在寻找一种有效的方法来检测数组中唯一值的数量.
我目前的做法:
在代码中:
yearHolder := '';
for I := 0 to High(yearArray) do
begin
currYear := yearArray[i];
if (yearHolder <> currYear) then
begin
yearHolder := currYear;
Inc(uniqueYearNumber);
end;
end;
Run Code Online (Sandbox Code Playgroud) 我有一个叫技师的课
public class Technician {
private String empLName;
private String empFName;
private int empId;
//I skipped all setters and getters
}
Run Code Online (Sandbox Code Playgroud)
在其他类中,我检索所有技术人员名称并将其加载到数组列表中.
Technician empl = new Technician();
ArrayList <Technician> employees = new ArrayList<Technician>();
//...skip code related to database
// rs is ResultSet
while (rs.next()){
empl.setEmpFName(rs.getString("EMP_LNAME"));
empl.setEmpLName(rs.getString("EMP_FNAME"));
empl.setEmpId(rs.getInt("EMP_ID"));
employees.add(empl);
}
Run Code Online (Sandbox Code Playgroud)
当我调试时,我看到从数据库中检索正确的值.在while循环的第一次迭代中,我的empl对象获取数据库中第一个雇员的值,并将其存储在雇员ArrayList中.在第二次迭代中,雇员ArrayList中的第一个对象被第二个雇员的值覆盖.因此,我的ArrayList中有两名员工,姓氏相同.在第三次迭代中,同样的故事,员工ArrayList中的两名员工被数据库中第三名员工的价值覆盖.
如果有任何建议如何修复我的代码,我将不胜感激.谢谢,
下面,我插入了Ray Konopka编写的代码(Coderage演示文稿的一部分).我打算使用它,但是,我不确定如何清理(动态)多个对象.我所有的尝试都是不完整的,并使内存泄漏.任何想法都表示赞赏.谢谢,
program stringlistDictionary;
{$APPTYPE CONSOLE}
uses
Classes,
SysUtils;
type
TPlayer = class
public
Name: string;
Position: string;
Hits: Integer;
AtBats: Integer;
constructor Create( Name, Position: string );
end;
constructor TPlayer.Create( Name, Position: string );
begin
inherited Create;
Self.Name := Name;
Self.Position := Position;
Hits := 0;
AtBats := 0;
end;
var
Team: TStringList;
Player, NewPlayer: TPlayer;
I: Integer;
function FindPlayer( const Name: string ): TPlayer;
var
Idx: Integer;
begin
Result := nil;
if Team.Find( Name, Idx ) then
Result …Run Code Online (Sandbox Code Playgroud) 我试图通过调用一个单独的线程来复制文件.这是我的表单代码:
unit frmFileCopy;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, ComCtrls, StdCtrls;
type
TForm2 = class(TForm)
Button3: TButton;
procedure Button3Click(Sender: TObject);
procedure FormCreate(Sender: TObject);
procedure FormCloseQuery(Sender: TObject; var CanClose: Boolean);
private
ThreadNumberCounter : integer;
procedure HandleTerminate (Sender: Tobject);
end;
var
Form2: TForm2;
implementation
uses
fileThread;
{$R *.dfm}
{ TForm2 }
const
sourcePath = 'source\'; //'
destPath = 'dest\'; //'
fileSource = 'bigFile.zip';
fileDest = 'Copy_bigFile.zip';
procedure TForm2.FormCloseQuery(Sender: TObject; var CanClose: Boolean);
begin
CanClose := true;
if …Run Code Online (Sandbox Code Playgroud) 在这个问题中,我的目标是检索数据库表内容.填充dbGrid,关闭连接.如果我使用以下代码,dbgrid或combobox将丢失信息.
adoQry := TADOQuery.Create(self);
adoQry.Connection := adoConn;
adoQry.SQL.Add(SqlStr);
adoQry.Prepared := true;
try
adoQry.Active := True;
except
on e: EADOError do
begin
MessageDlg('Error while doing query', mtError,
[mbOK], 0);
Exit;
end;
end;
for i := 0 to adoQry.RecordCount - 1 do
begin
cmbCnty.Items.Add(adoQry.Fields[1].AsString);
adoQry.Next
end;
FreeAndNil(adoConn);
FreeAndNil(adoQry);
Run Code Online (Sandbox Code Playgroud)
在dbGrid的情况下,我使用StringGrid,它适用于我.但是,有时候我想使用dbGrid,但不知道如何保持内容与数据库的紧密连接(当然,在检索内容之后)任何建议,例子都会受到赞赏.
克里斯
我在Oracle视图上执行sql查询时遇到了一个奇怪的行为.该视图包含多个连接.当我键入常规sql时:
select * from vView - I receive the error that view is not found
select * from "vView" - The query is executed.
Run Code Online (Sandbox Code Playgroud)
我想知道为什么?
下面是我的sql:
CREATE OR REPLACE FORCE VIEW "TMSCODE"."vCountEventsData" ("EV_ID_NUMBER", "SI_ID", "EV_YEAR", "EV_INS_DATE", "EV_REM_DATE", "EV_AADT_TOT", "EV_AADT_DIR1", "EV_AADT_DIR2", "EV_REPORT", "DIRECTION", "CNAME", "STATION_DESC") AS
SELECT
"TMSCODE"."STC_EVENTS".EV_ID_NUMBER,
"TMSCODE"."STC_EVENTS".SI_ID,
"TMSCODE"."STC_EVENTS".EV_YEAR,
"TMSCODE"."STC_EVENTS".EV_INS_DATE,
"TMSCODE"."STC_EVENTS".EV_REM_DATE,
"TMSCODE"."STC_EVENTS".EV_AADT_TOT,
"TMSCODE"."STC_EVENTS".EV_AADT_DIR1,
"TMSCODE"."STC_EVENTS".EV_AADT_DIR2,
"TMSCODE"."STC_EVENTS".EV_REPORT,
"TMSCODE"."D_DIRECTION".DIRECTION,
"TMSCODE"."D_CONSULTANT".CNAME,
"TMSCODE"."D_STATION_TYPE".STATION_DESC
FROM
"TMSCODE"."STC_EVENTS"
INNER JOIN "TMSCODE"."D_DIRECTION" ON ("TMSCODE"."STC_EVENTS".EV_DIR = "TMSCODE"."D_DIRECTION".ID)
INNER JOIN "TMSCODE"."D_CONSULTANT" ON ("TMSCODE"."STC_EVENTS".EV_CONS = "TMSCODE"."D_CONSULTANT".ID)
INNER JOIN "TMSCODE"."D_STATION_TYPE" ON ("TMSCODE"."STC_EVENTS".EV_STATION_TYPE = …Run Code Online (Sandbox Code Playgroud) 我的问题涉及我从URL中加载图像的另一个问题.以下代码有效.但是,如果我试图获取图像(它假设在那里)我遇到了问题,但显然已被删除.应用程序不知道并返回错误.有没有办法通过捕获传入的错误来防止它.我将不胜感激任何建议.它发生在他的路线上:
IdHTTP1.get('http://www.google.com/intl/en_ALL/images/logo.gif',MS);
Run Code Online (Sandbox Code Playgroud)
谢谢,克里斯
uses
GIFImg;
procedure TForm1.btn1Click(Sender: TObject);
var
MS : TMemoryStream;
GIf: TGIFImage;
begin
MS := TMemoryStream.Create;
GIf := TGIFImage.Create;
try
IdHTTP1.get('http://www.google.com/intl/en_ALL/images/logo.gif',MS);
Ms.Seek(0,soFromBeginning);
Gif.LoadFromStream(MS);
img1.Picture.Assign(GIF);
finally
FreeAndNil(GIF);
FreeAndNil(MS);
end;
end;
Run Code Online (Sandbox Code Playgroud)