Oracle Database XEのデータベースのホームページでログインしようと思ったが、パスワードを忘れてログインできなかった。この場合、パスワードを変更してログインできるようにする方法を記しておく。ただし、OS認証が有効になっていることを前提とする。
①コマンドプロンプトを立ち上げsqlplusにログインする。
C:\>sqlplus /nolog
②sysでログインする。
SQL>conn sys as sysdba
③ユーザーのパスワードを変更する(例えば、sysのパスワードをpasswordに変更するには以下のようにする)
SQL>ALTER USER sys IDENTIFIED BY password;
2008年11月2日日曜日
2008年11月1日土曜日
javaでファイルアップロード
まず、以下のJakarta Commonsの以下の2つのライブラリを用いる。
①commons-fileupload
②commons-io
まず、jspの設定。
以下のフォームを記述する。
<!-- (1)<FORM>タグにmultipart/form-dataを指定 -->
<form method="POST"
enctype="multipart/form-data"
action="アップロードサーブレットのパス">
<!-- (2)ファイルを選択する<input type="file">タグを指定 -->
<input type="file" name="fileName" />
<input type="submit" value="送信" />
</form>
次に、サーブレットの記述。
Collection- ItemList = new ArrayList
- ();
InputStream inputStream = null;
InputStreamReader inputStreamReader = null;
BufferedReader bufferedReader = null;
DiskFileItemFactory factory = new DiskFileItemFactory();
ServletFileUpload sfu = new ServletFileUpload(factory);
try {
List fileItemList = sfu.parseRequest(request);
if (fileItemList.get(0).getName() == null
|| fileItemList.get(0).getName().equals("")) {
// ファイルが選択されていない場合はアップロード画面へ遷移
request.setAttribute("message", "ファイルを選択してください。");
request.getRequestDispatcher(
"アップロード画面").forward(
request, response);
return;
}
for (FileItem fileItem : fileItemList) {
if (fileItem == null) {
break;
}
inputStream = fileItem.getInputStream();
inputStreamReader = new InputStreamReader(inputStream);
bufferedReader = new BufferedReader(inputStreamReader);
String line = null;
while ((line = bufferedReader.readLine()) != null) {
itemList.add(line);
}
new uploadService().itemUpload(itemList);
}
// アップロード画面へ遷移
aRequest.setAttribute("message", "アップロードに成功しました。");
request.getRequestDispatcher(
"アップロード先").forward(
request, response);
return;
} catch (FileUploadException e) {
//例外処理記述
} catch (SQLException e) {
//例外処理記述
} catch (NamingException e) {
//例外処理記述
}
/*ここまで。*/
①commons-fileupload
②commons-io
まず、jspの設定。
以下のフォームを記述する。
<!-- (1)<FORM>タグにmultipart/form-dataを指定 -->
<form method="POST"
enctype="multipart/form-data"
action="アップロードサーブレットのパス">
<!-- (2)ファイルを選択する<input type="file">タグを指定 -->
<input type="file" name="fileName" />
<input type="submit" value="送信" />
</form>
次に、サーブレットの記述。
Collection
InputStream inputStream = null;
InputStreamReader inputStreamReader = null;
BufferedReader bufferedReader = null;
DiskFileItemFactory factory = new DiskFileItemFactory();
ServletFileUpload sfu = new ServletFileUpload(factory);
try {
List
if (fileItemList.get(0).getName() == null
|| fileItemList.get(0).getName().equals("")) {
// ファイルが選択されていない場合はアップロード画面へ遷移
request.setAttribute("message", "ファイルを選択してください。");
request.getRequestDispatcher(
"アップロード画面").forward(
request, response);
return;
}
for (FileItem fileItem : fileItemList) {
if (fileItem == null) {
break;
}
inputStream = fileItem.getInputStream();
inputStreamReader = new InputStreamReader(inputStream);
bufferedReader = new BufferedReader(inputStreamReader);
String line = null;
while ((line = bufferedReader.readLine()) != null) {
itemList.add(line);
}
new uploadService().itemUpload(itemList);
}
// アップロード画面へ遷移
aRequest.setAttribute("message", "アップロードに成功しました。");
request.getRequestDispatcher(
"アップロード先").forward(
request, response);
return;
} catch (FileUploadException e) {
//例外処理記述
} catch (SQLException e) {
//例外処理記述
} catch (NamingException e) {
//例外処理記述
}
/*ここまで。*/
javaでファイルダウンロード
Javaでファイルダウンロードを行ってみたが、期待する動作にならない。
/*
ItemServiceクラスのfindItems()メソッドを呼び出して、ItemのリストitemListを得る。
そのリストの値を一つずつ読み込んで、toCSV()メソッドでCSV形式にしてからファイルに保存したい。
firefox2.0.0.17ではファイルに保存できる。
IE7ではブラウザにファイルの内容が書き出されてしまう。なぜ?
*/
public class ItemDownloadServlet extends HttpServlet {
@Override
protected void doGet(HttpServletRequest request,
HttpServletResponse response) throws ServletException, IOException {
process(request, response);
}
@Override
protected void doPost(HttpServletRequest request,
HttpServletResponse response) throws ServletException, IOException {
process(request, response);
}
request.setCharacterEncoding("Windows-31J");
response.setContentType("application/octet-stream");
String downloadFileName = "itemData.csv";
response.setHeader("Content-Disposition", "attachement:filename="
+ downloadFileName);
OutputStream os = null;
OutputStreamWriter osw = null;
BufferedWriter writer = null;
os = response.getOutputStream();
osw = new OutputStreamWriter(os);
writer = new BufferedWriter(osw);
try {
List- itemList = (List
- ) new ItemService().findItems();
for (Item item : itemList) {
writer.write(toCSV(item));
}
writer.flush();
} catch (SQLException e) {
// TODO 自動生成された catch ブロック
e.printStackTrace();
} catch (NamingException e) {
// TODO 自動生成された catch ブロック
e.printStackTrace();
} catch (NotFoundException e) {
// TODO 自動生成された catch ブロック
e.printStackTrace();
} finally {
if (os != null) {
os.close();
}
if (osw != null) {
osw.close();
}
}
/*
ItemServiceクラスのfindItems()メソッドを呼び出して、ItemのリストitemListを得る。
そのリストの値を一つずつ読み込んで、toCSV()メソッドでCSV形式にしてからファイルに保存したい。
firefox2.0.0.17ではファイルに保存できる。
IE7ではブラウザにファイルの内容が書き出されてしまう。なぜ?
*/
public class ItemDownloadServlet extends HttpServlet {
@Override
protected void doGet(HttpServletRequest request,
HttpServletResponse response) throws ServletException, IOException {
process(request, response);
}
@Override
protected void doPost(HttpServletRequest request,
HttpServletResponse response) throws ServletException, IOException {
process(request, response);
}
request.setCharacterEncoding("Windows-31J");
response.setContentType("application/octet-stream");
String downloadFileName = "itemData.csv";
response.setHeader("Content-Disposition", "attachement:filename="
+ downloadFileName);
OutputStream os = null;
OutputStreamWriter osw = null;
BufferedWriter writer = null;
os = response.getOutputStream();
osw = new OutputStreamWriter(os);
writer = new BufferedWriter(osw);
try {
List
for (Item item : itemList) {
writer.write(toCSV(item));
}
writer.flush();
} catch (SQLException e) {
// TODO 自動生成された catch ブロック
e.printStackTrace();
} catch (NamingException e) {
// TODO 自動生成された catch ブロック
e.printStackTrace();
} catch (NotFoundException e) {
// TODO 自動生成された catch ブロック
e.printStackTrace();
} finally {
if (os != null) {
os.close();
}
if (osw != null) {
osw.close();
}
}
登録:
投稿 (Atom)