2-6 自由编程

来源:2-6 自由编程

JakePrim

2020-01-09 20:08:02

package com.jakeprim.servlet.direct;

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 SumServlet
 */
@WebServlet("/direct/sum")
public class SumServlet extends HttpServlet {
	private static final long serialVersionUID = 1L;

	/**
	 * @see HttpServlet#HttpServlet()
	 */
	public SumServlet() {
		super();
		// TODO Auto-generated constructor stub
	}

	/**
	 * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse
	 *      response)
	 */
	protected void doGet(HttpServletRequest request, HttpServletResponse response)
			throws ServletException, IOException {
		String num = request.getParameter("num");
		if (num != null) {
			try {
				Integer number = Integer.valueOf(num);
				if (number > 100 || number <= 0) {
					request.setAttribute("msg", "输入数值必须>0 and <=100");
					request.getRequestDispatcher("/direct/error").forward(request, response);
					return;
				}
				Integer sum = 0;
				for (int i = 1; i <= number; i++) {
					sum += i;
				}
				request.setAttribute("sum", sum);
				request.getRequestDispatcher("/direct/result").forward(request, response);
			} catch (Exception e) {
				request.setAttribute("msg", "输入数值类型错误");
				request.getRequestDispatcher("/direct/error").forward(request, response);
			}
		} else {
			request.setAttribute("msg", "输入为null!");
			request.getRequestDispatcher("/direct/error").forward(request, response);
		}
	}

	/**
	 * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse
	 *      response)
	 */
	protected void doPost(HttpServletRequest request, HttpServletResponse response)
			throws ServletException, IOException {
		// TODO Auto-generated method stub
		doGet(request, response);
	}

}

上述为求和Servlet,同时还定义错误Servlet和结果Servlet 如下:

package com.jakeprim.servlet.direct;

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 ErrorServlet
 */
@WebServlet("/direct/error")
public class ErrorServlet extends HttpServlet {
	private static final long serialVersionUID = 1L;

	/**
	 * @see HttpServlet#HttpServlet()
	 */
	public ErrorServlet() {
		super();
		// TODO Auto-generated constructor stub
	}

	/**
	 * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse
	 *      response)
	 */
	protected void doGet(HttpServletRequest request, HttpServletResponse response)
			throws ServletException, IOException {
		request.setCharacterEncoding("UTf-8");
		response.setCharacterEncoding("UTF-8");
		response.setHeader("content-type", "text/html;charset=UTF-8");
		String msg = (String) request.getAttribute("msg");
		response.getWriter().append("<h1 style='color:red;'> error:" + msg + "</h1>");
	}

	/**
	 * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse
	 *      response)
	 */
	protected void doPost(HttpServletRequest request, HttpServletResponse response)
			throws ServletException, IOException {
		// TODO Auto-generated method stub
		doGet(request, response);
	}

}
package com.jakeprim.servlet.direct;

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 ResultServlet
 */
@WebServlet("/direct/result")
public class ResultServlet extends HttpServlet {
	private static final long serialVersionUID = 1L;
       
    /**
     * @see HttpServlet#HttpServlet()
     */
    public ResultServlet() {
        super();
        // TODO Auto-generated constructor stub
    }

	/**
	 * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
	 */
	protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		Integer sum = (Integer) request.getAttribute("sum");
		response.getWriter().append("<h1 style='color:green;'> sum:"+sum+"</h1>");
	}

	/**
	 * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
	 */
	protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		// TODO Auto-generated method stub
		doGet(request, response);
	}

}

html 代码如下:

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
<form action="http://localhost:8080/request-struc/direct/sum">
	<input type="number" name="num" placeholder="请输入100以内的数字">
	<input type="submit" value="求累加和">
</form>
</body>
</html>


写回答

1回答

好帮手慕小班

2020-01-10

同学你好!经过老师测试,结果正确,结构完整,命名规范,完成的不错!加油.

祝:学习愉快

0

0 学习 · 9666 问题

查看课程

相似问题