題目:
在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