単純な javaweb プロジェクト トピックを作成します。
少なくとも 3 つの JSP プログラム、input.jsp、ok.jsp、error.jsp を含む javaweb プロジェクトを作成します。input.jsp ページにはフォームがあり、ユーザーはこのフォームを使用して 20 以内の正の整数を入力し、それを ok.jsp ページに送信して計算し、結果を表示できます (例: input 5、calculate 1!)。+2! +...+5! ; 入力が要件を満たしていない場合は、error.jsp に進みます。forward タグは、param サブタグを使用してリダイレクトされた ok.jsp ページに整数を渡し、forward タグの実装時に関連する入力エラーをリダイレクトされた error.jsp ページに渡すために必要です。
コード:
入力.jsp:
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<title>输入</title>
</head>
<body>
//表单输入:
<form action="input.jsp" >
请输入一个20以内的整数:<input type="text" name="num"/>
<input type="submit" value="提交"/>
</form>
//判断和跳转:
<% if(request.getParameter("num")!=null)
//request.getParameter用于输入String类型{
int a=0;
String s="输入错误,请重新输入!";
a= Integer.parseInt(request.getParameter("num"))
//Interger.parseInt用于将String类型转换为Int;
if(a>=20){
%>
<%request.setCharacterEncoding("UTF-8");%>
//这个一定要申明,否则下面的string类型输出时会出现乱码。
<jsp:forward page="error.jsp">
//<jsp:forward page="relativeURL"/>跳转到指定页面
<jsp:param name="mistake" value="<%=s%>"/>
//param的name填名称,value可以直接填值或变量,但填变量要以<%=java变量名%/>
</jsp:forward>
<%
}else{
%>
<jsp:forward page="ok.jsp">
<jsp:param name="number" value="a"/>
//这里的的a是int类型,我在使用时是可行的。
</jsp:forward>
<%
}}
%>
/*
如果要用java代码包含其他代码只有将每部分Java代码用<%代码 %>包起来。
*/
</body>
</html>
ok.jsp:
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<title>输出</title>
</head>
/*JSP脚本元素的声明标识:
格式:
<%!
定义变量或方法等
%>
*/
<%!
public int print(int n){
int c=0 ,d;
for(int i=1;i<=n;i++) {
d=1;
for(int j=1;j<=i;j++){
d=d*j;
}
c=c+d;
}
return c;
}
%>
<body>
<%
String x=request.getParameter("number");
//接受param的值。
int n=0;
if(x !=null){//判断输入的是否不为空
//把用户输入的数字String类型转换为int类型并赋值给变量n
n = Integer.parseInt(request.getParameter("num"));
}
out.println("到"+n+"阶乘和"+print(n));//输出
%>
</body>
//JSP的表达式输出<%="到"+n+"阶乘和"+print(n)%>
</html>
エラー.jsp
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<title>输入错误</title>
</head>
<body>
<%
String y=request.getParameter("mistake");
%>
</body>
<%=y%>
</html>
上記はあくまで参考用です