Struct 1.x 应用框架 开发javaweb 程序 工作原理

Struct 1工作原理简图
2018.12.18 gzl
在这里插入图片描述

1Dao数据源层—来源 dataSource
Dao层
package com.dao;

import com.core.ConnDB;
import java.util.;
import com.actionForm.BorrowForm;
import java.sql.
;
import com.actionForm.ReaderForm;
import com.actionForm.BookForm;
import java.util.Date;

public class BorrowDAO {
ConnDB conn = new ConnDB();

public int insert() {
	String sql = "INSERT INTO tb_borrow (bookid) vlaues(1) ";
	int ret = conn.executeUpdate(sql);
	return ret;
}

// *****************************图书借阅******************************
public int insertBorrow(ReaderForm readerForm, BookForm bookForm,
		String operator) {
	// 获取系统日期
	Date dateU = new Date();
	java.sql.Date date = new java.sql.Date(dateU.getTime());
	String sql1 = "select t.days from tb_bookinfo b left join tb_booktype t on b.typeid=t.id where b.id="
			+ bookForm.getId() + "";
	ResultSet rs = conn.executeQuery(sql1);
	int days = 0;
	try {
		if (rs.next()) {
			days = rs.getInt(1);
		}
	} catch (SQLException ex) {
	}
	// 计算归还时间
	String date_str = String.valueOf(date);

2Bean数据模型—M
JavaBean/继承ActionForm 接口

承上启下:上=>Dao
下=>Action
package com.actionForm;

import org.apache.struts.action.ActionForm;

public class BorrowForm extends ActionForm {
private String backTime;
private String bookBarcode;
private int bookId;
private String bookName;
private String bookcaseName;
private String borrowTime;
private Integer id;
private int ifBack;
private String operator;
private Float price;
private String pubName;
private String readerBarcode;
private int readerId;
private int degree;
private String author;

private String bookType;
private String readerName;
private String sex;
private String birthday;
private String paperType;
private String paperNo;
private String tel;
private String readerType;
public String getBackTime() {
    return backTime;
}

public void setBackTime(String backTime) {
    this.backTime = backTime;
}

public void setReaderId(int readerId) {
    this.readerId = readerId;
}

public void setReaderBarcode(String readerBarcode) {
    this.readerBarcode = readerBarcode;
}

3Service业务层—控制器C
Action/继承ActionSupport
实现数据处理业务,展示各种功能。
Execute方法,包含4个参数,
ActionMapping /ActionForm /HttpServletRequest/HttpServletResponse
1.参数ActionForm是该Action对应的数据模型(actionForm/javaBean)。
2.由ActionMapping导向的 视图。Jsp页面
3. 参数HttpServletRequest/HttpServletResponse获取或者设置传值变量。

package com.action;

import org.apache.struts.action.;
import javax.servlet.http.
;
import com.dao.;
import com.actionForm.
;

public class Borrow extends Action {
/在构造方法中实例化Borrow类中应用的持久层类的对象********/
private BorrowDAO borrowDAO = null;
private ReaderDAO readerDAO=null;
private BookDAO bookDAO=null;
private ReaderForm readerForm=new ReaderForm();
public Borrow() {
this.borrowDAO = new BorrowDAO();
this.readerDAO=new ReaderDAO();
this.bookDAO=new BookDAO();
}
/******************************************************************************************/
public ActionForward execute(ActionMapping mapping, ActionForm form,
HttpServletRequest request, HttpServletResponse response) {
BorrowForm borrowForm = (BorrowForm) form;
String action =request.getParameter(“action”);
if(action==null||"".equals(action)){
request.setAttribute(“error”,“您的操作有误!”);
return mapping.findForward(“error”);
}else if(“bookBorrowSort”.equals(action)){
return bookBorrowSort(mapping,form,request,response);
}else if(“bookborrow”.equals(action)){
return bookborrow(mapping,form,request,response); //图书借阅
}else if(“bookrenew”.equals(action)){
return bookrenew(mapping,form,request,response); //图书续借
}else if(“bookback”.equals(action)){
以上是实现网络 URL 数据库 视图 的基础根基。

下面解释STRUCT1 的框架工作原理

url => web.xml =>struct.xml =>
web.xml中配置struct1使用
struct1 框架中struct.xml配置方式如下:
<action
name=’actionForm名称=bean名称’ path=’/url中action名称.do?paramters=#’ type=’com.action.控制器名’ scope=’request/session/application/page之一’>

在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值