javaee web项目,在jsp中getParameter报错= =。

凉橙子 2018-01-06 09:48:46
javaee web项目,在类中可以正常获取网页,在jsp中获取网页报错= =。 用的环境是tomcat v8.5,JDK1.8,javase1.7,javaee7.0,jstl1.2.2 代码跟servers报错如下= = 求指导,一起学习= =


获取方法:
package com.get.util;



import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.net.MalformedURLException;
import java.net.URL;
import java.net.URLConnection;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;

import org.jsoup.Jsoup;
import org.jsoup.nodes.Document;
import org.jsoup.nodes.Element;
import org.jsoup.select.Elements;



/**
* @TitleGetNetData: GetHtmlByUrl
* @Description: 获取网站数据
* @author: THE ONE
* @date: 2017年12月30日下午9:06:55:
*/
public class DataDownUtil {

//Java主函数程序入口
// public static void main(String[] args) {
// List<HashMap<String,String>> job=getJobInfo("https://sou.zhaopin.com/jobs/searchresult.ashx?jl=%E7%A6%8F%E5%B7%9E&kw=java&sm=0&p=1"
// ,"utf-8");
// for(HashMap<String,String> map:job)
// {
// map.get("jobName");
// }
// }

public static List<HashMap<String,String>> getJobInfo(String url,String encoding)
{
//建立网络链接,获取智联网站的源代码
String html=getByUrl(url,encoding);
System.out.println(html); // 网站的完整源代码
//从网站的源代码解析数据 解析String javaScript
Document document= Jsoup.parse(html);

//newlist_list_content_table 拿到包裹数据的盒子
Element element=document.getElementById("newlist_list_content_table");

//拿到盒子下面的每一个table newlist
Elements elements=document.getElementsByClass("newlist");

//拿到每一个table里面的 职位名称 薪水 地点 日期
List<HashMap<String,String>> maps=new ArrayList<HashMap<String,String>>();
for(Element e1:elements)
{
HashMap<String,String> map=new HashMap<String,String>();
//职位名称
String jobName=e1.getElementsByClass("zwmc").text();
//公司名称
String txtTitle=e1.getElementsByClass("gsmc").text();
//获取工资
String moneyPermonth=e1.getElementsByClass("zwyx").text();
//照片时间
String date=e1.getElementsByClass("gxsj").text();

// System.out.println("职位名称"+jobName);
// System.out.println("公司名称"+txtTitle);
// System.out.println("获取工资"+moneyPermonth);
// System.out.println("招聘时间"+date);
// System.out.println("=================");
map.put("jobName", jobName);
map.put("txtTitle", txtTitle);
map.put("moneyPermonth", moneyPermonth);
map.put("date", date);
maps.add(map);
}

//数据保存 以及可视化处理
return maps;
}


public static String getByUrl(String urlObj,String encoding) {

StringBuffer html=new StringBuffer();
InputStreamReader isr=null;
BufferedReader bf=null;
try {
//java net 建立网络连接 异常机制
URL url=new URL(urlObj);
//打开网络
URLConnection uc=url.openConnection();
//创建文件输入流 装饰者模式
isr=new InputStreamReader(
uc.getInputStream(),encoding);
//高效率读取 缓冲
bf=new BufferedReader(isr);
//网页源码全部读取完
//临时文件
String temp=null;
//一直读完为止 一边读一边保存在临时文件中
while((temp=bf.readLine())!=null){

html.append(temp+"\n");
}


} catch (MalformedURLException e) {
System.out.println("没有网,请检查网络设置");
e.printStackTrace();
} catch (IOException e) {
System.out.println("网页请求失败,请稍候重试 ");
e.printStackTrace();
} finally {

try {
if (bf != null)
bf.close();
if (isr != null)
isr.close();
} catch (IOException e) {
e.printStackTrace();
}

}
return html.toString();

}

}

jsp内容:

