第16回セミナー

サーブレットの続き

セッション管理

リスエスとの転送

フィルタについて

認証について

JSP(Java Server Pages)

週間予約アプリの作成

Reservation.jsp

<%@ page contentType="text/html; charset=Shift_JIS" %>
<%@ page import="java.io.*" %>
<%@ page import="java.util.*" %>
<%@ include file="ReservationModel.jsp" %>
<%
  String path=application.getRealPath("reservation.dat");
  ReservationModel rm=new ReservationModel();
  rm.open(path);
%>
<html>
<head><title>週間予定表</title></head>
<body>
<h1>週間予定表</h1>

<%
  String[] col_name={ "時間","月","火","水","木","金" };
%>

<form action="http://localhost:8080/K07/Reservation2.jsp" method="get">
  <select name="WEEK">
<%
  for(int i=1;i<col_name.length;i++)
    out.println("<option value="+i+">"+col_name[i]+"</option>");
%>
  </select>
  <select name="TIME">
<%
  for(int i=0;i<11;i++){
    out.println("<option value="+i+">"+(i+8)+":00</option>");
  }
%>
  </select>
  <input type=text name="CONTENT" size=30 />
  <input type=submit value="予約" />
</form>
<table border=1>

<%
  for(int c=0;c<6;c++){
    out.println("<th width=100>"+col_name[c]+"</th>");
  }
  for(int r=0;r<11;r++){
    out.println("<tr>");
    for(int c=0;c<6;c++){
      String s=(c==0)?(r+8)+":00":rm.get(c,r);
      out.println("<td align=center>"+s+"</td>");
    }
    out.println("</tr>");
  }
%>

</table>
</body>
</html>

Reservation2.jsp

<%@ page contentType="text/html; charset=Shift_JIS" %>
<%@ page import="java.io.*" %>
<%@ page import="java.util.*" %>
<%@ include file="ReservationModel.jsp" %>
<%
 int week=Integer.parseInt(request.getParameter("WEEK"));
 int time=Integer.parseInt(request.getParameter("TIME"));
 String tmp=request.getParameter("CONTENT");
 String content=new String(tmp.getBytes("8859_1"),"JISAutoDetect");

 String path=application.getRealPath("reservation.dat");
 ReservationModel rm=new ReservationModel();
 rm.open(path);

 rm.add(week,time,content);

 rm.save(path);
%>
<jsp:forward page="Reservation.jsp" />

ReservationMode.jsp

<%@ page import="java.io.*" %>
<%@ page import="java.util.*" %>
<%
class ReservationModel{
  HashMap<String,String> map;

  // 生成
  public ReservationModel(){
    map=new HashMap<String,String>();
  }

  // 予約を追加する
  public void add(int w,int t,String c){
    String key=w+":"+t;         // "3:7"など
    map.put(key,c);
  }

  // 予約を取り出す
  public String get(int w,int t){
    String key=w+":"+t;
    String c=map.get(key);
    return (c==null)?"":c;
  }

  // 保存する
  public void save(String path){
    try{
      ObjectOutputStream os=new ObjectOutputStream(new FileOutputStream(path));
      os.writeObject(map);
      os.close();
    }
    catch(IOException e){}
  }

  // 予約モデルを作成する
  public void open(String path) throws IOException {
    try{
      ObjectInputStream is=new ObjectInputStream(new FileInputStream(path));
      map=(HashMap<String,String>)is.readObject();
      is.close();
    }
    catch(ClassNotFoundException e){}
    catch(IOException e){}
  }
}
%>

Javaセミナー2014


トップ   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS