我用servlet写了一个小页面,功能是计算两个随机数,若正确,显示下一组,若错误,继续做这题,下面是我写的代码
import java.io.IOException;
import java.io.PrintWriter;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.*;/**
*
* @author VincentLee
*/
public class Sum extends HttpServlet {
protected void processRequest(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
response.setContentType("text/html;charset=UTF-8");
PrintWriter out = response.getWriter();
HttpSession session=request.getSession(true);
Integer cor=(Integer)session.getAttribute("correct");
int num1;
int num2;
int c=1;
if(cor==(Integer)c)
{
num1=(Integer)session.getAttribute("num1");
num2=(Integer)session.getAttribute("num2");
}
else
{
num1=(int)(100*Math.random());
num2=(int)(100*Math.random());
} session.setAttribute("num1",num1);
session.setAttribute("num2", num2);
System.out.println(session.getAttribute("num1"));
try {
response.setContentType("text/html"); out
.println("<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\">");
out.println("<HTML>");
out.println(" <HEAD><TITLE>A Servlet</TITLE></HEAD>");
out.println(" <BODY>");
out.println(session.getAttribute("correct"));
out.println("num1="+session.getAttribute("num1"));
out.println("num2="+session.getAttribute("num2"));
out.println("<form>");
out.println("<table>");
out.println("<tr>");
out.println("<td>");
out.println("第一个数");
out.println("</td>");
out.println("<td>");
out.println("<input type='text' name='num1' value="+num1+">");
out.println("</td>");
out.println("</tr>");
out.println("<tr>");
out.println("<td>");
out.println("第二个数");
out.println("</td>");
out.println("<td>");
out.println("<input type='text' name='num2' value="+num2+">");
out.println("</td>");
out.println("</tr>");
out.println("<tr>");
out.println("<td>");
out.println("请输入结果");
out.println("</td>");
out.println("<td>");
out.println("<input type='text' name='Sum' value=''>");
out.println("</td>");
out.println("</tr>");
out.println("<tr>");
out.println("<td>");
out.println("");
out.println("</td>");
out.println("<td>");
out.println("<input type='Submit' name='sub' value='确定'>");
out.println("</td>");
out.println("</tr>");
out.println("</table>");
out.println("</form>");
String Sum=request.getParameter("Sum").toString();
int Sum1=Integer.parseInt(Sum);
num1=Integer.parseInt(request.getParameter("num1").toString());
num2=Integer.parseInt(request.getParameter("num2").toString());
out.println("cor="+session.getAttribute("correct"));
out.println("num1="+session.getAttribute("num1"));
out.println("num2="+session.getAttribute("num2"));
int Sum2=num1+num2;
if(Sum1==Sum2)
{
out.println("正确");
Integer x=0;
session.setAttribute("correct",x);
}
else
{
out.println("错误");
Integer x=1;
session.setAttribute("correct",x);
out.println(session.getAttribute("correct"));
out.println("num1="+session.getAttribute("num1"));
out.println("num2="+session.getAttribute("num2"));
}
out.println(" </BODY>");
out.println("</HTML>");
}
finally { out.close();
}
}
@Override
protected void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
processRequest(request, response);
}
@Override
protected void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
processRequest(request, response);
}
@Override
public String getServletInfo() {
return "Short description";
}// </editor-fold>}
我出现的问题是,第一次错误后,它就再产生下一组随机数,然后再错的话就不会变了,我大概知道是表单提交与页面刷新顺序的原因,求大家说一下,应该怎么改,谢谢!!
import java.io.IOException;
import java.io.PrintWriter;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.*;/**
*
* @author VincentLee
*/
public class Sum extends HttpServlet {
protected void processRequest(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
response.setContentType("text/html;charset=UTF-8");
PrintWriter out = response.getWriter();
HttpSession session=request.getSession(true);
Integer cor=(Integer)session.getAttribute("correct");
int num1;
int num2;
int c=1;
if(cor==(Integer)c)
{
num1=(Integer)session.getAttribute("num1");
num2=(Integer)session.getAttribute("num2");
}
else
{
num1=(int)(100*Math.random());
num2=(int)(100*Math.random());
} session.setAttribute("num1",num1);
session.setAttribute("num2", num2);
System.out.println(session.getAttribute("num1"));
try {
response.setContentType("text/html"); out
.println("<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\">");
out.println("<HTML>");
out.println(" <HEAD><TITLE>A Servlet</TITLE></HEAD>");
out.println(" <BODY>");
out.println(session.getAttribute("correct"));
out.println("num1="+session.getAttribute("num1"));
out.println("num2="+session.getAttribute("num2"));
out.println("<form>");
out.println("<table>");
out.println("<tr>");
out.println("<td>");
out.println("第一个数");
out.println("</td>");
out.println("<td>");
out.println("<input type='text' name='num1' value="+num1+">");
out.println("</td>");
out.println("</tr>");
out.println("<tr>");
out.println("<td>");
out.println("第二个数");
out.println("</td>");
out.println("<td>");
out.println("<input type='text' name='num2' value="+num2+">");
out.println("</td>");
out.println("</tr>");
out.println("<tr>");
out.println("<td>");
out.println("请输入结果");
out.println("</td>");
out.println("<td>");
out.println("<input type='text' name='Sum' value=''>");
out.println("</td>");
out.println("</tr>");
out.println("<tr>");
out.println("<td>");
out.println("");
out.println("</td>");
out.println("<td>");
out.println("<input type='Submit' name='sub' value='确定'>");
out.println("</td>");
out.println("</tr>");
out.println("</table>");
out.println("</form>");
String Sum=request.getParameter("Sum").toString();
int Sum1=Integer.parseInt(Sum);
num1=Integer.parseInt(request.getParameter("num1").toString());
num2=Integer.parseInt(request.getParameter("num2").toString());
out.println("cor="+session.getAttribute("correct"));
out.println("num1="+session.getAttribute("num1"));
out.println("num2="+session.getAttribute("num2"));
int Sum2=num1+num2;
if(Sum1==Sum2)
{
out.println("正确");
Integer x=0;
session.setAttribute("correct",x);
}
else
{
out.println("错误");
Integer x=1;
session.setAttribute("correct",x);
out.println(session.getAttribute("correct"));
out.println("num1="+session.getAttribute("num1"));
out.println("num2="+session.getAttribute("num2"));
}
out.println(" </BODY>");
out.println("</HTML>");
}
finally { out.close();
}
}
@Override
protected void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
processRequest(request, response);
}
@Override
protected void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
processRequest(request, response);
}
@Override
public String getServletInfo() {
return "Short description";
}// </editor-fold>}
我出现的问题是,第一次错误后,它就再产生下一组随机数,然后再错的话就不会变了,我大概知道是表单提交与页面刷新顺序的原因,求大家说一下,应该怎么改,谢谢!!
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货