<%@page import="com.get.util.DataDownUtil"%>
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<!DOCTYPE HTML>
<html>
<head>
<title>Java开发数据爬虫</title>
<meta name="keywords" content="keyword1,keyword2,keyword3">
<meta name="description" content="This is my page">
<link rel="stylesheet" href="css/bootstrap.css" />
<link rel="stylesheet" href="css/bootstrap-theme.css" />
<script type="text/javascript" src="js/jquery-1.9.1.js"></script>
<script type="text/javascript" src="js/bootstrap.min.js"></script>
<link rel="stylesheet" href="css/animate.min.css" type="text/css"></link>
<style type="text/css">
*{margin:0;}
body{background:url('image/back.gif');}
h1{font-family:'微软雅黑';text-align:center}
.url{width: 540px;height: 37px;margin: 6px auto;}
.url span{text-align:center;font-family:'微软雅黑';font-size:16px}
.url .text{height: 34px;width: 280px;border: 2px solid #06f;}
.url .btn{width:60px;height:34px;margin-left:6px;background:#06f;color:#fff;border:0}
</style>
</head>



<body>
<h1>智联招聘职位抓取</h1>
<form action="index.jsp">
<div class="url animated bounceInUp">
<span >请输入智联招聘的URL:</span><input type="text" name="url" class="text" ><input type="submit" value="提交" class="btn"/>
</div>
</form>
<%

String url=request.getParameter("url");
List<HashMap<String,String>> maps2=DataDownUtil.getJobInfo(url,"gbk");
%>
<table class="table table-striped table-bordered table-hover" style="width:90%;margin:auto;">
<thead>
<tr>
</tr>
</thead>
<%
for(HashMap<String,String> map : maps2){
%>
<tr class="animated bounceInRight">
<td><%=map.get("jobName") %></td>
<td><%=map.get("txtTitle") %></td>
<td><%=map.get("moneyPermonth")%></td>
<td><%=map.get("date")%></td>
</tr>
<%
}
%>
</table>
</body>
</html>

serves报错如下:
信息: Server startup in 6484 ms
java.net.MalformedURLException
at java.net.URL.<init>(URL.java:627)
at java.net.URL.<init>(URL.java:490)
at java.net.URL.<init>(URL.java:439)
at com.get.util.DataDownUtil.getByUrl(DataDownUtil.java:92)
at com.get.util.DataDownUtil.getJobInfo(DataDownUtil.java:43)
at org.apache.jsp.index_jsp._jspService(index_jsp.java:150)
at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:729)
at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:443)
at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:385)
at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:329)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:729)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:230)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:165)
at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:192)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:165)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:198)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:96)
at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:474)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:140)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:79)
at org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:624)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:87)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:349)
at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:783)
at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:66)
at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:789)
at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1437)
at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
at java.lang.Thread.run(Thread.java:745)
Caused by: java.lang.NullPointerException
at java.net.URL.<init>(URL.java:532)
... 33 more
没有网,请检查网络设置

一月 06, 2018 9:36:39 下午 org.apache.catalina.core.StandardWrapperValve invoke
严重: Servlet.service() for servlet [jsp] in context with path [/GetNetData] threw exception [An exception occurred processing JSP page /index.jsp at line 37

34: <%
35:
36: String url=request.getParameter("url");
37: List<HashMap<String,String>> maps2=DataDownUtil.getJobInfo(url,"gbk");
38: %>
39: <table class="table table-striped table-bordered table-hover" style="width:90%;margin:auto;">
40: <thead>


Stacktrace:] with root cause
java.lang.ClassNotFoundException: org.jsoup.Jsoup
at org.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClassLoaderBase.java:1285)
at org.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClassLoaderBase.java:1119)
at com.get.util.DataDownUtil.getJobInfo(DataDownUtil.java:46)
at org.apache.jsp.index_jsp._jspService(index_jsp.java:150)
at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:729)
at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:443)
...

...全文
525 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
radeonxhl 2018-01-07
  • 打赏
  • 举报
回复
这不是都告诉你了吗,没有这个类:org.jsoup.Jsoup
凉橙子 2018-01-07
  • 打赏
  • 举报
回复
在引用的库文件里面查看jar包 有这个类的= =

67,513

社区成员

发帖
与我相关
我的任务
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
  • Java EE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