980041382 发表于 2021-11-12 21:45

已解决

本帖最后由 980041382 于 2021-11-13 21:10 编辑

package com.web;

import com.domain.Computer;

import javax.servlet.*;
import javax.servlet.http.*;
import javax.servlet.annotation.*;
import java.io.IOException;

@WebServlet("/handleComputerServlet")
public class HandleComputerServlet extends HttpServlet {
    @Override
    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
      this.doPost(request, response);
    }

    @Override
    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
      double num1 = Double.parseDouble(request.getParameter("num1"));
      String operator = request.getParameter("operator");
      double num2 = Double.parseDouble(request.getParameter("num2"));

      Computer computer = new Computer();
      HttpSession session = request.getSession();
      if (num2!=0){
            switch (operator) {
                case "+":
                  computer.setResult(num1 + num2);
                  break;
                case "-":
                  computer.setResult(num1 - num2);
                  break;
                case "*":
                  computer.setResult(num1 * num2);
                  break;
                case "/":
                  computer.setResult(num1 / num2);
                  break;
            }
      }else{
            switch (operator) {
                case "+":
                  computer.setResult(num1 + num2);
                  break;
                case "-":
                  computer.setResult(num1 - num2);
                  break;
                case "*":
                  computer.setResult(num1 * num2);
                  break;
                case "/":
                  session.setAttribute("result", "被除数不能为0");
                  break;
            }
      }
      response.sendRedirect("lookResult.jsp");

    }
}






我需要转发计算结果保存到Computer这个实体类里面 然后再在JSP页面调用这个结果

补充一下lookResult的代码
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<%@ page import="com.domain.Computer" %>
<jsp:useBean id="computer" class="com.domain.Computer" scope="session"/>
<jsp:setProperty name="computer" property="*"/>
<html>
<head>
    <title>Title</title>
</head>
<body>
<h1><b>结果是:<jsp:getProperty name="computer" property="result"/></b></h1>


<h1><b>${result}</b></h1>
</body>
</html>


补充一下inputNumber的代码
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
    <title>Title</title>
</head>
<body>
<form action="${pageContext.request.contextPath}/handleComputerServlet" method="post">
    <input type="text" name="num1" width="50px" />
    <select name="operator">
      <option value="+">+</option>
      <option value="-">-</option>
      <option value="*">*</option>
      <option value="/">/</option>
    </select>
    <input type="text" name="num2" width="50px"/>
    <input type="submit" value="计算"/>
</form>
</body>
</html>

980041382 发表于 2021-11-12 21:46

JSP我已经写好了 实体类就是double类型的num1、num2、result和String类型的运算符 以及对应的get和set方法

13599383608 发表于 2021-11-12 21:58

你这个不是已经存在Computer实体类里面了吗 把这个实体类存在session里面 然后在jsp页面去get出来

980041382 发表于 2021-11-12 22:02

13599383608 发表于 2021-11-12 21:58
你这个不是已经存在Computer实体类里面了吗 把这个实体类存在session里面 然后在jsp页面去get出来

不是啊。Computer实体类的Result是没有值的 需要我这个servlet计算出来啊 然后再存入到实体类里面

13599383608 发表于 2021-11-12 22:05

setResult不是已经计算出来了吗

980041382 发表于 2021-11-12 22:20

13599383608 发表于 2021-11-12 22:05
setResult不是已经计算出来了吗

我计算出来 但是我到页面 还是没有值啊

980041382 发表于 2021-11-12 22:54

我是想实体类储存结构 Servlet进行运算 JSP进行展示 和获取值

bxy 发表于 2021-11-12 23:20

session.setAttribute("result", computer);

980041382 发表于 2021-11-12 23:23

bxy 发表于 2021-11-12 23:20
session.setAttribute("result", computer);

大佬为什么改了以后还是运算不了啊。。得到的结果一直都是0

bxy 发表于 2021-11-12 23:26

980041382 发表于 2021-11-12 23:23
大佬为什么改了以后还是运算不了啊。。得到的结果一直都是0

你得给num1和2传参, 在swit结束后set
页: [1] 2 3
查看完整版本: 已解决