实验14 MVC

news/2024/5/18 22:03:24

二、实验项目内容(实验题目)

编写代码,掌握MVC的用法。【参考课本 例1 】

三、源代码以及执行结果截图:

example7_1.jsp:

<%@ page contentType="text/html" %>

<%@ page pageEncoding = "utf-8" %>

<jsp:useBean id="digitBean" class ="save.data.Example7_1_Bean" scope="request"/>

<style>

   #tom{

      font-family:宋体;font-size:26;color:blue

   }

</style>

<HTML><body bgcolor=#ffccff>

<form action="computer" id =tom method=post>

<table>

<tr><td id =tom> 输入两个数:</td>

<td id =tom>

<input type=text name="numberOne"

       value=<%= digitBean.getNumberOne() %> id =tom size=6/></td>

<td><input type=text name="numberTwo"

       value=<%=digitBean.getNumberTwo()%> id =tom size=6/></td>

</tr>

<tr><td id =tom>选择运算符号:</td>

<td id =tom>

<select id =tom name="operator">

    <option value="+">+()

    <option value="-">-()

    <option value="*">*()

    <option value="/">/()

</select>

</td>

<td><input type="submit" id =tom value="提交" name="sub"/></td>

</tr>

</table></form>

<p id=tom>

运算结果:

<jsp:getProperty name="digitBean" property="numberOne"/>

<jsp:getProperty name="digitBean" property="operator"/>

<jsp:getProperty name="digitBean" property="numberTwo"/> =

<jsp:getProperty name="digitBean" property="result"/>

</p></body></HTML>

Example7_1_Servlet.Java:

package handle.data;

import java.io.*;

import javax.servlet.*;

import javax.servlet.http.*;

import save.data.*;

public class Example7_1_Servlet extends HttpServlet{

   public void init(ServletConfig config) throws ServletException{

       super.init(config);

   }

   public void doPost(HttpServletRequest request,HttpServletResponse response) throws ServletException,IOException{

       Example7_1_Bean digitBean = null;

       digitBean = new Example7_1_Bean(); 

     

       request.setAttribute("digitBean",digitBean);

       String str1 = request.getParameter("numberOne");

       String str2 = request.getParameter("numberTwo");

       if(str1==null||str2==null)

         return;

       if(str1.length()==0||str2.length()==0)

         return;

       double numberOne = Double.parseDouble(str1);

       double numberTwo = Double.parseDouble(str2);

       String operator = request.getParameter("operator");

       double result=0;

       if(operator.equals("+"))

           result = numberOne+numberTwo;

       else if(operator.equals("-"))

           result = numberOne-numberTwo;

       else if(operator.equals("*"))

           result = numberOne*numberTwo;

       else if(operator.equals("/"))

           result = numberOne/numberTwo;

       digitBean.setNumberOne(numberOne);

       digitBean.setNumberTwo(numberTwo); 

       digitBean.setOperator(operator);  

       digitBean.setResult(result);

    

       RequestDispatcher dispatcher= request.getRequestDispatcher("example7_1.jsp");

       dispatcher.forward(request,response);

   }

   public  void  doGet(HttpServletRequest request,HttpServletResponse response)throws ServletException,IOException{

       doPost(request,response);

   }

}

Example7_1_Bean:

package save.data;

public class Example7_1_Bean {

   double numberOne,numberTwo,result;

   String operator="+";

   public void setNumberOne(double n){

      numberOne=n;

   }

   public double getNumberOne(){

      return numberOne;

   }

   public void setNumberTwo(double n){

      numberTwo=n;

   }

   public double getNumberTwo(){

      return numberTwo;

   }

   public void setOperator(String s){

      operator=s.trim();;

   }

   public String getOperator(){

      return operator;

   }

   public void setResult(double r){

      result=r;

   }

   public double getResult(){

      return result;

   }

}

Web.xml:

<?xml version="1.0" encoding="utf-8"?>

