📄 checkpaperevent.java~39~
字号:
package stumanage.events;
import javax.servlet.http.HttpServletRequest;
import java.io.IOException;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.ServletContext;
import stumanage.beans.*;
import javax.servlet.http.HttpSession;
import java.sql.*;
import java.io.*;
import java.util.ResourceBundle;
/**
* <p>Title:抽取论文 </p>
*
* <p>Description: 可以依次抽取本老师所对应的论文或者是按课题抽取</p>
*
* <p>Copyright: Copyright (c) 2005</p>
*
* <p>Company: </p>
*
* @author not attributable
* @version 1.0
*/
public class CheckPaperEvent
extends EventHandleBase {
private PaperInfo paper = new PaperInfo();
private UserInfo teacher = null;
private RegInfo regInfo = new RegInfo();
private boolean checkResult = false;
//private String getPaperWay = null;
public CheckPaperEvent() {
}
/**
* override process:批改论文
* @param sc ServletContext
* @param request HttpServletRequest
* @param response HttpServletResponse
* @throws IOException
* @throws ServletException
*/
public void process (ServletContext sc,
HttpServletRequest request, HttpServletResponse response)
throws IOException, ServletException {
//Clob clob = null;
String text = new String();
Connection con = null;
PreparedStatement pstmt = null;
String sno = null;
String subject = null;
try {
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
String dsn = "jdbc:odbc:info";
con = DriverManager.getConnection(dsn);
} catch(Exception e) {
System.out.println("数据库操作异常"); //for test
regInfo.setInfo("对不起,数据库操作异常");
}
HttpSession session = request.getSession();
teacher = (UserInfo)session.getAttribute("user");
System.out.println(teacher.getUserID()); //test teacher's ID
/**
* 依次取得论文的处理过程
*/
if(request.getParameter("getPaper").equalsIgnoreCase("byOrder")) {
//request.getParameter("getPaperWay") = "byOrder"
//修改时需增加查询课题名
String temp =
"Select sNo,paperContent,flag,subject From PaperInfo where (flag = 'no') And (tNo = ?)";
try {
pstmt = con.prepareStatement(temp);
pstmt.setString(1, teacher.getUserID());
ResultSet rs = pstmt.executeQuery();
ResultSetMetaData md = rs.getMetaData();
System.out.println("pstmt.executeQuery();"); //for test
if (rs.next()) {
sno = rs.getString(1);
subject = rs.getString(4);
/**
* 此处不能用rs.getClob(1);
*/
Reader reader = rs.getCharacterStream(2);
//InputStream inStream = rs.getBinaryStream(2);
//String test = new String(rs.getBytes(2));
//System.out.println(test); // for test
int n = 50;
char [] buf = new char [50];
//int off = 0;
/**
* reader.read(buf,off,5) 发生异常??
*/
/**
* 每次读取n个字符,直到所有的读取完
*/
int i=reader.read(buf);
while(i>0) {
String texts = new String(buf);
System.out.println("buf=" + texts);
text = text + texts;
/*
* reader.read()读成功n个字符,则reader中少n个字符
*/
//off += i;
//reader.skip(off);
i = reader.read();
}
//clob = rs.getClob(1);
//text = clob.getSubString(1,(int)clob.length());
System.out.println(text); //for test
//rs.updateString(2, "yes");
paper.setPaperContent(text);
paper.setSNo(sno);
paper.setSubject(subject);
session.setAttribute("paper",paper);
temp = " update PaperInfo Set flag = 'yes' where SNo = ? ";
pstmt = con.prepareStatement(temp);
pstmt.setString(1,sno);
pstmt.executeUpdate();
checkResult = true;
}
else {
regInfo.setInfo("对不起,未抽取到您所需要的论文");
}
con.close();
}
catch (Exception e) {
regInfo.setInfo("对不起,数据库操作发生异常");
System.out.println("数据库操作发生异常");
}
}
/**
* 按条件抽取试卷
*/
else {
String temp = "Select sNo,paperContent,flag,subject From PaperInfo where (flag = 'no') And (tNo = ?) And (Subject = ?)";
try {
pstmt = con.prepareStatement(temp);
pstmt.setString(1,teacher.getUserID());
String tempSubject = new String(request.getParameter("subjects").getBytes("ISO8859_1"));
pstmt.setString(2,tempSubject);
System.out.println(request.getParameter("subjects")); //for test
ResultSet rs = pstmt.executeQuery();
ResultSetMetaData md = rs.getMetaData();
System.out.println("pstmt.executeQuery();"); //for test
if (rs.next()) {
sno = rs.getString(1);
subject = rs.getString(4);
/**
* 此处不能用rs.getClob(1);
*/
Reader reader = rs.getCharacterStream(2);
int n = 60000;
char [] buf = new char[60000];
//int off = 0;
/**
* reader.read(buf,off,5) 发生异常??
*/
/**
* 每次读取n个字符,直到所有的读取完
*/
int i=reader.read(buf);
while(i>0) {
String texts = new String(buf);
System.out.println("buf=" + texts);
text = text + texts;
/*
* reader.read()读成功n个字符,则reader中少n个字符
*/
//off += i;
//reader.skip(off);
/*int k ;
for(k = 0; k <50 ; k ++ ) {
buf[k] = ' ';
}*/
i = reader.read(buf);
}
//clob = rs.getClob(1);
//text = clob.getSubString(1,(int)clob.length());
System.out.println(text); //for test
//rs.updateString(2, "yes");
paper.setPaperContent(text);
paper.setSNo(sno);
paper.setSubject(subject);
session.setAttribute("paper",paper);
temp = " update PaperInfo Set flag = 'yes' where SNo = ? ";
pstmt = con.prepareStatement(temp);
pstmt.setString(1,sno);
pstmt.executeUpdate();
checkResult = true;
}
else {
regInfo.setInfo("对不起,未找到你所需要的论文");
}
con.close();
}catch (Exception e ) {
regInfo.setInfo("对不起,数据库操作发生异常");
System.out.println(e); //for test
}
}
session.setAttribute("regInfo",regInfo);
//Debug.log (this, "process", "Using default process");
}
/**
* getURL
*
* @return String
* @todo Implement this stumanage.events.EventHandleBase method
*/
protected String getURL() {
ResourceBundle rd = ResourceBundle.getBundle("URL");
String temp = new String();
if(checkResult) {
temp = rd.getString("GETPAPERSUC");
}
else {
temp = rd.getString("REGERROR");
}
return temp;
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -