实验15 MVC

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

编写代码,掌握MVC的用法。

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

inputMenu.jsp:

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

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

<jsp:useBean id="menu" class ="save.data.MenuBean" scope="session" />

<style>

#textStyle {

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

}

</style>

<HTML><body bgcolor=#ffccff >

<form action="addMenu" id= textStyle method=post >

输入餐单(每次输入一个消费项目):<br>

名称:<input type=text name='foodName' id =textStyle value =' 剁椒鱼头 ' size = 8 />

价格:<input type=text name='price' id =textStyle value ='26.9' size = 8 />

<br><input type=submit id=textStyle value=" 添加到餐单 " >

</form>

</body></HTML>

showMenu.jsp:

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

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

<jsp:useBean id="menu" class ="save.data.MenuBean" scope="session" />

<style>

#tom {

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

}

</style>

<HTML><body bgcolor=pink >

<table border=1 >

<tr><th id=tom >序号</th><th id=tom >食物名称</th><th id=tom >价格</th>

<% request.setCharacterEncoding("utf-8");

String index = request.getParameter("删除");

if (index!=null ){

menu.removeFood(Integer.parseInt(index));

}

for (int i=0;i<menu.size();i++){

out.print("<tr>");

out.print("<td id=tom>"+(i+1)+"</td>");

out.print("<td id=tom>"+menu.getFoodName(i)+"</td>");

out.print("<td id=tom>"+menu.getPrice(i)+"</td>");

out.print("<td ><form action ="+"showMenu.jsp"+" method=post>");

out.print("<input type = hidden name = 删除 value = "+i+" />");

out.print("<input type = submit value = 删除该食物 />");

out.print("</form></td>");

out.print("</tr>");

}

%> </table>

<p id = tom >

餐单总额(共有<%=menu.size()%>道食物):

<jsp:getProperty name="menu" property="totalPrice" /><br>

点餐时间:

<jsp:getProperty name="menu" property="time" /></p>

<a id =tom href="inputMenu.jsp" >继续点餐</a>

</body></HTML>

web.xml:

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

<web-app>

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

<servlet>

<servlet-name>addMenu</servlet-name>

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

</servlet>

<servlet-mapping>

<servlet-name>addMenu</servlet-name>

<url-pattern>/addMenu</url-pattern>

</servlet-mapping>

</web-app>

Food:

package save.data;

public class Food implements Comparable<Food>{

String foodName ;

double price;

public void setFoodName(String name){

foodName = name;

}

public String getFoodName(){

return foodName;

}

public void setPrice(double d){

price = d;

}

public double getPrice(){

return price;

}

public int compareTo(Food food){

return (int )(food.getPrice()*1000-price*1000);

}

}

package save.data;

import java.util.ArrayList;

import java.util.Collections;

public class MenuBean {

String time ;

String totalPrice;

ArrayList<Food> foodList;

public MenuBean(){

foodList = new ArrayList<Food>();

}

public void addFood(Food food){

foodList.add(food);

Collections.sort(foodList);

}

public void removeFood(int index){

if (index>=0){

foodList.remove(index);

Collections.sort(foodList);

}

}

public String getFoodName(int index) {

return foodList.get(index).getFoodName();

}

public double getPrice(int index) {

return foodList.get(index).getPrice();

}

public int size() {

return foodList.size();

}

public void setTime(String time){

this .time = time;

}

public String getTime(){

return time;

}

public String getTotalPrice(){

double sum = 0;

for (Food food:foodList){

sum += food.getPrice();

}

totalPrice = String.format("%.2f",sum);

return totalPrice;

}

}

HandleMenu_Servlet:

package handle.data;

import save.data.Food;

import save.data.MenuBean;

import ++java.util++.*;

import java.io.*;

import java.time.LocalTime;

import javax.servlet.*;

import javax.servlet.http.*;

public class ++HandleMenu_Servlet++ extends HttpServlet{

public void init(ServletConfig config) throws ServletException{

super .init(config);

}

public void service(HttpServletRequest request,HttpServletResponse response)

throws ServletException,IOException{

request.setCharacterEncoding("utf-8");

MenuBean menu = null ;

HttpSession session=request.getSession(true );

menu = (MenuBean)session.getAttribute("menu");

if (menu == null ){

menu = new MenuBean();

session.setAttribute("menu",menu);

}

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

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

Food food = new Food();

if (foodName.length()==0||price.length()==0){

response.sendRedirect("inputMenu.jsp");

return ;

}

food.setFoodName(foodName);

food.setPrice(Double.parseDouble(price));

LocalTime dateTime = LocalTime.now();

String str = dateTime.toString();

String time =str.substring(0,str.lastIndexOf("."));

menu.setTime(time);

menu.addFood(food);

response.sendRedirect("showMenu.jsp");

}

}

运行结果图:

点餐:

增加菜单:

删除:

相关推荐
不爱学习的YY酱27 分钟前
【操作系统不挂科】<CPU调度(13)>选择题(带答案与解析)
java·linux·前端·算法·操作系统
丁总学Java33 分钟前
Maven项目打包,com.sun.tools.javac.processing
java·maven
kikyo哎哟喂43 分钟前
Java 代理模式详解
java·开发语言·代理模式
duration~1 小时前
SpringAOP模拟实现
java·开发语言
小码ssim1 小时前
IDEA使用tips(LTS✍)
java·ide·intellij-idea
潜洋1 小时前
Spring Boot教程之五:在 IntelliJ IDEA 中运行第一个 Spring Boot 应用程序
java·spring boot·后端
暮志未晚Webgl2 小时前
109. UE5 GAS RPG 实现检查点的存档功能
android·java·ue5
小叶lr2 小时前
idea 配置 leetcode插件 代码模版
java·leetcode·intellij-idea
ernesto_ji2 小时前
Jenkins下载安装、构建部署到linux远程启动运行
linux·servlet·jenkins
qq_429856572 小时前
idea启动服务报错Application run failed
java·ide·intellij-idea