Jsp编程
JAVA综合面试题:页面的抓取、解析、保存数据库和生成HTML的页面展示 收藏
次例子可以用来学习网络编程,正则表达式的使用,泛型,数据库的基本操作等JAVA知识
问题如下:来源于论坛
http://topic.csdn.net/u/20090616/13/59aa4e2d-3752-45df-9c1b-c65c46c3e4d7.html
写一个jsp页面,访问时显示从下面的页面提取出的销售商详细信息:价格、运费、经销
商基本信息等,并写到一个数据库表里。
http://www.amazon.com/gp/offer-listing/B0012J52OC/
数据抓取的问题,涉及到
1 用URLConnection 读取页面信息,用httpclient也行
2 用Pattern 解析页面并拿到你要的信息
3 显示数据
4 存入数据库
这个是一个综合的考试,涉及的知识面比较广。
1 我这里只给出关键的部分,使用java程序实现,而不是JSP的代码。移植工作请自行完成。
2 我使用自己的数据库连接,请替换为应用服务器提供的数据源为好
3 代码分三部分,数据库结构,POJO类和应用程序,当然还有一个辅助类,也是我自己写的
4 欢迎光临老紫竹的JAVA世纪网 http://www.java2000.net, 呵呵,广告放里面了
一、数据库结构 AmazonGoods.sql 使用的是MySQL的数据库
view plaincopy to clipboardprint?
-- ----------------------------
-- Table structure for amazongoods
-- ----------------------------
CREATE TABLE `amazongoods` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`price` decimal(10,0) NOT NULL,
`shipping` decimal(10,0) NOT NULL,
`Seller` text NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=11 DEFAULT CHARSET=utf8;
-- ----------------------------
-- Table structure for amazongoods
-- ----------------------------
CREATE TABLE `amazongoods` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`price` decimal(10,0) NOT NULL,
`shipping` decimal(10,0) NOT NULL,
`Seller` text NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=11 DEFAULT CHARSET=utf8;
二、POJO类 AmazonGoods.java
view plaincopy to clipboardprint?
package com.laozizhu.test.amazon;
相关文档:
使用JSP大约有下列三种跳转方式:
1. response.sendRedirect();
2. response.setHeader("Location","");
3. <jsp:forward page="" />
经过试验得到下面的一些规则:
一. response.sendRedirect()
此语句前不允许有out.flush(),如果有out.flush(),会有异常:
java.lang.IllegalStateException: Can't send ......
el表达式分类
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
分 类 功能分类 标签名称
Core 表达式操作 out
set
remove
catch
流程控制 if
......
jsp表单提交的数据有中文时出现乱码,并非读取数据库数据后显示乱码,以下是解决的方法。
netbeans创建jsp的模版中是:<%@page contentType="text/html" pageEncoding="UTF-8"%>,将这行改成以下这样就可以正常显示中文:
<%@page language="java" pageEncoding=utf-8" %>
<%@page contentType=” ......
最基本的乱码问题
这个乱码问题是最简单的乱码问题。一般新会出现。就是页面编码不一致导致的乱码。
Html代码:
<%@ page language="java" pageEncoding="UTF-8"%>
<%@ page contentType="text/html;charset=iso8859-1"%>
<html>
<head>
<title ......
由于要做上传 就找了个例子 留着参考
上传:需要smartupload组件
import com.jspsmart.upload.*;
import javax.servlet.*;
import javax.servlet.http.*;
import java.io.*;
import java.util.*;
/**
* 上传公共类,对SmartUpload进行了封装
* ......