题目:
在l.jsp 中,设置一个表单,可以输入年份,提交到另外一个action进行计算,
如果算出来是闰年,那么就跳转到a1.jsp(显示闰年),如果是平年就跳转到a2.jsp(显示平年)。
要求:需要把计算是否闰年的算法,封装到一个工具类Year中isLeap方法中。
第一步:创建1.jsp页面,并跳到action.jsp
<form action="action.jsp" method="post">
请输入年份:<input type="text" name='txtyear' >
<input type='submit' name='btn'>
</form>
如下图:
第二步:封装year工具类
创建一个class类,取名year
打一个属性和方法。
//属性
private int year;
public int getYear() {
return year;
}
public void setYear(int year) {
this.year = year;
}
//方法
public boolean runnian(){
//1、第一种方法:让人看得懂的
if(year%4==0&& year%100!=0 ||year%400==0){
return true;
}else{
return false;
}
//第二种方法:三元表达式(看起来很装逼的)
//return ((year%4==0&& year%100!=0 ||year%400==0)?true:false);
}
第三步:创建一个action.jsp页面
代码如下:
第一种方法:题目的答案
<%
//第一步:
//参数的收集
String year=request.getParameter("txtyear");
//转换为整型
int d=Integer.parseInt(year);
year y=new year();//实例化一个对象
y.setYear(d);//把得到的d参数放到y中
if(y.runnian()){//放到runnian方法中计算
response.sendRedirect("3.jsp");//正确就转到3.jsp中
}else{
response.sendRedirect("2.jsp");//错误就转到2.jsp中
}
%>
第二种方法:题目的升级,将2个输出页面合并为一个
<%
//第一步
//参数的收集
String year=request.getParameter("txtyear");
//转换为整型
int d=Integer.parseInt(year);
//第二步:业务逻辑的处理以及计算
year y=new year();
y.setYear(d);
boolean leap=y.runnian();
//第三步:封装结果集,以及跳转到前端页面显示结果
if(leap){
request.setAttribute("result", "闰年");
}
else{
request.setAttribute("result", "平年");
//存放你显示的结果
}
request.getRequestDispatcher("2.jsp").forward(request,response);
//跳转到2.jsp页面显示出来
%>
第四步:创建一个2.jsp页面
完成!
返回到1.jsp执行代码
显示结果
2018年 6月12日 下午16:00