<web-app>

    <!--  以下是web.xml文件新添加的内容 -->

    <servlet>

        <servlet-name>computer</servlet-name>

        <servlet-class>handle.data.Example7_1_Servlet</servlet-class>

    </servlet>

    <servlet-mapping>

        <servlet-name>computer</servlet-name>

        <url-pattern>/computer</url-pattern>

    </servlet-mapping>

    <servlet>

        <servlet-name>handleExpress</servlet-name>

        <servlet-class>handle.data.ExpressWish_Servlet</servlet-class>

    </servlet>

    <servlet-mapping>

        <servlet-name>handleExpress</servlet-name>

        <url-pattern>/handleExpress</url-pattern>

    </servlet-mapping>

    <servlet>

        <servlet-name>shopping</servlet-name>

        <servlet-class>handle.data.Example7_2_Servlet</servlet-class>

    </servlet>

    <servlet-mapping>

        <servlet-name>shopping</servlet-name>

        <url-pattern>/shopping</url-pattern>

    </servlet-mapping>

</web-app>

结果图:


http://www.mrgr.cn/p/37375876

相关文章

Ubuntu中CLion编译Geant4项目

围绕自带的/examples/basic/B1展开,其他项目相关操作类似。 成功安装Geant4后,首先验证B1示例能否正常运行,可以则进行下一步。 安装Clion。 进入B1示例,选择使用Clion打开目录中的CMakeLists.txt文件,以创建对应的项目(Project)。 进入项目后,直接Run该项目可能报如下…

Linux设置cp命令显示进度条

1、前言 实现原理: 重新安装cp、mv命令,显示进度条 测试环境:Centos7.6 查看当前系统下的coreutils工具包的版本 rpm -qa | grep -w coreutils当前版本8.22 2、下载coreutils安装包 不需要太新,8.32即可 wget http://ftp.gnu.org/gnu/coreutils/coreutils-8.32.tar.xz3、下…

批量抓取某电影网站的下载链接

思路&#xff1a; 进入电影天堂首页&#xff0c;提取到主页面中的每一个电影的背后的那个urL地址 a. 拿到“2024必看热片”那一块的HTML代码 b. 从刚才拿到的HTML代码中提取到href的值访问子页面&#xff0c;提取到电影的名称以及下载地址 a. 拿到子页面的页面源代码 b. 数据提…

Cisco WLC 2504控制器重启后所有AP掉线故障-系统日期时间

1 故障描述 现场1台WLC 2504控制器掉电重启后&#xff0c;所有AP均无线上线&#xff0c; 正常时共有18个AP在线&#xff0c;而当前为0 AP在线数量为0 (Cisco Controller) >show ap sumNumber of APs.................................... 0Global AP User Name..........…

git 客户端使用

1.新建目录a,进入到a目录,鼠标右键Open git Bash here 2.克隆到本地:git clone git@124.221.230.131:/home/git/dataCollect.git 3.进入本地git仓库: cd dataCollect/ 4.查看分支:git branch 5.更新代码:git pull 6.进入本地git仓库,新建文件test.txt 7.提交代码到本地g…

3.9设计模式——Strategy 策略模式(行为型)

意图 定义一系列的算法&#xff0c;把它们一个个封装起来&#xff0c;并且使他们可以相互替换此模式使得算法可以独立于使用它们的客户而变化 结构 Strategy&#xff08;策略&#xff09;定义所有支持的算法的公共入口。Context使用这个接口来调用某ConcreteStrategy定义的方…

docker部署nginx并实现https

文章目录 docker部署nginx并实现https1、服务器环境2、安装docker3、准备证书4、准备nginx配置文件和dockerfile文件5、创建nginx镜像与容器6、验证访问 docker部署nginx并实现https 1、服务器环境 [rootliuyanfen12 ~]#systemctl stop firewalld [rootliuyanfen12 ~]#setenf…

可视化大屏应用场景:智慧安防,保驾护航

hello&#xff0c;我是大千UI工场&#xff0c;本篇分享智慧安防的大屏设计&#xff0c;关注我们&#xff0c;学习N多UI干货&#xff0c;有设计需求&#xff0c;我们也可以接单。 实时监控与预警 可视化大屏可以将安防系统中的监控画面、报警信息、传感器数据等实时展示在大屏上…

overthewire - Bandit

随笔记 overthewire的密码会在一定周期更换。 Bandit Level 0 直接SSH连接2220端口 ssh -p 2220 bandit0@localhost 密码:bandit0ls 查看目录,看到readme,读取文件。 cat readme 获取bandit1密码 NH2SXQwcBdpmTEzi3bvBHMM9H66vVXjL Bandit Level 0 → Level 1 ls 查看目录下…

能源监控新方案:IEC104转MQTT网关在新能源发电中的应用

