GDPU JavaWeb mvc模式

搭建一个mvc框架的小实例。

简易计算器

有一个名为inputNumber.jsp的页面提供一个表单,用户可以通过表单输入两个数和运算符号提交给Servlet控制器;由名为ComputerBean.java生成的JavaBean负责存储运算数、运算符号和运算结果,由名为handleComputer的servlet控制器负责运算,将结果存储到JavaBean中,并负责请求JSP页面lookResult.jsp显示JavaBean中的数据。

inputNumber.jsp 

<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
    <title>Title</title>
</head>
<body>
<p>输入运算数、选择运算符</p>
<form action="handleComputer" method="post">
    <input type="text" name="numberOne" />
    <select name="operator">
        <option value="+">+</option>
        <option value="-">-</option>
        <option value="*">*</option>
        <option value="/">/</option>
    </select>
    <input type="text" name="numberTwo" /><br>
    <input type="submit" value="计算"/>
</form>
</body>
</html>

ComputerBean

package Beans;

public class ComputerBean {
    private double num1, num2, result;
    private String opt;

    // 省略部分setter和getter方法

    public double getNum1() {
        return num1;
    }

    public void setNum1(double num1) {
        this.num1 = num1;
    }

    public double getNum2() {
        return num2;
    }

    public void setNum2(double num2) {
        this.num2 = num2;
    }

    public double getResult() {
        return result;
    }

    public void setResult(double result) {
        this.result = result;
    }

    public String getOpt() {
        return opt;
    }

    public void setOpt(String opt) {
        this.opt = opt;
    }

    public double optResult(String opt, double num1, double num2) {
        if (opt.equals("+")) {
            result = num1 + num2;
        }
        if (opt.equals("-")) {
            result = num1 - num2;
        }
        if (opt.equals("*")) {
            result = num1 * num2;
        }
        if (opt.equals("/")) {
            result = num1 / num2;
        }
        return result;
    }
}

handleComputer

import Beans.ComputerBean;

import javax.servlet.RequestDispatcher;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;

@WebServlet("/handleComputer")
public class handleComputer extends HttpServlet {
    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        double num1 = Double.parseDouble(request.getParameter("numberOne"));
        double num2 = Double.parseDouble(request.getParameter("numberTwo"));
        String operator = request.getParameter("operator");
        ComputerBean computerBean = new ComputerBean();
        computerBean.setNum1(num1);
        computerBean.setNum2(num2);
        computerBean.setOpt(operator);
        double result = computerBean.optResult(operator, num1, num2);
        computerBean.setResult(result);
        request.setAttribute("computerBean", computerBean);
        RequestDispatcher dispatcher = request.getRequestDispatcher("lookResult.jsp");
        dispatcher.forward(request, response);
    }
}

lookResult.jsp

<%@ page import="Beans.ComputerBean" %>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
    <title>Title</title>
</head>
<body>
<%--EL表达式--%>
<p>${computerBean.num1}${computerBean.opt}${computerBean.num2}=${computerBean.result}</p>
<%--JSP--%>
<%
//    ComputerBean computerBean = (ComputerBean) request.getAttribute("computerBean");
%>
<%--<%= computerBean.getNum1() %><%= computerBean.getOpt() %><%= computerBean.getNum2() %> = <%= computerBean.getResult() %>--%>
</body>
</html>

实验心得

喜欢你的你看不上,你喜欢的看不上你,他/她的优秀你看得见,你也不能一直做后面的影子了。 

 

 

 

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/645307.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

2024最新 Jenkins + Docker实战教程(二) - Jenkins相关配置

&#x1f604; 19年之后由于某些原因断更了三年&#xff0c;23年重新扬帆起航&#xff0c;推出更多优质博文&#xff0c;希望大家多多支持&#xff5e; &#x1f337; 古之立大事者&#xff0c;不惟有超世之才&#xff0c;亦必有坚忍不拔之志 &#x1f390; 个人CSND主页——Mi…

