java struts2 连mysql_java web(struts2)+python+mysql 的简单实践

本文章主要演示如何通过struts2中的动作类将表单的数据传递给python脚本文件,再通过脚本插入mysql数据库中。

主要文件包括:py_form.jsp(输入表单数据)、py_success.jsp(操作成功提示)、struts.xml(struts2核心控制器配置)、web.xml(过滤器配置)、pyAction.class(动作类,用于响应表单提交)、form.py(表单数据处理)、struts2及操作python脚本所需的jar包,接下来贴出详细代码及相关文件:

struts.xml(struts2核心控制器配置)

/py_success.jsp

/py_error.jsp

web.xml(过滤器配置)

chapter

struts2

org.apache.struts2.dispatcher.filter.StrutsPrepareAndExecuteFilter

struts2

/*

pyAction.class(动作类,用于响应表单提交)

packagecn.itcast.action;importjava.io.BufferedReader;importjava.io.InputStreamReader;importcom.opensymphony.xwork2.ActionSupport;public class pyAction extendsActionSupport {privateString name;public String getName() { returnname; }public void setName(String name) { this.name =name; }public String execute() throwsException {

String username=name;

System.out.println("start...");

System.out.println("调用py脚本连接mySQL数据库...");

String[] args1= new String[]{"python", "D:\\form.py", username};

Process pr=Runtime.getRuntime().exec(args1);

BufferedReader in= new BufferedReader(newInputStreamReader(pr.getInputStream()));//打印脚本中的print()的内容

String line;while((line = in.readLine()) != null){

System.out.println(line);

}

in.close();/*waitFor():导致当前线程等待,如有必要,一直要等到由该 Process 对象表示的进程已经终止。

如果已终止该子进程,此方法立即返回。如果没有终止该子进程,调用的线程将被阻塞,直到退出子进程,

根据惯例,0 表示正常终止*/pr.waitFor();

System.out.println("操作结束!");returnSUCCESS;

}

}

form.py(表单数据处理)

from sqlalchemy importcreate_engineimportpandas as pdimportsys#sys.argv[]:一个从程序外部获取参数的桥梁,从外部取得的参数可以是多个,所以获得的是一个列表(list),。其第一个元素是程序本身,随后才依次是外部给予的参数。

test = sys.argv[1]

engine= create_engine(r'mysql+pymysql://root:root@localhost:3306/test?charset=utf8')print("连接成功,正在插入数据到数据表test2...")

data= pd.DataFrame({'name': [test]})

data.to_sql('test2', con=engine, if_exists = 'append')print("插入数据成功...")

struts2及操作python脚本所需的jar包(由于当前信号较差,几次上传附件失败,故仅截图)

937b5087bea37eeccbe0af9c5ccd28ba.png

py_form.jsp(输入表单数据)

My JSP 'py_form.jsp' starting page

4adfa2343c591f8d5346c1cc3a0a409d.png

py_success.jsp(操作成功提示)

My JSP 'py_success.jsp' starting page ${name } 登录成功

835dd05abe9f00eba085727fbd97c1ed.png

运行成功后在myeclipse控制台输出如下

8b8f784b13edd54748e371b743b6a7e2.png

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值