在MVC模式中怎样使用scope是session的bean

MVC是一种通过三个不同部分构造一个软件或组件的理想办法:
1.模型(Model) =JavaBean
用于存储数据或实现业务逻辑的对象。
2. 视图(View) =JSP
向控制器提交所须数据、显示模型中的数据。
3.控制器(Controller) =Servlet
负责具体的业务逻辑操作,即控制器根据视图提出的要求对数据做出(商业)处理,并将有关结果存储到模型中,并负责让模型和视图进行必要的交互,当模型中的数据变化时,让视图更新显示。
在这里插入图片描述
编写HandleArea.jsp、web.xml、Area.java和HandleArea.java
1、 视图
JSP页面输入平行四边形的底和高,并显示出平行四边形的底、高和面积;
HandleArea.jsp:

<%@ page language="java" contentType="text/html; charset=gb2312"%>
<jsp:useBean id="data" class="mybean.data.Area" scope="session"></jsp:useBean>
<!DOCTYPE html>
<html>
<body bgcolor=lightblue><Font size=5>
	<form action="handlearea" Method="get">
		平行四边形:
		<br>输入底:<input type=text name="d" size=4>
		输入高:<input type=text name="h" size=4>
		<input type=submit value="提交">
	</form>
	<jsp:getProperty name="data" property="mess"/>
	底:<jsp:getProperty name="data" property="d"/>
	高:<jsp:getProperty name="data" property="h"/>
	<br>它的面积是:<jsp:getProperty name="data" property="area"/>
</Font>
</body>
</html>

如果Web应用没有用到数据库独有的一些特性,而仅仅是查询数据而已,并且这些数据
可能占用较大的存储空间。在这种情况下,如果选择用数据库来处理数据显然得不偿失,因为使用数据库要付出降低程序运行效率的代价。
当需要查询文件中的某些内容时,显然希望这种文件应当具有某种特殊的形式结构,即文件应当按照一定的标准来组织数据,这就是XML文件。

所以需要编写web.xml

<?xml version="1.0" encoding="gb2312"?>
<web-app>
	<servlet>
		<servlet-name>handle</servlet-name>
		<servlet-class>myservlet.control.HandleArea</servlet-class>
	</servlet>
	<servlet-mapping>
		<servlet-name>handle</servlet-name>
		<url-pattern>/handle</url-pattern>
	</servlet-mapping>
</web-app>

2、 数据模型
提供Javabean负责刻画平行四边形,即可以存储其相关数据,提供获取及修改数据的方法;
Area.java:

package mybean.data;

public class Area {
	double d,h,area;
	String mess;
	public void setMess(String mess) {
		this.mess=mess;
	}
	public String getMess() {
		return mess;
	}
	public void setD(double d) {
		this.d=d;
	}
	public double getD() {
		return d;
	}
	public void setH(double h) {
		this.h=h;
	}
	public double getH() {
		return h;
	}
	public void setArea(double area) {
		this.area=area;
	}
	public double getArea() {
		return area;
	}
}

3、 控制器
负责计算面积并存储到Javabean数据模型中,然后转交或重定向请求视图显示数据模型中的数据。
HandleArea.java:

package myservlet.control;

import java.io.IOException;
import javax.servlet.ServletConfig;
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 javax.servlet.http.HttpSession;

import mybean.data.Area;

@WebServlet("/HandleArea")
public class HandleArea extends HttpServlet {
	private static final long serialVersionUID = 1L;
       
    public HandleArea() {
        super();
    }
	public void init(ServletConfig config) throws ServletException {
		super.init(config);
	}
	protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		doPost(request, response);
	}
	protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		Area dataBean=new Area();
		HttpSession session=request.getSession(true);
		session.setAttribute("data", dataBean);
		try {
			double d=Double.parseDouble(request.getParameter("d"));
			double h=Double.parseDouble(request.getParameter("h"));
			dataBean.setD(d);
			dataBean.setH(h);
			double s=-1;
			s=d*h;
			dataBean.setArea(s);
			dataBean.setMess("平行四边形");
		}
		catch(Exception e) {
			dataBean.setArea(-1);
			dataBean.setMess(" "+e);
		}
		response.sendRedirect("HandleArea.jsp");
	}

}

运行结果
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值