サーバーサイドJavaで変換
サーバーサイドJavaで変換。(MVCモデルで作ってみたです。)
サーバーサイドはまだ未熟なので、変なところがあったらご了承を。
本当はjspの処理でセッションの設定にuseBeanというのを使う予定だったんですが、
Java1.5とTomcat5.5とEclipse3と私の頭VerXXXでは、うまく動かすことができなかっ
たので断念したです。
Javaのページに載せて無いですが、この言語はJavaです。
 XMLやJSPは、微妙に違うのかもしれないですが。(XMLは根本的に違うですねw

フォルダ構造(Tomcat 5.5\webappsより下)
\DtoB_MVC
 \jsp
  ・DtoB.jsp
 \WEB-INF
  ・web.xml
  \classes
   ・DecToBinServelet.class
   \bean
    ・DecToBinBean.class
  \src
   ・DecToBinServelet.java
   \bean
    ・DecToBinBean.java


 DtoB.jsp
 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:
<%@ page contentType="text/html; charset=Shift_JIS"%>
<%@ page import="bean.DecToBinBean" %>

<%
    DecToBinBean dtob = (DecToBinBean)session.getAttribute("id_DTB");
    if(dtob == null){
        dtob = new DecToBinBean();
    }
%>

<html>
  <head>
    <title>10進数を2進数に変換</title>
  </head>
  <body>
    <form method="post" action="http://localhost:8080/DtoB_MVC/DecToBin">
       0〜65535の間の整数を入力して変換を押すとすると二進数になるです〜<br>
      <table>
        <tr>
          <td>10進数:</td><td><INPUT type="text" name="txtJyu"  value='<%=dtob.getJyu()%>' size=20></td>
          <td><INPUT type="submit" value="変換"></td>
        </tr>
        <tr>
          <td>2進数 :</td>
          <td><INPUT type="text" name="txtBin" value='<%=dtob.getNisin()%>' size=20></td>
        </tr>
      </table>
    </form>
  </body>
</html>


web.xml
 1:
 2:
 3:
 4:
 5:
 6:
 7:
 8:
 9:
 10:
 11:
 12:
 13:
 14:
 15:
 16:
<web-app xmlns="http://java.sun.com/xml/ns/j2ee"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd"
    version="2.4">

    <servlet>
        <servlet-name>db</servlet-name>
        <servlet-class>DecToBinServelet</servlet-class>
    </servlet>

    <servlet-mapping>
        <servlet-name>db</servlet-name>
        <url-pattern>/DecToBin</url-pattern>
    </servlet-mapping>

</web-app>


 DtoB.jsp
 1:
 2:
 3:
 4:
 5:
 6:
 7:
 8:
 9:
 10:
 11:
 12:
 13:
 14:
 15:
 16:
 17:
 18:
 19:
 20:
 21:
 22:
 23:
 24:
import javax.servlet.*;
import javax.servlet.http.*;
import java.io.*;

import bean.DecToBinBean;

public class DecToBinServelet extends HttpServlet{
    
    public void doPost(
            HttpServletRequest req,
            HttpServletResponse res) throws ServletException, IOException{
        
        HttpSession  session = req.getSession();
        DecToBinBean bean    = new DecToBinBean();
        
        session.setAttribute("id_DTB", bean);
        
        bean.setJyu(req.getParameter("txtJyu"));
        
        RequestDispatcher rd
            = req.getRequestDispatcher("jsp/DtoB.jsp");
        rd.forward(req, res);
    }
}


 DecToBinBean.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:
package bean;

public class DecToBinBean {
    private int jyu;
    private String nisin;
    private boolean flagErr;
    
    public DecToBinBean(){
        jyu = 0;
        nisin = "";
        flagErr = true; //読み込みどきは10進数が入力されていないため。
    }
    
    //10進数をセットする(0〜65535以外はエラーとする)
    public void setJyu(String strJyu) {
        try{
            nisin = "";
            jyu   = Integer.parseInt(strJyu);
            
            if(jyu>=0 && jyu<=65535){
                DtoB();
                flagErr = false;
            }else{
                throw new Exception();
            }
        }
        catch(Exception e){
            flagErr = true;
        }
    }
    
    //10進数を取得
    public String getJyu(){
        if(flagErr){
            return "";
        }else{
            return Integer.toString(jyu);
        }
    }
    
    //2進数を文字列で取得
    public String getNisin(){
        return nisin;
    }
        
    //10進数から2進数へ変換させる
    private void DtoB(){
        int jyu = this.jyu;
        for(int i=0; i<16; i++){
            nisin =  (jyu % 2) + nisin;
            jyu = jyu / 2;
        }
    }
}

TOPに戻る   いろいろな言語へ戻る