实验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");

}

}

运行结果图:

点餐:

增加菜单:

删除:

相关推荐
FF在路上16 分钟前
Knife4j调试实体类传参扁平化模式修改:default-flat-param-object: true
java·开发语言
真的很上进22 分钟前
如何借助 Babel+TS+ESLint 构建现代 JS 工程环境?
java·前端·javascript·css·react.js·vue·html
众拾达人1 小时前
Android自动化测试实战 Java篇 主流工具 框架 脚本
android·java·开发语言
皓木.1 小时前
Mybatis-Plus
java·开发语言
不良人天码星1 小时前
lombok插件不生效
java·开发语言·intellij-idea
守护者1701 小时前
JAVA学习-练习试用Java实现“使用Arrays.toString方法将数组转换为字符串并打印出来”
java·学习
源码哥_博纳软云1 小时前
JAVA同城服务场馆门店预约系统支持H5小程序APP源码
java·开发语言·微信小程序·小程序·微信公众平台
禾高网络1 小时前
租赁小程序成品|租赁系统搭建核心功能
java·人工智能·小程序
学会沉淀。1 小时前
Docker学习
java·开发语言·学习
如若1231 小时前
对文件内的文件名生成目录,方便查阅
java·前端·python