⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 coursequestionservlet.java

📁 采用Eclispe开发平台
💻 JAVA
字号:
package com.whatratimes.util;

import com.whatratimes.dbms.QuerySQLExecuter;
import com.whatratimes.tables.t_question_file;
import com.whatratimes.tables.t_user;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
import java.io.IOException;
import java.io.OutputStream;
import java.util.Hashtable;

public class CourseQuestionServlet extends HttpServlet {
    private static int index = 0;

    protected void service(HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse) throws ServletException, IOException {

        OutputStream os = httpServletResponse.getOutputStream();

        StringBuffer sb = new StringBuffer(httpServletRequest.getPathInfo());

        try {
            HttpSession session = httpServletRequest.getSession();
            t_user user = (t_user) session.getAttribute("User");

            if (user != null) {

                sb.deleteCharAt(0);
                int i = sb.indexOf("/");

                if (i != -1) {

                    Integer question_id = Integer.valueOf(sb.substring(0, i));
                    String file_name;
                    if (i == sb.length() - 1) {
                        file_name = "index.html";
                    } else {
                        file_name = sb.substring(i + 1, sb.length());
                    }

                    if (user.UserType == 1) {
                        Object q1 = null;
                        Object q2 = null;

                        Object gq = session.getAttribute("GradingQuestion");

                        if (gq != null) {
                            q1 = ((Hashtable) gq).get("QuestionId");
                        }

                        Object qs = session.getAttribute("Questions");
                        if (qs != null) {
                            Object qseq = session.getAttribute("QuestionSeq");
                            if (qseq != null) {
                                q2 = ((Hashtable) ((Object[]) qs)[((Integer) qseq).intValue() - 1]).get("QuestionId");
                            }
                        }

                        if ((!question_id.equals(q1)) && (!question_id.equals(q2))) {
                            httpServletResponse.setStatus(HttpServletResponse.SC_NOT_FOUND);
                            return;
                        }

                        if (file_name.toLowerCase().startsWith("answer")) {
                            httpServletResponse.setStatus(HttpServletResponse.SC_NOT_FOUND);
                            return;
                        }
                    }

                    QuerySQLExecuter sql = new QuerySQLExecuter();
                    sql.setReturnClassName("t_question_file");
                    sql.appendTableName("t_question_file");
                    sql.appendColumn("*");
                    sql.appendWhereCondition("QuestionId", "=", question_id);
                    sql.appendWhereCondition("FileName", "=", file_name);

                    Object[] objs = sql.executeQuery();

                    if (objs.length > 0) {
                        t_question_file qf = (t_question_file) objs[0];

                        httpServletResponse.setContentType(qf.FileType);
                        httpServletResponse.setContentLength(qf.FileSize);

                        os.write((byte[]) qf.FileContent);
                        return;
                    }
                }
            }
        } catch (Exception e) {
            e.printStackTrace();
        }

        httpServletResponse.setStatus(HttpServletResponse.SC_NOT_FOUND);
    }
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -