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

}

}

运行结果图:

点餐:

增加菜单:

删除:

相关推荐
陈大爷(有低保)11 分钟前
UDP Socket聊天室(Java)
java·网络协议·udp
kinlon.liu24 分钟前
零信任安全架构--持续验证
java·安全·安全架构·mfa·持续验证
王哲晓1 小时前
Linux通过yum安装Docker
java·linux·docker
java6666688881 小时前
如何在Java中实现高效的对象映射:Dozer与MapStruct的比较与优化
java·开发语言
Violet永存1 小时前
源码分析:LinkedList
java·开发语言
执键行天涯1 小时前
【经验帖】JAVA中同方法,两次调用Mybatis,一次更新,一次查询,同一事务,第一次修改对第二次的可见性如何
java·数据库·mybatis
Jarlen1 小时前
将本地离线Jar包上传到Maven远程私库上,供项目编译使用
java·maven·jar
蓑 羽1 小时前
力扣438 找到字符串中所有字母异位词 Java版本
java·算法·leetcode
Reese_Cool1 小时前
【C语言二级考试】循环结构设计
android·java·c语言·开发语言