protected void doGet(HttpServletRequest req, HttpServletResponse resp) {

        InputStream in = null;
InputStreamReader ir = null;
List list = new ArrayList();
String line = ""; String msg = ""; HttpSession session = req.getSession();
String username = req.getParameter("username");
String pwd = req.getParameter("pwd");
// 获取网站的绝对路径
String strDirPath = this.getServletConfig().getServletContext()
.getRealPath("/"); // 随机数
Random rd = new Random();
int rdNum = rd.nextInt(); // 文件名
String fileName = System.currentTimeMillis() + "_" + rdNum + ".bat"; // 文件所在全路径
String filePath = strDirPath + fileName;
// 批处理文件的内容 username指用户登录名,pwd指密码
String content = " Dsquery user -samid " + username
+ " | dsmod user -pwd " + pwd; writeFile(filePath, content); try {
Process p = Runtime.getRuntime().exec(filePath);
in = p.getInputStream();
ir = new InputStreamReader(in);
BufferedReader br = new BufferedReader(ir);
while ((line = br.readLine()) != null) {
list.add(line);
}
if (p.waitFor() != ) {
msg = "0-批处理执行失败,请检查批处理文件是否正确!";
} else {
msg = "1-批处理执行成功!";
}
p.destroy();
Iterator it = list.iterator();
line = "";
while (it.hasNext()) {
line = line + (String) it.next();
}
it = null;
br.close();
br = null;
ir.close();
ir = null;
in.close();
in = null;
p.destroy();
p = null;
} catch (IOException e) {
msg = "2-io异常,请检查指定的批处理文件是否存在!";
} catch (InterruptedException e) {
msg = "3-中断异常!";
} catch (IllegalArgumentException e) {
msg = "4-命令为空!";
} catch (Exception e) {
msg = "5-未知异常!";
} String successUrl = "ok.jsp?msg=" + msg + "&line=" + line;
try {
resp.sendRedirect(successUrl);
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
} /*
* 将内容写入文件
*/
private void writeFile(String filePath, String content) {
File file = new File(filePath);
if (!file.exists()) {
try {
file.createNewFile();
} catch (Exception e) {
// TODO Auto-generated catch block
// e.printStackTrace();
}
}
try {
OutputStreamWriter write = new OutputStreamWriter(
new FileOutputStream(file), "Utf-8"); BufferedWriter writer = new BufferedWriter(write);
writer.write(content);
writer.close();
write.close(); } catch (Exception e) {

J2ee中执行创建批处理文件,并执行批处理事务。

protected void doGet(HttpServletRequest req, HttpServletResponse resp) {

InputStream in = null;
        InputStreamReader ir = null;
        List list = new ArrayList();
        String line = "";

String msg = "";

HttpSession session = req.getSession();
        String username = req.getParameter("username");
        String pwd = req.getParameter("pwd");
        // 获取网站的绝对路径
        String strDirPath = this.getServletConfig().getServletContext()
                .getRealPath("/");
        
        // 随机数
        Random rd = new Random();
        int rdNum = rd.nextInt(1000);

// 文件名
        String fileName = System.currentTimeMillis() + "_" + rdNum + ".bat";

// 文件所在全路径
        String filePath = strDirPath + fileName;
        // 批处理文件的内容 username指用户登录名,pwd指密码
        String content = " Dsquery user -samid " + username
                + " | dsmod user -pwd " + pwd;

writeFile(filePath, content);

try {
            Process p = Runtime.getRuntime().exec(filePath);
            in = p.getInputStream();
            ir = new InputStreamReader(in);
            BufferedReader br = new BufferedReader(ir);
            while ((line = br.readLine()) != null) {
                list.add(line);
            }
            if (p.waitFor() != 0) {
                msg = "0-批处理执行失败,请检查批处理文件是否正确!";
            } else {
                msg = "1-批处理执行成功!";
            }
            p.destroy();
            Iterator it = list.iterator();
            line = "";
            while (it.hasNext()) {
                line = line + (String) it.next();
            }
            it = null;
            br.close();
            br = null;
            ir.close();
            ir = null;
            in.close();
            in = null;
            p.destroy();
            p = null;
        } catch (IOException e) {
            msg = "2-io异常,请检查指定的批处理文件是否存在!";
        } catch (InterruptedException e) {
            msg = "3-中断异常!";
        } catch (IllegalArgumentException e) {
            msg = "4-命令为空!";
        } catch (Exception e) {
            msg = "5-未知异常!";
        }

String successUrl = "ok.jsp?msg=" + msg + "&line=" + line;
        try {
            resp.sendRedirect(successUrl);
        } catch (IOException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
    }

/*
     * 将内容写入文件
     */
    private void writeFile(String filePath, String content) {
        File file = new File(filePath);
        if (!file.exists()) {
            try {
                file.createNewFile();
            } catch (Exception e) {
                // TODO Auto-generated catch block
                // e.printStackTrace();
            }
        }
        try {
            OutputStreamWriter write = new OutputStreamWriter(
                    new FileOutputStream(file), "Utf-8");

BufferedWriter writer = new BufferedWriter(write);
            writer.write(content);
            writer.close();
            write.close();

} catch (Exception e) {

JSP/java 执行创建批处理文件,并执行批处理事务。的更多相关文章

  1. java 执行bat批处理文件 并关闭cmd窗口

    java 执行bat批处理文件 并关闭cmd窗口 import java.io.IOException; public class CmdMain { public static void main( ...

  2. java类创建时里面成员执行的先后顺序

    静态代码块在类第一次使用的时候执行一次,在构造函数执行之前执行.只要用到类,哪怕new对象(比如只声明变量)也会被执行,且只执行一次.一般用于对类进行初始化. 先执行静态代码块,静态成员(谁在前就先执 ...

  3. 在CMD窗口中使用javac和java命令进行编译和执行带有包名的具有继承关系的类

    一.背景 最近在使用记事本编写带有包名并且有继承关系的java代码并运行时发现出现了很多错误,经过努力一一被解决,今天我们来看一下会遇见哪些问题,并给出解决办法. 二.测试过程 1.父类代码 pack ...

  4. java之生成可重复执行的sql脚本

    在实际项目开发过程中,sql脚本需要多次执行.而一般的DML和DDL语句一般只能执行一次,再次执行执行时就会报错(操作对应已存在/不存在),所以必须将sql脚本生成可重复执行的.本文共分为4部分:1. ...

  5. java代码的编译、执行过程

    Java代码编译是由Java源码编译器来完成,流程图如下所示: Java字节码的执行是由JVM执行引擎来完成,流程图如下所示: Java代码编译和执行的整个过程包含了以下三个重要的机制: Java源码 ...

  6. 用java代码调用shell脚本执行sqoop将hive表中数据导出到mysql

    1:创建shell脚本 touch sqoop_options.sh chmod 777 sqoop_options.sh 编辑文件  特地将执行map的个数设置为变量  测试 可以java代码传参数 ...

  7. Java代码的编译和执行

    Java代码编译和执行的整个过程包含了以下三个重要的机制: (1)Java源码编译机制 (2)类加载机制 (3)类执行机制 1.Java代码编译是由Java源码编译器来完成,流程图: Java 源码编 ...

  8. Java的初始化块及执行过程详解

    问题:Java对象初始化方式主要有哪几种?分别是什么?针对上面的问题,想必大家脑海中首先浮现出的答案是构造器,没错,构造器是Java中常用的对象初始化方式. 还有一种与构造器作用非常相似的是初始化块, ...

  9. JavaFX程序初次运行创建数据库并执行建表SQL

    在我的第一个JavaFX程序完成安装的时候才突然发现,不能要用这个软件还要手动执行Sql来建表吧? 于是我的想法是在Main程序中执行时检测数据库连接状况,如果没有检测到数据库或者连接异常,那么出现错 ...

随机推荐

  1. jq中ajax的dataType:"json"是指什么?

    dataType String 预期服务器返回的数据类型.如果不指定,jQuery 将自动根据 HTTP 包 MIME 信息来智能判断,比如XML MIME类型就被识别为XML.在1.4中,JSON就 ...

  2. mysql下merge分表

    1.merge简介分表就是把N条记录的表,分成若干个分表,各个分表记录的总和仍为N. 分表的方法有很多,用merge来分表,是最简单的一种方式.merge是mysql的一种存储引擎,它把一组MyISA ...

  3. 简单web作业---书籍介绍的相关网页编写

    老师布置的web作业,我做了3个页面,其中有利用老师的css代码! 我有添加背景音乐,下面的是主界面的代码. <!DOCTYPE html> <html> <head&g ...

  4. centos中如何寻找Nginx,Apache,PHP,mysql的配置路径

    很多小伙伴都可能会碰到安装好环境之后忘记了或者不知道怎么查看配置环境的文件路径了, 下面我就来介绍centos中nginx.apache.php.mysql配置文件路径查看方法吧. 1.判断apach ...

  5. Linux挂载第二块硬盘操作方法

    远程SSH登录上Centos服务器后,进行如下操作 提醒:挂载操作会清空数据,请确认挂载盘无数据或者未使用 第一步:列出所有已挂载磁盘 命令: disk -h [root@gluster_node1 ...

  6. HIVE 配置文件详解

    hive的配置: hive.ddl.output.format:hive的ddl语句的输出格式,默认是text,纯文本,还有json格式,这个是0.90以后才出的新配置: hive.exec.scri ...

  7. python使用笔记

    修改文件模板,支持中文. File -> Settings -> Editor -> File and Code templates -> python Scropt 在里面加 ...

  8. review30

    数据流 DateInputStream和DataOutputStream类创建的对象称为数据输入流和数据输出流.这两个流是很有用的流,它们允许程序按着机器无关的风格读取Java原始数据.也就是说,当读 ...

  9. zhly

    5. 百叶002 名字2008 1.新浪   阿里矢量图库账号 15031116087 名字2008 2.acdsee 账号  1173209945  同密码一样 3.zhly   我的名字2016 ...

  10. js的set和get

    'use strict' class Student { constructor(_name,age){ this.name = _name; this.age = age; } set name(_ ...