Servlet实现:加、减、乘、除

贴出,一个简单的基于Servlet的网络应用(实现 + - * / 功能)程序。

 

web.xml

 <!-- Our servlet, the target of the form submission -->
  <servlet>
  	<servlet-name>mathServlet</servlet-name>
  	<servlet-class>vivi.test.dwr.MathServlet</servlet-class>
  </servlet>
  <servlet-mapping>
  	<servlet-name>mathServlet</servlet-name>
  	<url-pattern>/mathServlet</url-pattern>
  </servlet-mapping>
  
  <!-- Default page to load in context -->
  <welcome-file-list>
  	<welcome-file>index.jsp</welcome-file>
  </welcome-file-list>

 MathServlet.java

/**
 * @author vivi
 * This servlet is the target of the form submission.
 * It dispatches(调度, 调遣) to MathDelegate(代表, 委员, 特派员) class to do the actual work, 
 * then forward to index.jsp
 */
public class MathServlet extends HttpServlet {
	

	/* The typical doPost() of a servlet
	 * @see javax.servlet.http.HttpServlet#doPost(javax.servlet.http.HttpServletRequest, 
	 * javax.servlet.http.HttpServletResponse)
	 */
	public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException{
		//Get the number to operate on, and operation to perform,as specified by the caller
		int a = Integer.parseInt(request.getParameter("a").toString());
		int b = Integer.parseInt(request.getParameter("b").toString());
		String op = request.getParameter("op").toString();
		
		MathDelegate mathDelegate = new MathDelegate();
		int answer = 0;
		
		//Call the MathDelegate to perform the appropriate(适合的; 适当的; 相称的) operation, 
		//and store a math symbol(记号, 符号) representing(现, 表示, 描绘, 讲述, 代表, 象征,) 
		//the operation in request.
		if("add".equalsIgnoreCase(op)){
			answer = mathDelegate.add(a, b);
			request.setAttribute("op", "+");
		}else if("subtract".equalsIgnoreCase(op)){
			answer = mathDelegate.subtract(a, b);
			request.setAttribute("op", "-");
		}else if("multiply".equalsIgnoreCase(op)){
			answer = mathDelegate.multiply(a, b);
			request.setAttribute("op", "*");
		}else if("divide".equalsIgnoreCase(op)){
			answer = mathDelegate.divide(a, b);
			request.setAttribute("op", "/");
		}
		
		//Add the two number and answer to request, so our JSP can display it.
		request.setAttribute("a", Integer.valueOf(a));
		request.setAttribute("b", Integer.valueOf(b));
		request.setAttribute("answer", Integer.valueOf(answer));
		
		//Forward to index.jsp
		RequestDispatcher dispatcher = getServletContext().getRequestDispatcher("/index.jsp");
		dispatcher.forward(request, response);
	}
}

 MathDelegate.java

/**
 * @author vivi
 * A class perform basic mathmatical operations on two numbers.
 */
public class MathDelegate {
	
	/**
	 * Add two number 
	 * @param a the first number
	 * @param b the second number
	 * @return the result of the operation
	 */
	public int add(int a, int b){
		return a+b;
	}
	
	/**
	 * Subtract two number 
	 * @param a the first number
	 * @param b the second number
	 * @return the result of the operation
	 */
	public int subtract(int a, int b){
		return a-b;
	}
	
	/**
	 * Multiply two number 
	 * @param a the first number
	 * @param b the second number
	 * @return the result of the operation
	 */
	public int multiply(int a, int b){
		return a*b;
	}
	
	/**
	 * Divide two number 
	 * @param a the first number
	 * @param b the second number
	 * @return the result of the operation
	 */
	public int divide(int a, int b){
		return a/b;
	}
}

 index.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
	<head>
		<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
		<title>第一个简单的DWR实例-----非DWR实现,用于对比DWR的便捷</title>
	</head>
	<body>
	<% 
		Integer answer = (Integer)request.getAttribute("answer");
		//if there's an answer attribute in request,we just performed an operation , so display the result
		if(answer!=null){
			Integer a = (Integer)request.getAttribute("a");
			String op = (String)request.getAttribute("op");
			Integer b = (Integer)request.getAttribute("b");
		
	%>
		<span>Result: <%= a%> <%= op%> <%= b%> = <%= answer%></span>
	<%
		}
	%>
	
	<br></br>
	
	Please enter two numbers, select an operation , and click the equals button:
	<br></br>
	
	<form action="mathServlet" method="post">
		<input type="text" name="a" size="4">
		&nbsp;
		<select name="op">
			<option value="add">+</option>
			<option value="subtract">-</option>
			<option value="multiply">*</option>
			<option value="divide">/</option>
		</select>
		&nbsp;
		<input type="text" name="b" size="4">
		&nbsp;
		<input type="submit" value="=">
	</form>
	</body>
</html>

 

************************************************************************

 

 

你可能感兴趣的:(html,jsp,servlet,DWR,网络应用)