java从网页抓取数据(创建一个类的html文件创建表单)
优采云 发布时间: 2021-11-04 09:05java从网页抓取数据(创建一个类的html文件创建表单)
使用 Servlet,您可以从 Web 表单采集用户输入、呈现来自数据库或其他来源的记录以及动态创建网页。
首先使用eclipse创建一个网站,使用其他开发工具也是一样,创建网站需要配置Tomcat服务器,以便网站导入servlet包并可以发布,如图所示
新建网络项目
配置Tomcat
创建后,在web项目的Webcontent中编辑需要添加的网页内容
这里我创建了一个 index html 文件
Insert title here
创建一个表单,表单中的action表示使用哪个servlet来处理提交的信息,
method表示数据的传输方式,分为两种,一种是get,一种是post
接下来开始创建Servlet,在java代码中构建包,并创建一个类,这个类需要继承HttpServlet
从网页读取数据
在HttpServlet中有两个方法,doget 和dopost,这两个方法就是用来接收网页端数据和向网页端输出数据的
在这里我们使用dopost的方法,在dopost中有个参数HttpServletRequest request我们可以通过这个参数获取网页的传输内容
HttpServletRequest 参数中有getParameter这个方法能够获取网页的表单对象
String name = request.getParameter("name");
这是用一个字符串以name属性为name的形式接收字符串数据
表单中的输入可以定义服务订单要获取的名称,同样可以获取pwd中的数据。
输出数据到网页
输出数据是一个依赖 PrintWriter 的对象。这个对象有写和打印的方法,可以将数据输出到网页。具体用途:
PrintWriter out = response.getWriter();
out.println("string");
也可以把字符串的位置改成html代码,直接打印出一个网页
服务器的具体代码如下:
response.setContentType("text/html;charset=utf-8");
如果要输出网页,请加上这句话text/html,否则输出的是代码而不是网页
如果要从网页中获取汉字,需要设置utf-8格式,否则会出现乱码
package com.yd;
import java.io.IOException;
import java.io.PrintWriter;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
public class Yd extends HttpServlet {
private static final long serialVersionUID = 1L;
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
}
@Override
protected void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
response.setContentType("text/html;charset=utf-8");
response.setCharacterEncoding("UTF-8");
request.setCharacterEncoding("UTF-8");
/** 设置响应头允许ajax跨域访问 **/
response.setHeader("Access-Control-Allow-Origin", "*");
/* 星号表示所有的异域请求都可以接受, */
response.setHeader("Access-Control-Allow-Methods", "GET,POST");
/**
* 接收json
*/
String name = request.getParameter("name");
String pwd = request.getParameter("pwd");
System.out.println(name);
System.out.println(pwd);
/**
* 返回json
*/
PrintWriter out = response.getWriter();
String title = "成果";
String docType = " \n";
out.println(
docType + "\n" + "" + title + "\n" + "\n"
+ "" + title + "\n" + "登陆成功\r\n" + "\r\n" + "");
out.close();
}
}
3、配置Web.Xml文件,
servlet 构建完成后,需要在 web.xml 中进行配置,这样 servlet 才能在网页和服务票证中找到
web.xml 文件也在 WebContent/Web-INF 中。如果没有,您需要手动创建一个。
web.xml 代码如下
My
index.html
index.htm
index.jsp
MyServlet
com.yd.MyServlet
MyServlet
/MyServlet
中的是与
中的对应的随便取什么名字都行,但是两个name需要一样
com.yd.MyServlet
这表示的是你要使用的Servlet所在的路径,需要写包名,
/MyServlet
其中的/MyServlet表示的是在网页中访问servlet时用到的URL地址,一定要加/ 名字随意
index.html
表示的是当只有前面部分的URL时访问的页面
例如你需要访问http://localhost/My/index.html时如果你在地址栏直接输入http://localhost/My则会直接访问你再这一项中设计的欢迎页面
至此,配置完成,只需要运行发布到Tomcat即可访问
从地址栏可以看到URL已经进入了Servlet,下面也可以读取输入框中的数据
需要提醒的是,html文件一定要放在WebContent下,而不是WebContent中的Web-INF下,否则会一直出错,一门血课。 . 使用jsp的原理类似,jsp本质上就是一个servlet
所以如果用jsp来设计,就不需要在xml文件中配置。你只需要在html中把表单中的action写成你自己的jsp文件,然后jsp和servlet就一样了。
代码如下:
Insert title here
jsp中的代码,
Insert title here
登陆成功
最后你会看到同样的效果,只不过地址栏中的servlet是用jsp文件编写的
html文件和jsp文件都需要写在WebContent下,而不是WebContent中的Web-INF下