帰ってきた消費税計算プログラム(JSP)
以前作った消費税計算プログラムをJSPで再度作ってみました。JSPは作るとき、HTTPとjavaの間を行ったり来たりでなかなか骨が折れます。そして、フロントの素質ゼロな画面……。来週はフロント面も頑張りたいと思います。
入力画面
入力
結果
何度見ても心が落ち込みます。最近消費税減税という言葉をよく聞くのでそこに望みを託したくなりますね。
入力画面(JSP)【shouhizei_request.jsp】
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>消費税を求めます</title>
</head>
<body>
税込み価格を求めます。商品の本体価格を入力してください。
<form action="../ShhziController" method="POST">
<input type="text" name="shouhin" size="20" maxlength="20" />
<input type="submit" value="計算" />
</form>
</body>
</html>
作業プログラム(サーブレット)【ShhziController】
package shouhizei;
import java.io.IOException;
import javax.servlet.RequestDispatcher;
import javax.servlet.ServletContext;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
/**
* Servlet implementation class ShhziControl
*/
@WebServlet("/ShhziController")
public class ShhziController extends HttpServlet {
private static final long serialVersionUID = 1L;
/**
* @see HttpServlet#HttpServlet()
*/
public ShhziController() {
super();
// TODO Auto-generated constructor stub
}
/**
* @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
*/
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
// TODO Auto-generated method stub
request.setCharacterEncoding("UTF-8"); //文字化け防止の文字設定
ShhziBean shhzi=new ShhziBean(); //クラスShhziBeanを変数shhziで宣言し、オブジェクトを作成
shhzi.setHontai(Integer.parseInt(request.getParameter("shouhin"))); //メソッドsetHontaiを呼び出してshouhizei_request.jspから受け取った値を格納する
request.setAttribute("shhzi", shhzi); //shhziをリクエストスコープにshhziの名前で保存する
//shouhizei_response.jspへ転送する
ServletContext context=getServletContext();
RequestDispatcher rd=context.getRequestDispatcher("/jsp/shouhizei_response.jsp");
rd.forward(request, response);
}
}
計算プログラム(JavaBeans)【ShhziBean】
package shouhizei;
import java.io.Serializable;
public class ShhziBean implements Serializable {
//変数置き場
private int hontai; //商品の本体価格を格納する変数
private int kakaku; //税込み価格を格納する変数
private double zei=1.00; //税率を格納する変数
//本体価格を受け取るメソッド
public void setHontai(int hontai) {
this.hontai = hontai;
}
//本体価格を返すメソッド
public int getHontai() {
return hontai;
}
//商品の本体価格を1989年の税率で計算して税込み価格を返すメソッド
public int getKakaku1989() {
zei=1.03;
kakaku=(int)(hontai*zei);
return kakaku;
}
//商品の本体価格を1997年の税率で計算して税込み価格を返すメソッド
public int getKakaku1997() {
zei=1.05;
kakaku=(int)(hontai*zei);
return kakaku;
}
//商品の本体価格を2014年の税率で計算して税込み価格を返すメソッド
public int getKakaku2014() {
zei=1.08;
kakaku=(int)(hontai*zei);
return kakaku;
}
//商品の本体価格を2019年の税率で計算して税込み価格を返すメソッド
public int getKakaku2019() {
zei=1.1;
kakaku=(int)(hontai*zei);
return kakaku;
}
//商品の本体価格を将来あるかもしれない税率で計算して税込み価格を返すメソッド
public int getKakakuMirai() {
zei=1.15;
kakaku=(int)(hontai*zei);
return kakaku;
}
}
結果画面(JSP)【shouhizei_response.jsp】
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<%
request.setCharacterEncoding("UTF-8");
%>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>消費税を求めました</title>
</head>
<body>
${shhzi.getHontai() }円の製品は、<br>
1989年3月までは${shhzi.getHontai() }でした。<br>
1989年4月1日-1997年3月31日であれば${shhzi.getKakaku1989() }円でした。<br>
1997年4月1日-2014年3月31日であれば${shhzi.getKakaku1997() }円でした。<br>
2014年4月1日-2019年9月30日であれば${shhzi.getKakaku2014() }円でした。<br>
2019年10月1日以降は${shhzi.getKakaku2019() }円(食品除く)です。<br>
</body>
</html>