サーブレット&jspで子供の身長を予測するwebアプリケーションを作成しました。
今回MVCを完全に無視しました。なのでサーブレット側にロジック部分も記述しております。
プルダウンから男子か女子を選択する
お父さんの身長とお母さんの身長を入力
form.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%Integer childheight = (Integer)session.getAttribute("childheight");%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
<!-- 子供の身長予測 -->
<form action="height" method="post">
<div>
<select name="gender">
<option value="男子">男子</option>
<option value="女子">女子</option>
</select>
</div>
<p>お父さんの身長<p/>
<input type="text" name="fatherheight"><br>
<p>お母さんの身長<p/>
<input type="text" name="motherheight"><br>
<input type="submit" name="submit" value="送信" />
</form>
<% if(childheight != null) { %>
<%=("お子様の予想身長は") %>
<%=(childheight) %>
<%=("cmです") %>
<% }%>
</body>
</html>
User.java
package beans;
public class User {
private String gender;
private String name;
private int fatherheight;
private int motherheight;
public User(String name) {
super();
this.name = name;
}
public User() {
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getFatherheight() {
return fatherheight;
}
public void setFatherheight(int fatherheight) {
this.fatherheight = fatherheight;
}
public int getMotherheight() {
return motherheight;
}
public void setMotherheight(int motherheight) {
this.motherheight = motherheight;
}
public String getGender() {
return gender;
}
public void setGender(String gender) {
this.gender = gender;
}
}
height.java
package サーブレット;
import java.io.IOException;
import javax.servlet.RequestDispatcher;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
import beans.User;
/**
* Servlet implementation class height
*/
@WebServlet("/height")
public class height extends HttpServlet {
private static final long serialVersionUID = 1L;
/**
* @see HttpServlet#HttpServlet()
*/
public height() {
super();
// TODO Auto-generated constructor stub
}
/**
* @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
*/
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
// TODO Auto-generated method stub
response.getWriter().append("Served at: ").append(request.getContextPath());
}
/**
* @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
*/
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
request.setCharacterEncoding("utf-8");
response.setContentType("text/html; charset=utf-8");
String gender= request.getParameter("gender");
String fatherheight= request.getParameter("fatherheight");
String motherheight= request.getParameter("motherheight");
int number1 = Integer.parseInt(fatherheight);
int number2 = Integer.parseInt(motherheight);
User u = new User();
u.setGender(gender);
u.setFatherheight(number1);
u.setMotherheight(number2);
int total = 0;
if(u.getGender().equals("男子")) {
total = (u.getFatherheight() + u.getMotherheight() + 13) / 2 + 2;
HttpSession session = request.getSession();
session.setAttribute("childheight",total);
RequestDispatcher rd = request.getRequestDispatcher("form.jsp");
rd.forward(request, response);
} else {
total = (u.getFatherheight() + u.getMotherheight() - 13) / 2 + 2;
HttpSession session = request.getSession();
session.setAttribute("childheight",total);
RequestDispatcher rd = request.getRequestDispatcher("form.jsp");
rd.forward(request, response);
}
}
}