学完了Servlet和JSP的章节后,虽然也写了一些管理系统,偶然间看到计算器这个词,于是便动手写一下,因为回想起当初让我用js写个这个我都不会
首先新建一个项目,项目结构图下所示,我习惯用maven创建项目,这样节省不少时间
导入一下所需要的依赖jar包,scope注意填写是provided范围
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>javax.servlet-api</artifactId>
<version>3.1.0</version>
<!-- 此依赖和tomcat中的包冲突,如果要运行,需要将范围变成provide-->
<scope>provided</scope>
</dependency>
<dependency>
<groupId>javax.servlet.jsp</groupId>
<artifactId>jsp-api</artifactId>
<version>2.2</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>jstl</groupId>
<artifactId>jstl</artifactId>
<version>1.2</version>
</dependency>
<dependency>
<groupId>taglibs</groupId>
<artifactId>standard</artifactId>
<version>1.1.2</version>
</dependency>
写一个简单的JSP页面
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<!DOCTYPE html>
<html>
<head>
<title>$Title$</title>
</head>
<body>
<form method="post" action="/calcular/Servlet" name="cal">
<input type="number" placeholder="输入数字" id="a" name="a" value="${a}">
+
<input type="number" placeholder="输入数字" id="b" name="b" value="${b}">
<button id ="d" type="submit">=</button>
<input type="text" id="c" name="c" value="${d}">
</form>
</body>
</html>
创建一个Servlet类,把请求获取到的参数转换成整型后再相加,最后封装到request请求中,请求转发到我们的JSP页面
import javax.servlet.*;
import javax.servlet.http.*;
import javax.servlet.annotation.*;
import java.io.IOException;
@WebServlet("/Servlet")
public class Servlet extends HttpServlet {
@Override
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
String a = request.getParameter("a");
String b = request.getParameter("b");
Integer c = Integer.valueOf(a) + Integer.valueOf(b);
String d = Integer.toString(c);
request.setAttribute("d",d);
request.setAttribute("a",a);
request.setAttribute("b",b);
request.getRequestDispatcher("index.jsp").forward(request,response);
}
@Override
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
this.doGet(request, response);
}
}
运行tomcat服务器,验证结果
好啦,一个简单的web计算器就做好啦!