需求背景 近些年&#xff0c;我国新能源产业快速发展&#xff0c;光伏、风电等新能源项目高速增长&#xff0c;新能源发电已经成为国家能源结构的重要组成部分。 打造数字化、智能化、信息化的电力物联网系统&#xff0c;实现光伏风电等新能源发电站的远程监控、远程维护是新能…

对C语言符号的一些冷门知识运用的剖析和总结

把概念和原理讲清楚、进阶、C语言符号符号 目录符号注释奇怪的注释C风格的注释无法嵌套一些特殊的注释注释的规则建议反斜杠\反斜杠有续行的作用,但要注意续行后不能添加空格回车也能起到换行的作用,那续行符的意义在哪?反斜杠的转义功能单引号和双引号字面值,字符串,字符,字…

QT:QT窗口(一)

文章目录 菜单栏创建菜单栏在菜单栏中添加菜单创建菜单项添加分割线 工具栏创建工具栏设置停靠位置创建工具栏的同时指定停靠位置使用QToolBar类提供的setAllowedAreas函数来设置停靠位置 设置浮动属性设置移动属性 状态栏状态栏的创建在状态栏中显示实时消息在状态栏中显示永久…

Python-VBA函数之旅-oct函数

目录 一、oct函数的常见应用场景 二、oct函数使用注意事项 三、如何用好oct函数&#xff1f; 1、oct函数&#xff1a; 1-1、Python&#xff1a; 1-2、VBA&#xff1a; 2、推荐阅读&#xff1a; 个人主页&#xff1a;神奇夜光杯-CSDN博客 一、oct函数的常见应用场景 oc…

推荐一个好用的命令行工具ShellGPT

ShellGPT 配置安装常用功能聊天写命令并执行 高级功能函数调用角色管理 总结 这两天突然想到&#xff0c;现有的很多工具都在被大模型重构&#xff0c;比如诞生了像perplexity.ai 这种新交互形式的搜索引擎&#xff0c;就连wps也推出了AI服务&#xff0c;甚至都可以直接生成ppt…

k8s核心组件详解和分层架构

k8s核心组件master中的核心组件api-server(接口服务,基于rest风格开放k8s接口的服务) kube-controller-manager(管理各个类型的控制器,针对k8s中的各种资源进行管理)cloud-controller-manager(云控制管理器,第三方云平台提供的控制器,api对接管理功能) kube-scheduler…

QT中的容器

Qt中的容器 关于Qt中的容器类&#xff0c;下面我们来进行一个总结&#xff1a; Qt的容器类比标准模板库&#xff08;STL&#xff09;中的容器类更轻巧、安全和易于使用。这些容器类是隐式共享和可重入的&#xff0c;而且他们进行了速度和存储的优化&#xff0c;因此可以减少可…

前端框架开发之Niu框架——从零学框架的小白

起因: 从2018年6月一直到我重新提笔,6年时间。这六年时间,我见证了IT的兴衰,见证了小众框架LayUI框架的重新更新,见证了vue、angular、react等框架的主流。----博客园老牛大讲堂初衷: 今年我突发灵感,想要设计一个网站,作为程序员却"提笔忘字",就连最基本的…

【webrtc】MessageHandler 7: 基于线程的消息处理:切换main线程向observer发出通知

以当前线程作为main线程 RemoteAudioSource 作为一个handler 仅实现一个退出清理的功能 首先on message的处理会切换到main 线程 :main_thread_其次,这里在main 线程对sink_ 做清理再次,在main 线程做出状态改变,并能通知给所有的observer 做出on changed 行为。对接mediac…

Blazor流程编排的艺术:深入Z.Blazor.Diagrams库的使用与实践

为现代网页应用开发提供动力的其中一个重要方面就是前端框架的强大功能与灵活性。而在.NET生态中,Blazor以其独特的工作方式和优势逐渐获得了开发者们的青睐。今天,在这篇文章中,我将带你深入探索一个基于Blazor的优秀库——Z.Blazor.Diagrams,我们将了解它是如何帮助开发者…

设计模式: 工厂模式

工厂模式&#xff08;Factory Pattern&#xff09;是 Java 中最常用的设计模式之一&#xff0c;这种类型的设计模式属于创建型模式&#xff0c;它提供了一种创建对象的最佳方式。 工厂模式提供了一种创建对象的方式&#xff0c;而无需指定要创建的具体类。 工厂模式属于创建型…