似水流年st吧 关注:31贴子:4,384
  • 1回复贴,共1
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.PrintWriter;
import java.util.ArrayList;
import java.util.HashSet;
import java.util.List;
import java.util.regex.MatchResult;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.apache.commons.httpclient.Cookie;
import org.apache.commons.httpclient.Header;
import org.apache.commons.httpclient.HttpClient;
import org.apache.commons.httpclient.NameValuePair;
import org.apache.commons.httpclient.cookie.CookiePolicy;
import org.apache.commons.httpclient.cookie.CookieSpec;
import org.apache.commons.httpclient.methods.GetMethod;
import org.apache.commons.httpclient.methods.PostMethod;
import org.apache.commons.httpclient.params.HttpMethodParams;
import org.apache.commons.lang3.StringEscapeUtils;
import org.jsoup.Jsoup;
import org.jsoup.select.Elements;
import org.jdom.Attribute;
import org.jdom.Comment;
import org.jdom.Document;
import org.jdom.Element;
import org.jdom.JDOMException;
import org.jdom.input.SAXBuilder;
import org.jdom.output.Format;
import org.jdom.output.XMLOutputter;
import com.sun.corba.se.spi.servicecontext.ServiceContext;
import com.sun.org.apache.bcel.internal.generic.NEW;
import com.sun.org.apache.commons.collections.StaticBucketMap;
public class LoginAgency extends HttpServlet
{
private static final String LOGON_SITE = "http://class.sise.com.cn"; //登录服务器域名
private static final int LOGON_PORT =7001; //登录服务器端口
static String userName="",userID="",dayID[]={"星期一","星期二","星期三","星期四","星期五","星期六","星期日"},bucketID="";
XmlParse xml=new XmlParse();
Verify ver=new Verify();
String responseString = "";//响应内容
boolean flag;
byte[] bytes;
public LoginAgency(){super();}
public void destroy(){super.destroy(); }
public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException
{
//获取用户名和密码
request.setCharacterEncoding("gb2312");
String user_name=request.getParameter("username");
String pass_word=request.getParameter("password");
HttpClient client = new HttpClient();
client.getHostConfiguration().setHost(LOGON_SITE, LOGON_PORT);
//登录页面
//设置http头
List<Header> headers = new ArrayList<Header>();
headers.add(new Header("User-Agent", "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1)"));
headers.add(new Header("Refere", "http://class.sise.com.cn:7001/sise/login_check_login.jsp"));
client.getHostConfiguration().getParams().setParameter("http.default-headers", headers);
PostMethod post = new PostMethod("http://class.sise.com.cn:7001/sise/login_check_login.jsp");
NameValuePair username= new NameValuePair("username",user_name); //根据学生在MyScse登录界面系统输入的登录信息构造明值对
NameValuePair password = new NameValuePair("password", pass_word);
NameValuePair nm= new NameValuePair("a28a3bc430a2ce728dbac425643905db", "2ab5d074c5ebb947c34f80dbd3f4e48e");
post.setRequestBody(new NameValuePair[] {username,password,nm}); //根据明值对构造对MyScse系统的请求内容
int status=client.executeMethod(post);
Cookie[] cookies = client.getState().getCookies();
client.getState().addCookies(cookies);
post.releaseConnection();
String newUrl="http://class.sise.com.cn:7001/sise/index.jsp";
client.getState().addCookies(cookies);
post.releaseConnection();
GetMethod get = new GetMethod(newUrl);
get.setRequestHeader("Cookie", cookies.toString());
client.executeMethod(get);
get.releaseConnection();
/*课程表主页
*
*/
String schedular="http://class.sise.com.cn:7001/sise/module/student_schedular/student_schedular.jsp";
get= new GetMethod(schedular);
get.setRequestHeader("Cookie", cookies.toString());
client.executeMethod(get);
bytes = get.getResponseBody();
responseString = new String(bytes, "gb2312");//此处根据网页的编码方式设置编码方式,如果全部用GBK的话,可能也会出现乱码
System.out.println(responseString);
get.releaseConnection();
// 解析Html页面
org.jsoup.nodes.Document doc = Jsoup.parse(responseString);
response.setContentType("text/html");
response.setCharacterEncoding("gb2312");
PrintWriter out = response.getWriter();
out.println("<html><head><title></title><link rel='stylesheet' href='style.css' type='text/css'></head><body>");
Elements title = doc.select("td");
int mtag=0;
for (org.jsoup.nodes.Element link : title) {
if(mtag==9){out.println("<table><th id='th1'>"+StringEscapeUtils.escapeHtml3(link.text())+"</th><table>");}
if(mtag==10){out.println("<table><td id='td1'>"+StringEscapeUtils.escapeHtml3(link.text())+"</td><table>");}
if(mtag==11){
String str=StringEscapeUtils.escapeHtml3(link.text());
userID=str.substring(str.indexOf("学号:")+4,str.indexOf("姓名")-6);
userName=str.substring(str.indexOf("姓名:")+3,str.indexOf("年级")-6);
try
{
flag=ver.isExisting(userName,userID);
System.out.println(flag);
} catch (JDOMException e)
{
// TODO Auto-generated catch block
e.printStackTrace();
}
}
mtag++;
}
out.println("<table><tr><th></th><th>星期一</th><th>星期二</th><th>星期三</th><th>星期四</th><th>星期五</th><th>星期六</th><th>星期日</th></tr>");
int i=0;
int j=22;
int tag=0;
for (org.jsoup.nodes.Element link : title) {
// System.out.println(i+StringEscapeUtils.escapeHtml3(link.text()));
if(i>22){
if(i>j){
tag=j;
j=j+8;
out.println("<tr><td>"+StringEscapeUtils.escapeHtml3(link.text())+"</td>");
bucketID=StringEscapeUtils.escapeHtml3(link.text());
}
if(i<j&&i>tag+1){
if(!StringEscapeUtils.escapeHtml3(link.text()).equals("&nbsp;"))out.println("<td></td>");//"+StringEscapeUtils.escapeHtml3(link.text())+"
else {
out.println("<td class='empty'></td>");
try{if(flag==false){xml.addXml(dayID[i-tag-2], bucketID, userName,userID);}} catch (JDOMException e){}
}
}
if(i==j){
if(!StringEscapeUtils.escapeHtml3(link.text()).equals("&nbsp;"))out.println("<td></td></tr>");
else{
out.println("<td class='empty'></td></tr>");
try{if(flag==false){xml.addXml(dayID[i-tag-2], bucketID, userName,userID);}} catch (JDOMException e){}
}
}
}
i++;
}
out.println("</table></body></html>");
get.releaseConnection();
out.flush();
out.close();
}
public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException
{
doGet(request,response);
}
public void init() throws ServletException{}
/**
* 提取HTML文件的文本内容
*
* @author Jeelon
* @param html
* 提取的html文件名
* @return 返回提取内容String
*/
public String getDocument(String html) throws IOException {
String text = "";
// 解析Html页面
org.jsoup.nodes.Document doc = Jsoup.parse(html);
// 提取标题信息
Elements title = doc.select("title");
for (org.jsoup.nodes.Element link : title) {
text += link.text() + " ";
}
// 提取table中的文本信息
Elements links = doc.select("table");
for (org.jsoup.nodes.Element link : links) {
text +=link.text() + " ";
}
// 提取div中的文本信息
Elements divs = doc.select("div[class=post]");
for (org.jsoup.nodes.Element link : divs) {
text += link.text() + " ";
}
return text;
}
}


1楼2014-02-03 17:50回复
    URL填写的是我们上传到服务器的地址 如http://你的域名/index.php


    2楼2014-02-03 17:50
    回复