2 - 6 自由编程
来源:2-6 自由编程
jia_蛙
2019-11-07 10:37:02
<%@ page language="java" contentType="text/html; charset=utf-8" pageEncoding="utf-8"%> <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>计算累加和</title> </head> <body> <form action="/Servlet_advanced/count/add" method="get"> <input type="text" name="number" placeholder="请输入100以内的数字"> <input type="submit" value="求累加和"> </form> </body> </html>
package com.zhou.servlet.add; import java.io.IOException; import javax.servlet.ServletException; import javax.servlet.annotation.WebServlet; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; /** * Servlet implementation class addNumber */ @WebServlet("/count/add") public class addNumber extends HttpServlet { protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { //设置响应格式 response.setContentType("text/html;charset=utf-8"); //使用getParamenter()根据参数名称获取参数值 也就是获取到用户输入的值 String str1 =request.getParameter("number"); //初始化一个int整型变量用来存储累加值 int number = 0; //对用户的输入进行累加 try { int num = Integer.parseInt(str1); if(num <=100 && num >= 0) { for(int i=0;i<=num;i++) { number +=i; } }else { //当用户输入的数字大小不符合时直接使number等于符数 number = -1; } //使用setAttribute设置自定义属性 request.setAttribute("userInput", str1); request.setAttribute("number",number); //因为我们要在一个servlet之间进行数据传递,为了不让数据丢失这里不能使用响应重定向 request.getRequestDispatcher("/count/result").forward(request, response); } catch (NumberFormatException e) { response.getWriter().println("您的输入不符合规则"); e.printStackTrace(); } } }
package com.zhou.servlet.add; import java.io.IOException; import javax.servlet.ServletException; import javax.servlet.annotation.WebServlet; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; @WebServlet("/count/result") public class resultNumber extends HttpServlet { private static final long serialVersionUID = 1L; public resultNumber() { super(); } protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { //设置响应格式 response.setContentType("text/html;charset=utf-8"); //使用getAttribute获取自定义属性 int number = (Integer)request.getAttribute("number"); String str = (String)request.getAttribute("userInput"); //这里需要做个判断,判断结果是否为-1,-1说明用户输入使数字但是范围不对 if(number == -1) { response.getWriter().println("输入的数字不在可计算范围"); }else { response.getWriter().println(str + "的累加和为:" + number); } } }
老师麻烦看一下 我的代码有没有地方修改的, 我还有一个问题,就是我记得之前我们在哪里讲过, 有一个方法可以判断String类型能否转换成int类型。好像前面没多久,但去翻就是翻不到,记不起来了
1回答
同学你好!
同学的代码完成的不错,但是有一个小细节要注意一下,类名首字母要大写,同学你的首字母都小写了
同学所说的判断这个字符串是否是数字,是指下面这个吗?
这里在计算器的案例中有讲到,但是是js中的函数,不是java中的哦,具体的链接是:
java中同学可以自己封装一个
如果我的回答解决了你的疑惑,请采纳,祝学习愉快~