鸿蒙 DevEcoStudio:发布进度条通知

使用notificationManager及wantAgent实现功能import notificationManager from ohos.notificationManager import wantAgent from ohos.app.ability.wantAgent Entry Component struct Index {State message: string 发布进度条通知progressValue: number0async publicDownloa…

24李林跌落神坛,880还刷吗?还是换1000、900、660?

“李林今年跌落神坛了&#xff01;” “全是固定题型没新题&#xff0c;结果今年考的全是新题。” 880是“老真题的神”&#xff0c; 遇到24年&#xff0c;冷门考点多&#xff0c;计算量又大&#xff0c;就不灵了。 但“老真题”&#xff0c;还是得刷。就像往年真题是要刷的…

传输层——UDP

在学习计算机网络的过程中&#xff0c;我们知道OSI七层协议模型&#xff0c;但是在实际开发应 用中我们发现OSI七层协议模型并不适合实施&#xff0c;因为OSI上三层通常都是由开 发人员统一完成的&#xff0c;这三层之间在实现过程中没有一个明确的界限&#xff0c;所以我 们更…

001集—创建、写入、读取文件fileopen函数——vb.net

此实例为在指定路径下创建一个txt文本文件&#xff0c;在文本文件内输入文字&#xff0c;并弹窗显示输入文字&#xff0c;代码如下&#xff1a; Public Class Form1Private Sub Button2_Click(sender As Object, e As EventArgs) Handles Button2.ClickDim testcontent As Str…

基于CNN+LSTM深度学习网络的时间序列预测matlab仿真,并对比CNN+GRU网络

目录 1.算法运行效果图预览 2.算法运行软件版本 3.部分核心程序 4.算法理论概述 4.1 CNN基础 4.2 LSTM原理 4.3 GRU原理 4.4 CNNLSTM与CNNGRU对比 5.算法完整程序工程 1.算法运行效果图预览 2.算法运行软件版本 MATLAB2022A 3.部分核心程序 ......................…

IS-IS DIS

原理概述 OSPF 协议支持4种网络类型&#xff0c; IS-IS 协议只支持两种网络类型&#xff0c;即广播网络和点到点网络。与 OSPF 协议相同&#xff0c; IS-IS 协议在广播网络中会将网络视为一个伪节点( Pseudonode &#xff0c;简称 PSN )&#xff0c;并选举出一台 DIS ( Designa…

Springboot+Vue+ElementUI开发前后端分离的员工管理系统01--系统介绍

项目介绍 springboot_vue_emp是一个基于SpringbootVueElementUI实现的前后端分离的员工管理系统 功能涵盖&#xff1a; 系统管理&#xff1a;用户管理、角色管理、菜单管理、字典管理、部门管理出勤管理&#xff1a;请假管理、考勤统计、工资发放、工资统计、离职申请、个人资…

部署LAMP平台

目录 一、LAMP简介与概述 1.1 各组件作用 1.2 LAMP平台搭建时各组件安装顺序 1.3 httpd服务的目录结构 1.4 httpd.conf配置文件 二、编译安装Apache httpd服务 2.1 关闭防火墙&#xff0c;将安装Apache所需软件包传到/opt目录下 2.2 安装环境依赖包 ​2.3 配置软件模块…

监控员工电脑屏幕的五大软件(电脑监控软件大盘点)

监控员工电脑屏幕是企业为了提升工作效率、确保信息安全和合规性而采取的一种常见做法。以下是五款在2024年备受推荐的员工电脑屏幕监控软件&#xff0c;每款软件都具有其独特的功能和优势&#xff1a; 1. 域智盾 域智盾是一款全面的终端管理系统&#xff0c;集成了实时屏幕监…

CSP俄罗斯方块(简单易懂)

开始将题目理解成了&#xff0c;开始的列应该是从输入图案的最左端开始计算&#xff0c;将前面所有的空列都删掉&#xff0c;代码如下&#xff1a; #include<bits/stdc.h> using namespace std; const int N 1e410; const int M 1e510; int a[20][20]; int b[5][5];int…

docker同步bilibili收藏视频到群晖,可配合emby

作者是amtoaer&#xff0c;在github项目地址&#xff1a;https://github.com/amtoaer/bili-sync 有两个版本&#xff0c;1.0和2.0&#xff0c;我使用的是2.0 PS2&#xff1a;2.0和1.0版本目录结构不兼容&#xff0c;所以部署后会全量重新下载视频。 演示&#xff1a; 依然是…

啊哈!算法-第2章-栈、队列、链表

啊哈!算法-第2章-栈、队列、链表 第1节 解密qq号——队列第2节 解密回文——栈第3节 纸牌游戏——小猫钓鱼第4节 链表第5节 模拟链表 第1节 解密qq号——队列 新学期开始了&#xff0c;小哈是小哼的新同桌(小哈是个大帅哥哦~)&#xff0c;小哼向小哈询问 QQ 号&#xff0c; 小…

XXE(XML外部实体注入)

1、XXE原理 XXE&#xff08;XML外部实体注入&#xff0c;XML External Entity) &#xff0c;在应用程序解析XML输入时&#xff0c;当允许引用外部实体时&#xff0c;可构造恶意内容&#xff0c;导致读取任意文件、探测内网端口、攻击内网网站、发起DoS拒绝服务攻击、执行系统命…

DOS学习-目录与文件应用操作经典案例-more

新书上架~&#x1f447;全国包邮奥~ python实用小工具开发教程http://pythontoolsteach.com/3 欢迎关注我&#x1f446;&#xff0c;收藏下次不迷路┗|&#xff40;O′|┛ 嗷~~ 目录 一.前言 二.使用 三.案例 一.前言 DOS系统的more命令是一个用于查看文本文件内容的工具。…

【教学类-58-04】黑白三角拼图04(2-10宫格,每个宫格随机1张-6张,带空格纸)

背景需求&#xff1a; 前期制作了黑白三角拼图2*2、3*3、4*4&#xff0c;确定了基本模板&#xff0c;就可以批量制作更多格子数 【教学类-58-01】黑白三角拼图01&#xff08;2*2宫格&#xff09;固定256种随机抽取10张-CSDN博客文章浏览阅读522次&#xff0c;点赞13次&#x…

通过扩展指令增强基于覆盖引导的模糊测试

本文由Bruno Oliveira于2024年4月25日发表于IncludeSec的官方网站上。作为IncludeSec的安全研究人员&#xff0c;在他们日常的安全审计和渗透测试工作中&#xff0c;有时需要为客户开发一些模糊测试工具。在安全评估方法中使用模糊测试技术&#xff0c;可以有效地在复杂的现代化…

全免费的数据恢复工具哪个好?分享2024年性价比超高的12款数据恢复软件!

当您丢失重要文件时&#xff0c;您应该可不想遇到措手不及的情况吧&#xff1f;相反&#xff0c;您需要在系统中使用一些可靠的数据恢复软件&#xff0c;但是全免费的数据恢复工具哪个好呢&#xff1f;别担心&#xff0c;本文将帮助您选择最适合您的解决方案。 如何挑选一款合适…

QT常量中有换行符

头文件添加&#xff1a; #pragma execution_character_set("utf-8")

我用LLaMA-Factory微调大模型来实现商品评论情感分析,准确率高达91.70%

大家好&#xff0c;我是程序锅。 最近在modelscope上闲逛的时候&#xff0c;在数据集板块发现有一个商品评论情感预测数据集。这个数据集源自一个比赛&#xff0c;它的目的是为了预测电商平台顾客的评论是好评还是差评。 数据示例如下所示&#xff08;其中0代表差评&#xff…