提交 d483abe7 编写于 作者: A a1097304791

version-1.0

上级
-- MySQL dump 10.13 Distrib 8.0.12, for Win64 (x86_64)
--
-- Host: localhost Database: zutki
-- ------------------------------------------------------
-- Server version 8.0.12
/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;
/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;
/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */;
SET NAMES utf8 ;
/*!40103 SET @OLD_TIME_ZONE=@@TIME_ZONE */;
/*!40103 SET TIME_ZONE='+00:00' */;
/*!40014 SET @OLD_UNIQUE_CHECKS=@@UNIQUE_CHECKS, UNIQUE_CHECKS=0 */;
/*!40014 SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0 */;
/*!40101 SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='NO_AUTO_VALUE_ON_ZERO' */;
/*!40111 SET @OLD_SQL_NOTES=@@SQL_NOTES, SQL_NOTES=0 */;
--
-- Table structure for table `likes`
--
DROP TABLE IF EXISTS `likes`;
/*!40101 SET @saved_cs_client = @@character_set_client */;
SET character_set_client = utf8mb4 ;
CREATE TABLE `likes` (
`lid` int(11) NOT NULL AUTO_INCREMENT COMMENT '喜欢id',
`uid` int(11) NOT NULL COMMENT '用户id',
`pid` int(11) NOT NULL COMMENT '论文id',
PRIMARY KEY (`lid`)
) ENGINE=InnoDB AUTO_INCREMENT=50 DEFAULT CHARSET=utf8 COMMENT='喜欢项的表(推荐相关)';
/*!40101 SET character_set_client = @saved_cs_client */;
--
-- Dumping data for table `likes`
--
LOCK TABLES `likes` WRITE;
/*!40000 ALTER TABLE `likes` DISABLE KEYS */;
INSERT INTO `likes` VALUES (1,2,1),(2,2,2),(3,1,2),(4,1,1),(18,1,3),(19,1,4),(20,1,7),(21,2,4),(22,2,6),(23,2,7),(24,3,3),(25,3,6),(26,3,1),(27,5,7),(28,5,2),(29,6,1),(30,6,3),(31,6,2),(32,5,1),(33,5,1),(34,5,1),(35,5,1),(36,1,1),(37,5,1),(38,5,2),(39,5,5),(40,5,8),(41,5,2),(42,1,2),(43,1,4),(44,1,4),(45,5,1),(46,4,2),(47,4,3),(48,4,7),(49,1,4);
/*!40000 ALTER TABLE `likes` ENABLE KEYS */;
UNLOCK TABLES;
/*!40103 SET TIME_ZONE=@OLD_TIME_ZONE */;
/*!40101 SET SQL_MODE=@OLD_SQL_MODE */;
/*!40014 SET FOREIGN_KEY_CHECKS=@OLD_FOREIGN_KEY_CHECKS */;
/*!40014 SET UNIQUE_CHECKS=@OLD_UNIQUE_CHECKS */;
/*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */;
/*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */;
/*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */;
/*!40111 SET SQL_NOTES=@OLD_SQL_NOTES */;
-- Dump completed on 2019-06-21 13:44:00
-- MySQL dump 10.13 Distrib 8.0.12, for Win64 (x86_64)
--
-- Host: localhost Database: zutki
-- ------------------------------------------------------
-- Server version 8.0.12
/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;
/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;
/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */;
SET NAMES utf8 ;
/*!40103 SET @OLD_TIME_ZONE=@@TIME_ZONE */;
/*!40103 SET TIME_ZONE='+00:00' */;
/*!40014 SET @OLD_UNIQUE_CHECKS=@@UNIQUE_CHECKS, UNIQUE_CHECKS=0 */;
/*!40014 SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0 */;
/*!40101 SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='NO_AUTO_VALUE_ON_ZERO' */;
/*!40111 SET @OLD_SQL_NOTES=@@SQL_NOTES, SQL_NOTES=0 */;
--
-- Table structure for table `papers`
--
DROP TABLE IF EXISTS `papers`;
/*!40101 SET @saved_cs_client = @@character_set_client */;
SET character_set_client = utf8mb4 ;
CREATE TABLE `papers` (
`pid` int(11) NOT NULL AUTO_INCREMENT,
`author` varchar(500) DEFAULT 'unknown' COMMENT '作者',
`place` varchar(500) DEFAULT 'unknown' COMMENT '发表机构',
`title` varchar(500) DEFAULT 'unknown' COMMENT '论文题目',
`digest` varchar(1000) DEFAULT 'unknown' COMMENT '摘要',
`source` varchar(100) DEFAULT 'unknown' COMMENT '来源',
`likeCnt` int(11) DEFAULT '0' COMMENT '喜欢该论文人数',
`downCnt` int(11) DEFAULT '0' COMMENT '该论文下载人数',
`date` date DEFAULT NULL COMMENT '发表日期',
PRIMARY KEY (`pid`)
) ENGINE=InnoDB AUTO_INCREMENT=9 DEFAULT CHARSET=utf8 COMMENT='论文表';
/*!40101 SET character_set_client = @saved_cs_client */;
--
-- Dumping data for table `papers`
--
LOCK TABLES `papers` WRITE;
/*!40000 ALTER TABLE `papers` DISABLE KEYS */;
INSERT INTO `papers` VALUES (1,'Truong Khang Nguyen;','unknown','Investigation of a computer CPU','Abstract(#br)In the present study, the thermal performance of an air-cooled, flat-plate heat sink in forced convection was performed using a three-dimension','Elsevierjournal',61,153,'2019-05-04'),(2,'络首发 陈林林; 韩可; 李伟; 吴嘉树; 辛嘉英','unknown','铬天青S法结合高效液相色谱法测定甲烷氧化菌素含量 网络首发','unknown','食品工业科技',29,12,'2019-03-07'),(3,'薛硕;董曼;张璐璐;尹凯静;王琳','unknown','β-环糊精与香芹酮形成常数的测定及其包合物的制备及表征 网络首发','unknown','食品与发酵工业',0,0,'2019-02-11'),(4,' Investigation of a computer CPU heat sink under laminar forced convection using a structural ','unknown',' Investigation of a computer CPU heat sink under laminar forced convection using a structural ','unknown','International Journal of Heat and Mass ',3,0,'2019-05-04'),(5,'何玲, 黎加厚','unknown','促进学生深度学习','正深度学习的提出早在20 世纪50 年代中期, 在瑞典工作的两位美国学者FerenceMarton ','计算机教与学. 现代教学',25,41,'2019-05-04'),(6,' 马湧; 王晓鹏; 马莎莎','unknown',' 基于Keras深度学习框架下BP神经网络的热轧带钢力学性能预测','unknown',' 冶金自动化',12,31,'2019-05-04'),(7,' 齐孟雷','unknown','基于云班课的《数控加工技术》混合式学习研究','unknown',' 山东工业技术',0,0,'2019-03-08'),(8,'滕爱杰','unknown',' 基于微信的混合式学习模式在独立院校英语教学中的应','unknown',' 黑龙江教育学院学报 ',23,13,'2019-03-08');
/*!40000 ALTER TABLE `papers` ENABLE KEYS */;
UNLOCK TABLES;
/*!40103 SET TIME_ZONE=@OLD_TIME_ZONE */;
/*!40101 SET SQL_MODE=@OLD_SQL_MODE */;
/*!40014 SET FOREIGN_KEY_CHECKS=@OLD_FOREIGN_KEY_CHECKS */;
/*!40014 SET UNIQUE_CHECKS=@OLD_UNIQUE_CHECKS */;
/*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */;
/*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */;
/*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */;
/*!40111 SET SQL_NOTES=@OLD_SQL_NOTES */;
-- Dump completed on 2019-06-21 13:43:59
-- MySQL dump 10.13 Distrib 8.0.12, for Win64 (x86_64)
--
-- Host: localhost Database: zutki
-- ------------------------------------------------------
-- Server version 8.0.12
/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;
/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;
/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */;
SET NAMES utf8 ;
/*!40103 SET @OLD_TIME_ZONE=@@TIME_ZONE */;
/*!40103 SET TIME_ZONE='+00:00' */;
/*!40014 SET @OLD_UNIQUE_CHECKS=@@UNIQUE_CHECKS, UNIQUE_CHECKS=0 */;
/*!40014 SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0 */;
/*!40101 SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='NO_AUTO_VALUE_ON_ZERO' */;
/*!40111 SET @OLD_SQL_NOTES=@@SQL_NOTES, SQL_NOTES=0 */;
--
-- Table structure for table `users`
--
DROP TABLE IF EXISTS `users`;
/*!40101 SET @saved_cs_client = @@character_set_client */;
SET character_set_client = utf8mb4 ;
CREATE TABLE `users` (
`uid` int(11) NOT NULL AUTO_INCREMENT COMMENT '用户id',
`username` varchar(20) NOT NULL COMMENT '用户名',
`password` varchar(20) NOT NULL COMMENT '密码',
`major` varchar(20) DEFAULT NULL COMMENT '专业',
`email` varchar(20) DEFAULT NULL COMMENT '邮箱',
PRIMARY KEY (`uid`)
) ENGINE=InnoDB AUTO_INCREMENT=8 DEFAULT CHARSET=utf8 COMMENT='用户表';
/*!40101 SET character_set_client = @saved_cs_client */;
--
-- Dumping data for table `users`
--
LOCK TABLES `users` WRITE;
/*!40000 ALTER TABLE `users` DISABLE KEYS */;
INSERT INTO `users` VALUES (1,'1','123',NULL,NULL),(2,'57820','5705',NULL,NULL),(3,'442','35','science','a15907120@qq.com'),(4,'2047','40570','science','41075@qq.com'),(5,'ss','123','economics','ss@qq'),(6,'aa','123','economics','ss@qq'),(7,'15465','56465','economics','156@qq');
/*!40000 ALTER TABLE `users` ENABLE KEYS */;
UNLOCK TABLES;
/*!40103 SET TIME_ZONE=@OLD_TIME_ZONE */;
/*!40101 SET SQL_MODE=@OLD_SQL_MODE */;
/*!40014 SET FOREIGN_KEY_CHECKS=@OLD_FOREIGN_KEY_CHECKS */;
/*!40014 SET UNIQUE_CHECKS=@OLD_UNIQUE_CHECKS */;
/*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */;
/*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */;
/*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */;
/*!40111 SET SQL_NOTES=@OLD_SQL_NOTES */;
-- Dump completed on 2019-06-21 13:43:59
package dao;
import entity.Like;
import util.BaseDao;
import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.Statement;
import java.util.ArrayList;
import java.util.Vector;
public class LikeDao {
public ArrayList<Like> findLikesByUser(int uid){
ArrayList<Like> result = null;
Connection con=null;
ResultSet rs=null;
Statement st=null;
try {
String sql="SELECT * FROM zutki.likes where uid = "+uid+";";
System.out.println(sql);
con= BaseDao.getConnection();
st=con.createStatement();
result = new ArrayList<Like>();
rs = st.executeQuery(sql);
while(rs.next()){
Like like = new Like();
like.setLid(rs.getInt("lid"));
like.setPid(rs.getInt("pid"));
like.setUid(rs.getInt("uid"));
result.add(like);
}
}catch(Exception e) {
e.printStackTrace();
}finally{
BaseDao.closeAll(rs, st, con);
}
return result;
}
public static void addLike(int uid, int pid){
Vector<Like> result = null;
Connection con=null;
ResultSet rs=null;
Statement st=null;
try {
String sql="INSERT INTO `zutki`.`likes` (`uid`, `pid`) VALUES ('"+uid+"', '"+pid+"');";
System.out.println(sql);
con= BaseDao.getConnection();
st=con.createStatement();
st.execute(sql);
}catch(Exception e) {
e.printStackTrace();
}finally{
BaseDao.closeAll(rs, st, con);
}
}
}
package dao;
import entity.Like;
import entity.Paper;
import util.BaseDao;
import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.Statement;
import java.util.ArrayList;
import java.util.List;
import java.util.Vector;
public class PaperDao {
public Paper findPaperById(int pid){
Connection con=null;
ResultSet rs=null;
Statement st=null;
Paper paper = new Paper();
try {
String sql="SELECT * FROM zutki.papers where pid = "+pid+";";
System.out.println(sql);
con= BaseDao.getConnection();
st=con.createStatement();
rs = st.executeQuery(sql);
if (rs.next()){
paper.setPid(rs.getInt("pid"));
paper.setAuthor(rs.getString("author"));
paper.setCnt(rs.getInt("downCnt"));
paper.setDate(rs.getDate("date"));
paper.setDigest(rs.getString("digest"));
paper.setPlace(rs.getString("place"));
paper.setSource(rs.getString("source"));
paper.setTitle(rs.getString("title"));
}
}catch(Exception e) {
e.printStackTrace();
}finally{
BaseDao.closeAll(rs, st, con);
}
return paper;
}
public ArrayList<Paper> findTopNPapers(ArrayList<Paper> papers){
//将喜欢人数最多的论文补入推荐列表, 直至满五篇(考虑重复)
Connection con=null;
ResultSet rs=null;
Statement st=null;
try {
String sql = "SELECT * FROM zutki.papers order by likeCnt desc;";
System.out.println(sql);
con= BaseDao.getConnection();
st=con.createStatement();
rs = st.executeQuery(sql);
while(rs.next() && papers.size() < 5){
Paper paper = new Paper();
paper.setPid(rs.getInt("pid"));
paper.setAuthor(rs.getString("author"));
paper.setCnt(rs.getInt("downCnt"));
paper.setDate(rs.getDate("date"));
paper.setDigest(rs.getString("digest"));
paper.setPlace(rs.getString("place"));
paper.setSource(rs.getString("source"));
paper.setTitle(rs.getString("title"));
if(BaseDao.isExist(papers, paper.getPid()))
papers.add(paper);
}
}catch(Exception e) {
e.printStackTrace();
}finally{
BaseDao.closeAll(rs, st, con);
}
return papers;
}
public ArrayList<Paper> SearchPapers(String classify, String search){
ArrayList<Paper> result = null;
Connection con=null;
ResultSet rs=null;
Statement st=null;
try {
String sql="select * from zutki.papers where "+classify+" like '%"+search+"%'";
System.out.println(sql);
con= BaseDao.getConnection();
st=con.createStatement();
result = new ArrayList<Paper>();
rs = st.executeQuery(sql);
while(rs.next()){
Paper paper = new Paper();
paper.setPid(rs.getInt("pid"));
paper.setAuthor(rs.getString("author"));
paper.setCnt(rs.getInt("downCnt"));
paper.setDate(rs.getDate("date"));
paper.setDigest(rs.getString("digest"));
paper.setPlace(rs.getString("place"));
paper.setSource(rs.getString("source"));
paper.setTitle(rs.getString("title"));
result.add(paper);
}
}catch(Exception e) {
e.printStackTrace();
}finally{
BaseDao.closeAll(rs, st, con);
}
return result;
}
public ArrayList<Paper> getAllPapers(){
ArrayList<Paper> result = null;
Connection con=null;
ResultSet rs=null;
Statement st=null;
try {
String sql = "SELECT * FROM zutki.papers;";
System.out.println(sql);
con= BaseDao.getConnection();
st=con.createStatement();
result = new ArrayList<Paper>();
rs = st.executeQuery(sql);
while(rs.next()){
Paper paper = new Paper();
paper.setPid(rs.getInt("pid"));
paper.setAuthor(rs.getString("author"));
paper.setCnt(rs.getInt("downCnt"));
paper.setDate(rs.getDate("date"));
paper.setDigest(rs.getString("digest"));
paper.setPlace(rs.getString("place"));
paper.setSource(rs.getString("source"));
paper.setTitle(rs.getString("title"));
result.add(paper);
}
}catch(Exception e) {
e.printStackTrace();
}finally{
BaseDao.closeAll(rs, st, con);
}
return result;
}
public void addLikeCnt(int pid){
Connection con=null;
ResultSet rs=null;
Statement st=null;
try {
String sql = "UPDATE `zutki`.`papers` SET `likeCnt` = likeCnt+'1' WHERE (`pid` = '"+pid+"');";
System.out.println(sql);
con= BaseDao.getConnection();
st=con.createStatement();
st.execute(sql);
}catch(Exception e) {
e.printStackTrace();
}finally{
BaseDao.closeAll(rs, st, con);
}
}
}
package dao;
import entity.Paper;
import entity.User;
import util.BaseDao;
import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.ArrayList;
import java.util.Vector;
public class UserDao {
public boolean userAdd(User user) {
//添加用户
int result=0;
Connection con=null;
ResultSet rt=null;
Statement st=null;
try {
String sql = "INSERT INTO `zutki`.`users` (`username`, `password`, `major`, `email`) VALUES ('"+user.getUsername()+"', '"+user.getPassword()+"'," +
" '"+user.getMajor()+"', '"+user.getEmail()+"');\n";
System.out.println(sql);
con= BaseDao.getConnection();
st= con.createStatement();
result=st.executeUpdate(sql);
} catch (Exception e) {
e.printStackTrace();
return false;
}finally{
BaseDao.closeAll(rt, st, con);
}
if(result>=0)
return true;
else
return false;
}
public User findByName(String username) {
//通过用户名来查找该用户
Connection conn=null;
Statement st=null;
ResultSet rs=null;
try {
String sql="select * from zutki.users where username='"+username+"'";
conn=BaseDao.getConnection();
st=conn.createStatement();
rs=st.executeQuery(sql);
if (rs.next()){
User target = new User(rs.getInt("uid"), rs.getString("username"),
rs.getString("password"), rs.getString("major"), rs.getString("email"));
return target;
}else {
return null;
}
} catch (SQLException e) {
e.printStackTrace();
}
finally {
BaseDao.closeAll(rs, st, conn);
}
return null;
}
public boolean isExist(String username){
//通过用户名查找该用户是否存在
Connection conn=null;
Statement st=null;
ResultSet rs=null;
try {
String sql = "select count(*) from users where uid = '"+username+"';";
System.out.println(sql);
conn = BaseDao.getConnection();
st = conn.createStatement();
rs = st.executeQuery(sql);
//如果找到该用户返回true
while (rs.next()){
if(rs.getBoolean(1))
return true;
else
return false;
}
} catch (SQLException e) {
e.printStackTrace();
}finally {
BaseDao.closeAll(rs, st, conn);
}
return false;
}
public ArrayList<User> getAllUsers(){
ArrayList<User> result = null;
Connection con=null;
ResultSet rs=null;
Statement st=null;
try {
String sql = "SELECT * FROM zutki.users;";
System.out.println(sql);
con= BaseDao.getConnection();
st=con.createStatement();
result = new ArrayList<User>();
rs = st.executeQuery(sql);
while(rs.next()){
User user = new User();
user.setEmail(rs.getString("email"));
user.setMajor(rs.getString("major"));
user.setPassword(rs.getString("password"));
user.setUsername(rs.getString("username"));
user.setUid(rs.getInt("uid"));
result.add(user);
}
}catch(Exception e) {
e.printStackTrace();
}finally{
BaseDao.closeAll(rs, st, con);
}
return result;
}
}
package entity;
public class Like {
int uid; //发起喜欢的用户
int pid; //被喜欢的文章
int lid; //该喜欢行为的id
public Like(int uid, int pid, int lid) {
this.uid = uid;
this.pid = pid;
this.lid = lid;
}
public Like(){
}
public int getUid() {
return uid;
}
public void setUid(int uid) {
this.uid = uid;
}
public int getPid() {
return pid;
}
public void setPid(int pid) {
this.pid = pid;
}
public int getLid() {
return lid;
}
public void setLid(int lid) {
this.lid = lid;
}
@Override
public String toString() {
return "Like{" +
"uid=" + uid +
", pid=" + pid +
", lid=" + lid +
'}';
}
}
package entity;
import java.util.Date;
public class Paper {
int pid; //论文id
String author; //作者
Date date; //发表日期
String place; //发表机构
String title; //论文题目
String digest; //摘要
String source; //论文来源
int cnt; //喜欢该论文的用户数量
int downCnt; //下载量
double w; //相似度(只在推荐时调用)
public Paper() {
}
public Paper(int pid, String author, Date date, String place, String title, String digest, String source, int cnt, int downCnt) {
this.pid = pid;
this.author = author;
this.date = date;
this.place = place;
this.title = title;
this.digest = digest;
this.source = source;
this.cnt = cnt;
this.downCnt = downCnt;
}
public int getPid() {
return pid;
}
public void setPid(int pid) {
this.pid = pid;
}
public String getAuthor() {
return author;
}
public void setAuthor(String author) {
this.author = author;
}
public Date getDate() {
return date;
}
public void setDate(Date date) {
this.date = date;
}
public String getPlace() {
return place;
}
public void setPlace(String place) {
this.place = place;
}
public String getTitle() {
return title;
}
public void setTitle(String title) {
this.title = title;
}
public String getDigest() {
return digest;
}
public void setDigest(String digest) {
this.digest = digest;
}
public String getSource() {
return source;
}
public void setSource(String source) {
this.source = source;
}
public int getCnt() {
return cnt;
}
public void setCnt(int cnt) {
this.cnt = cnt;
}
public int getDownCnt() {
return downCnt;
}
public void setDownCnt(int downCnt) {
this.downCnt = downCnt;
}
public double getW() {
return w;
}
public void setW(double w) {
this.w = w;
}
@Override
public String toString() {
return "Paper{" +
"pid=" + pid +
", author='" + author + '\'' +
", date=" + date +
", place='" + place + '\'' +
", title='" + title + '\'' +
", degest='" + digest + '\'' +
", source='" + source + '\'' +
", cnt=" + cnt +
", downCnt=" + downCnt +
'}';
}
}
package entity;
public class User {
int uid; //用户id
String username; //用户名
String password; //密码
String major; //专业
String email; //邮箱
public User() {
}
public User(int uid, String username, String password, String major, String email) {
this.uid = uid;
this.username = username;
this.password = password;
this.major = major;
this.email = email;
}
public User(String username, String password, String major, String email) {
this.username = username;
this.password = password;
this.major = major;
this.email = email;
}
public int getUid() {
return uid;
}
public void setUid(int uid) {
this.uid = uid;
}
public String getUsername() {
return username;
}
public void setUsername(String username) {
this.username = username;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
public String getMajor() {
return major;
}
public void setMajor(String major) {
this.major = major;
}
public String getEmail() {
return email;
}
public void setEmail(String email) {
this.email = email;
}
@Override
public String toString() {
return "User{" +
"uid=" + uid +
", username='" + username + '\'' +
", password='" + password + '\'' +
'}';
}
}
package servlet;
import dao.PaperDao;
import entity.Paper;
import entity.User;
import util.ItemSimilarity;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.*;
import java.io.IOException;
import java.util.ArrayList;
import java.util.Vector;
@WebServlet(name = "IndexServlet", urlPatterns = "/IndexServlet")
public class IndexServlet extends HttpServlet {
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
doGet(request, response);
}
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
response.setContentType("text/html;charset=utf-8");
PaperDao dao = new PaperDao();
HttpSession session = request.getSession();
User user = (User) session.getAttribute("user");
//生成推荐
ArrayList<Paper> recomends = new ArrayList<>();
if(user!=null)
recomends = ItemSimilarity.recommend(user.getUid());
else
recomends = dao.findTopNPapers(recomends);
request.setAttribute("recomends", recomends);
System.out.println("推荐列表为: ");
for(Paper paper: recomends)
System.out.println("推荐题目为: "+paper.getTitle());
request.getRequestDispatcher("htmls/index.jsp").forward(request, response);
}
}
package servlet;
import dao.UserDao;
import entity.User;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.io.PrintWriter;
@WebServlet(name = "LoginServlet", urlPatterns = "/LoginServlet")
public class LoginServlet extends javax.servlet.http.HttpServlet {
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
response.setContentType("text/html;charset=utf-8");
String username = request.getParameter("username");
String password = request.getParameter("password");
UserDao dao = new UserDao();
//查看数据库中是否有该用户
User qUser = dao.findByName(username);
if(qUser==null){
request.setAttribute("status", "该用户不存在");
System.out.println("该用户不存在");
}else if(qUser.getPassword().equals(password)){
request.setAttribute("status", "登录成功, 等待跳转...");
System.out.println("登录成功, 等待跳转...");
request.getSession().setAttribute("user",qUser);
}else {
System.out.println("账号或密码输入错误");
request.setAttribute("status", "账号或密码输入错误");
}
response.sendRedirect("/zutki_war_exploded/IndexServlet");
}
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
doPost(request, response);
}
}
package servlet;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
@WebServlet(name = "LogoutServlet", urlPatterns = "/LogoutServlet")
public class LogoutServlet extends HttpServlet {
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
doGet(request, response);
}
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
request.getSession().removeAttribute("user");
response.sendRedirect("/zutki_war_exploded/IndexServlet");
}
}
package servlet;
import com.mysql.cj.Session;
import dao.LikeDao;
import dao.PaperDao;
import entity.Paper;
import entity.User;
import javax.persistence.metamodel.SetAttribute;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
import java.io.IOException;
@WebServlet(name = "PaperServlet", urlPatterns = "/PaperServlet")
public class PaperServlet extends HttpServlet {
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
doGet(request, response);
}
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
response.setContentType("text/html;charset=utf-8");
PaperDao dao = new PaperDao();
//展示论文信息
int pid = Integer.parseInt(request.getParameter("pid"));
Paper paper = dao.findPaperById(pid);
request.setAttribute("paper", paper);
request.getRequestDispatcher("htmls/paper.jsp").forward(request, response);
//添加一次喜欢
int lid = (Integer) request.getAttribute("lid");
dao.addLikeCnt(lid);
HttpSession session = request.getSession();
User user = (User) session.getAttribute("user");
System.out.println(user.toString() +" : " +lid);
LikeDao.addLike(user.getUid(), lid);
}
}
package servlet;
import dao.UserDao;
import entity.User;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
@WebServlet("/RegistServlet")
public class RegistServlet extends HttpServlet {
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
response.setContentType("text/html;charset=utf-8");
UserDao dao = new UserDao();
String username = request.getParameter("username");
String password = request.getParameter("password");
String email = request.getParameter("email");
String major = request.getParameter("major");
if(dao.isExist(username)){
request.setAttribute("message", "该用户已存在!");
}else{
User user = new User(username, password, major, email);
dao.userAdd(user);
request.setAttribute("message", "注册成功!");
}
response.setHeader("refresh", "3;url=/zutki_war_exploded/index.html"); //3秒后跳转到主页
}
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
doPost(request, response);
}
}
package servlet;
import dao.PaperDao;
import entity.Paper;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.util.List;
@WebServlet(name = "SearchServlet", urlPatterns = "/SearchServlet")
public class SearchServlet extends HttpServlet {
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
doGet(request, response);
}
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
response.setContentType("text/html;charset=utf-8");
PaperDao dao = new PaperDao();
String classify = request.getParameter("classify");
String search = request.getParameter("search");
List<Paper> papers = dao.SearchPapers(classify, search);
System.out.println(papers.get(0).toString());
if(papers!=null){
Paper paper = papers.get(0);
request.setAttribute("title", paper.getTitle());
request.setAttribute("author", paper.getAuthor());
request.setAttribute("digest", paper.getDigest());
request.setAttribute("cnt", paper.getCnt());
request.setAttribute("date", paper.getDate());
request.setAttribute("downCnt", paper.getDownCnt());
request.setAttribute("place", paper.getPlace());
request.setAttribute("source", paper.getSource());
}else {
request.setAttribute("message", "找不到您输入的结果! 请重新查找");
}
request.setAttribute("papers", papers);
request.setAttribute("origin", search);
request.getRequestDispatcher("htmls/classify.jsp").forward(request, response);
return;
}
}
package util;
import entity.Paper;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.Statement;
import java.sql.ResultSet;
import java.util.ArrayList;
public class BaseDao {
private static final String driver="com.mysql.cj.jdbc.Driver";
private static final String url="jdbc:mysql://localhost:3306/zutki?serverTimezone=Asia/Shanghai&useUnicode=true&characterEncoding=utf8&useSSL=false";
private static final String uid="root";
private static final String pwd="123456";
Connection conn = null;
Statement prs = null;
ResultSet rs = null;
//建立连接
public static Connection getConnection(){
Connection con=null;
try {
Class.forName(driver);
con= DriverManager.getConnection(url,uid,pwd);
} catch (Exception e) {
e.printStackTrace();
}
return con;
}
//关闭连接
public static void closeAll(ResultSet rs, Statement st, Connection con){
try {
if(rs!=null){
rs.close();
rs=null;
}
if(st!=null){
st.close();
st=null;
}
if(con!=null){
con.close();
con=null;
}
} catch (Exception e) {
e.printStackTrace();
}
}
//判断该论文组中是否有该论文
public static boolean isExist(ArrayList<Paper> papers, int pid){
for (Paper paper : papers)
if(paper.getPid() == pid)
return false;
return true;
}
}
package util;
import dao.LikeDao;
import dao.PaperDao;
import dao.UserDao;
import entity.Like;
import entity.Paper;
import entity.User;
import java.util.*;
public class ItemSimilarity {
public static void main(String[] args) {
//测试小Demo
System.out.println("请输入用户希望推荐的用户id : ");
Scanner input = new Scanner(System.in);
int uid = input.nextInt();
ArrayList<Paper> v = recommend(uid);
System.out.println("正在生成针对用户id为"+uid+"的推荐...");
for(int i = 0; i < v.size(); i++)
System.out.println("第"+(i+1)+"个推荐: 题目:"+v.get(i).getTitle()+"");
}
//通过计算余弦相似度并取TopN, 返回为uid的用户生成的5个推荐文章
public static ArrayList<Paper> recommend(int uid){
UserDao userdao = new UserDao();
PaperDao paperdao = new PaperDao();
LikeDao likedao = new LikeDao();
ArrayList<Like> likeLists; //其他用户喜欢的论文列表
ArrayList<User> users = userdao.getAllUsers(); //所有用户列表
ArrayList<Paper> papers = paperdao.getAllPapers(); //所有论文列表
int[][] curMatrix = new int[papers.size()+5][papers.size()+5]; //当前矩阵
int[][] comMatrix = new int[papers.size()+5][papers.size()+5]; //共现矩阵
int[] N = new int[papers.size()+5]; //喜欢每个物品的人数
for(User user: users){
if(user.getUid()==uid) continue; //当前用户则跳过
likeLists = likedao.findLikesByUser(user.getUid()); //当前用户的喜欢列表
for(int i = 0; i < papers.size(); i++)
for(int j = 0; j < papers.size(); j++)
curMatrix[i][j] = 0; //清空矩阵
for(int i = 0; i < likeLists.size(); i++){
int pid1 = likeLists.get(i).getPid();
++N[pid1];
for(int j = i+1; j < likeLists.size(); j++){
int pid2 = likeLists.get(j).getPid();
++curMatrix[pid1][pid2];
++curMatrix[pid2][pid1]; //两两加一
}
}
//累加所有矩阵, 得到共现矩阵
for(int i = 0; i < papers.size(); i++){
for(int j = 0; j < papers.size(); j++){
int pid1 = papers.get(i).getPid(), pid2 = papers.get(j).getPid();
comMatrix[pid1][pid2] += curMatrix[pid1][pid2];
comMatrix[pid1][pid2] += curMatrix[pid1][pid2];
}
}
}
TreeSet<Paper> preList = new TreeSet<Paper>(new Comparator<Paper>() {
@Override
public int compare(Paper o1, Paper o2) {
if(o1.getW()!=o2.getW())
return (int) (o1.getW()-o2.getW())*100;
else
return o1.getCnt()-o2.getCnt();
}
}); //预处理的列表
likeLists = likedao.findLikesByUser(uid); //当前用户喜欢的论文列表
boolean[] used = new boolean[papers.size()+5]; //判重数组
for(Like like: likeLists){
int Nij = 0; //既喜欢i又喜欢j的人数
double Wij; //相似度
Paper tmp; //当前的论文
int i = like.getPid();
for(Paper paper: papers){
if(like.getPid() == paper.getPid()) continue;
int j = paper.getPid();
Nij = comMatrix[i][j];
Wij = (double)Nij/Math.sqrt(N[i]*N[j]); //计算余弦相似度
tmp = paperdao.findPaperById(paper.getPid());
tmp.setW(Wij);
if(used[tmp.getPid()]) continue;
preList.add(tmp);
used[tmp.getPid()] = true;
}
}
ArrayList<Paper> recomLists = new ArrayList<>(); //生成的推荐结果
for(int i = 0; preList.size()>0 && i<5; i++){
recomLists.add(preList.pollLast());
preList.pollLast();
}
if(recomLists.size()<5){
//推荐数量不满5个, 补足喜欢数最高的文章
recomLists = paperdao.findTopNPapers(recomLists);
}
return recomLists;
}
}
\ No newline at end of file
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_4_0.xsd"
version="4.0">
<welcome-file-list>
<welcome-file>IndexServlet</welcome-file>
</welcome-file-list>
</web-app>
\ No newline at end of file
<%@ page import="entity.Paper" %>
<%@ page import="java.util.ArrayList" %>
<%@ page import="java.util.Vector" %>
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8" %>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
<!DOCTYPE html>
<html lang="zh-CN">
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1">
<!-- 上述3个meta标签*必须*放在最前面,任何其他内容都*必须*跟随其后! -->
<meta name="description" content="">
<meta name="author" content="">
<link rel="icon" href="../../favicon.ico">
<title>中工知网</title>
<!-- Bootstrap core CSS -->
<link href="https://cdn.bootcss.com/bootstrap/3.3.7/css/bootstrap.min.css" rel="stylesheet">
<!-- Bootstrap theme -->
<link href="../../dist/css/bootstrap-theme.min.css" rel="stylesheet">
<!-- IE10 viewport hack for Surface/desktop Windows 8 bug -->
<link href="../../assets/css/ie10-viewport-bug-workaround.css" rel="stylesheet">
<!-- Custom styles for this template -->
<link href="theme.css" rel="stylesheet">
<!-- Just for debugging purposes. Don't actually copy these 2 lines! -->
<!--[if lt IE 9]>
<script src="../../assets/js/ie8-responsive-file-warning.js"></script><![endif]-->
<script src="../../assets/js/ie-emulation-modes-warning.js"></script>
<!-- HTML5 shim and Respond.js for IE8 support of HTML5 elements and media queries -->
<!--[if lt IE 9]>
<script src="https://cdn.bootcss.com/html5shiv/3.7.3/html5shiv.min.js"></script>
<script src="https://cdn.bootcss.com/respond.js/1.4.2/respond.min.js"></script>
<![endif]-->
</head>
<body>
<!-- Fixed navbar -->
<nav class="navbar navbar-inverse navbar-fixed-top">
<div class="container">
<div class="navbar-header">
<button type="button" class="navbar-toggle collapsed" data-toggle="collapse" data-target="#navbar"
aria-expanded="false" aria-controls="navbar">
<span class="sr-only">Toggle navigation</span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>
</button>
<a class="navbar-brand" href="/zutki_war_exploded/IndexServlet">首页</a>
</div>
<div id="navbar" class="navbar-collapse collapse">
<ul class="nav navbar-nav">
<li><a href="#">经济</a></li>
<li><a href="#">信息</a></li>
<li><a href="#">医药</a></li>
<li><a href="#">社科</a></li>
<li><a href="#">理工</a></li>
<li><a href="#">工程</a></li>
<li><a href="#">高级检索</a></li>
<li><a href="/zutki_war_exploded/htmls/login.jsp">登陆</a></li>
<li><a href="/zutki_war_exploded/htmls/regist.jsp">注册</a></li>
<li><a href="/zutki_war_exploded/LogoutServlet">退出登陆</a></li>
</ul>
<div class="col-lg-6" style="width: 300px;">
<div class="input-group">
<input type="text" class="form-control">
<span class="input-group-btn">
<button class="btn btn-default" type="button">
Go!
</button>
</span>
</div><!-- /input-group -->
</div><!-- /.col-lg-6 -->
</div><!--/.nav-collapse -->
</div>
</nav>
<div class="container theme-showcase" role="main">
<!-- Main jumbotron for a primary marketing message or call to action -->
<div class="jumbotron">
<h1>欢迎来到中国知网</h1>
<p>在这里希望你能找到您想要的一切</p>
</div>
<div id="carousel-example-generic" class="carousel slide" data-ride="carousel">
<ol class="carousel-indicators">
<li data-target="#carousel-example-generic" data-slide-to="0" class="active"></li>
<li data-target="#carousel-example-generic" data-slide-to="1"></li>
<li data-target="#carousel-example-generic" data-slide-to="2"></li>
</ol>
<div class="carousel-inner" role="listbox">
<div class="item active">
<img src="img/htmls/pic-1.jpg" width="100%" height="100%" alt="First slide">
</div>
<div class="item">
<img src="img/htmls/pic-2.jpg" width="100%" height="100%" alt="Second slide">
</div>
<div class="item">
<img src="img/htmls/pic-3.jpg" width="100%" height="100%" alt="Third slide">
</div>
</div>
<a class="left carousel-control" href="#carousel-example-generic" role="button" data-slide="prev">
<span class="glyphicon glyphicon-chevron-left" aria-hidden="true"></span>
<span class="sr-only">Previous</span>
</a>
<a class="right carousel-control" href="#carousel-example-generic" role="button" data-slide="next">
<span class="glyphicon glyphicon-chevron-right" aria-hidden="true"></span>
<span class="sr-only">Next</span>
</a>
</div>
<div class="page-header">
<h1>${origin}的搜索结果</h1>
</div>
<div class="row">
<!--div class="col-md-6"-->
<!--table class="table"-->
<div class="table-responsive">
<table class="table table-striped">
<tr>
<th>论文编号</th>
<th>题目</th>
<th>作者</th>
<th>来源</th>
<th>发表时间</th>
<th>下载量</th>
</tr>
<%
ArrayList<Paper> papers = (ArrayList<Paper>) request.getAttribute("papers");
%>
<c:forEach items="${papers}" var="papers">
<tr>
<td><a href="/zutki_war_exploded/PaperServlet?pid=${papers.pid}">${papers.pid}</a></td>
<td><a href="/zutki_war_exploded/PaperServlet?pid=${papers.pid}">${papers.title}</a></td>
<td>${papers.author}</td>
<td>${papers.source}</td>
<td>${papers.date}</td>
<td>${papers.downCnt}</td>
</tr>
</c:forEach>
</table>
</div>
</div>
</div> <!-- /container -->
<!-- Bootstrap core JavaScript
================================================== -->
<!-- Placed at the end of the document so the pages load faster -->
<script src="https://cdn.bootcss.com/jquery/1.12.4/jquery.min.js"></script>
<script>window.jQuery || document.write('<script src="../../assets/js/vendor/jquery.min.js"><\/script>')</script>
<script src="https://cdn.bootcss.com/bootstrap/3.3.7/js/bootstrap.min.js"></script>
<script src="../../assets/js/docs.min.js"></script>
<!-- IE10 viewport hack for Surface/desktop Windows 8 bug -->
<script src="../../assets/js/ie10-viewport-bug-workaround.js"></script>
</body>
</html>
<%@ page import="entity.Paper" %>
<%@ page import="java.util.ArrayList" %>
<%@ page import="java.util.Vector" %>
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8" %>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
<!DOCTYPE html>
<html lang="zh-CN">
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1">
<!-- 上述3个meta标签*必须*放在最前面,任何其他内容都*必须*跟随其后! -->
<meta name="description" content="">
<meta name="author" content="">
<link rel="icon" href="../../favicon.ico">
<title>中工知网</title>
<!-- Bootstrap core CSS -->
<link href="https://cdn.bootcss.com/bootstrap/3.3.7/css/bootstrap.min.css" rel="stylesheet">
<!-- Bootstrap theme -->
<link href="../../dist/css/bootstrap-theme.min.css" rel="stylesheet">
<!-- IE10 viewport hack for Surface/desktop Windows 8 bug -->
<link href="../../assets/css/ie10-viewport-bug-workaround.css" rel="stylesheet">
<!-- Custom styles for this template -->
<link href="theme.css" rel="stylesheet">
<!-- Just for debugging purposes. Don't actually copy these 2 lines! -->
<!--[if lt IE 9]>
<script src="../../assets/js/ie8-responsive-file-warning.js"></script><![endif]-->
<script src="../../assets/js/ie-emulation-modes-warning.js"></script>
<!-- HTML5 shim and Respond.js for IE8 support of HTML5 elements and media queries -->
<!--[if lt IE 9]>
<script src="https://cdn.bootcss.com/html5shiv/3.7.3/html5shiv.min.js"></script>
<script src="https://cdn.bootcss.com/respond.js/1.4.2/respond.min.js"></script>
<![endif]-->
</head>
<body>
<!-- Fixed navbar -->
<nav class="navbar navbar-inverse navbar-fixed-top">
<div class="container">
<div class="navbar-header">
<button type="button" class="navbar-toggle collapsed" data-toggle="collapse" data-target="#navbar"
aria-expanded="false" aria-controls="navbar">
<span class="sr-only">Toggle navigation</span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>
</button>
<a class="navbar-brand" href="/zutki_war_exploded/IndexServlet">首页</a>
</div>
<div id="navbar" class="navbar-collapse collapse">
<ul class="nav navbar-nav">
<li><a href="#">经济</a></li>
<li><a href="#">信息</a></li>
<li><a href="#">医药</a></li>
<li><a href="#">社科</a></li>
<li><a href="#">理工</a></li>
<li><a href="#">工程</a></li>
<li><a href="#">高级检索</a></li>
<li><a href="/zutki_war_exploded/htmls/login.jsp">登陆</a></li>
<li><a href="/zutki_war_exploded/htmls/register.jsp">注册</a></li>
<li><a href="/zutki_war_exploded/LogoutServlet">退出登陆</a></li>
</ul>
<div class="col-lg-6" style="width: 300px;">
<form action="/zutki_war_exploded/SearchServlet" method="post">
<select name="classify">
<option value="author">作者</option>
<option value="title">篇名</option>
</select> <input type="search" name="search"/>
<input type="submit" value="搜索"/>
</form>
</div><!-- /.col-lg-6 -->
</div><!--/.nav-collapse -->
</div>
</nav>
<div class="container theme-showcase" role="main">
<!-- Main jumbotron for a primary marketing message or call to action -->
<div class="jumbotron">
<h1>欢迎来到中国知网</h1>
<p>在这里希望你能找到您想要的一切</p>
</div>
<div id="carousel-example-generic" class="carousel slide" data-ride="carousel">
<ol class="carousel-indicators">
<li data-target="#carousel-example-generic" data-slide-to="0" class="active"></li>
<li data-target="#carousel-example-generic" data-slide-to="1"></li>
<li data-target="#carousel-example-generic" data-slide-to="2"></li>
</ol>
<div class="carousel-inner" role="listbox">
<div class="item active">
<img src="htmls/img/htmls/pic-1.jpg" width="100%" height="100%" alt="First slide">
</div>
<div class="item">
<img src="htmls/img/htmls/pic-2.jpg" width="100%" height="100%" alt="Second slide">
</div>
<div class="item">
<img src="htmls/img/htmls/pic-3.jpg" width="100%" height="100%" alt="Third slide">
</div>
</div>
<a class="left carousel-control" href="#carousel-example-generic" role="button" data-slide="prev">
<span class="glyphicon glyphicon-chevron-left" aria-hidden="true"></span>
<span class="sr-only">Previous</span>
</a>
<a class="right carousel-control" href="#carousel-example-generic" role="button" data-slide="next">
<span class="glyphicon glyphicon-chevron-right" aria-hidden="true"></span>
<span class="sr-only">Next</span>
</a>
</div>
<div class="page-header">
<h1>为您推荐</h1>
</div>
<div class="row">
<!--div class="col-md-6"-->
<!--table class="table"-->
<div class="table-responsive">
<table class="table table-striped">
<tr>
<th>论文编号</th>
<th>题目</th>
<th>作者</th>
<th>来源</th>
<th>发表时间</th>
<th>下载量</th>
</tr>
<%
ArrayList<Paper> recomends = (ArrayList<Paper>) request.getAttribute("recomends");
%>
<c:forEach items="${recomends}" var="recomend">
<tr>
<td><a href="/zutki_war_exploded/PaperServlet?pid=${recomend.pid}">${recomend.pid}</a></td>
<td><a href="/zutki_war_exploded/PaperServlet?pid=${recomend.pid}">${recomend.title}</a></td>
<td>${recomend.author}</td>
<td>${recomend.source}</td>
<td>${recomend.date}</td>
<td>${recomend.downCnt}</td>
</tr>
</c:forEach>
</table>
</div>
</div>
</div> <!-- /container -->
<!-- Bootstrap core JavaScript
================================================== -->
<!-- Placed at the end of the document so the pages load faster -->
<script src="https://cdn.bootcss.com/jquery/1.12.4/jquery.min.js"></script>
<script>window.jQuery || document.write('<script src="../../assets/js/vendor/jquery.min.js"><\/script>')</script>
<script src="https://cdn.bootcss.com/bootstrap/3.3.7/js/bootstrap.min.js"></script>
<script src="../../assets/js/docs.min.js"></script>
<!-- IE10 viewport hack for Surface/desktop Windows 8 bug -->
<script src="../../assets/js/ie10-viewport-bug-workaround.js"></script>
</body>
</html>
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8" %>
<!DOCTYPE html>
<html lang="zh-CN">
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1">
<!-- 上述3个meta标签*必须*放在最前面,任何其他内容都*必须*跟随其后! -->
<meta name="description" content="">
<meta name="author" content="">
<link rel="icon" href="../../favicon.ico">
<title>中工知网</title>
<!-- Bootstrap core CSS -->
<link href="https://cdn.bootcss.com/bootstrap/3.3.7/css/bootstrap.min.css" rel="stylesheet">
<!-- IE10 viewport hack for Surface/desktop Windows 8 bug -->
<link href="../../assets/css/ie10-viewport-bug-workaround.css" rel="stylesheet">
<!-- Custom styles for this template -->
<link href="signin.css" rel="stylesheet">
<!-- Just for debugging purposes. Don't actually copy these 2 lines! -->
<!--[if lt IE 9]>
<script src="../../assets/js/ie8-responsive-file-warning.js"></script><![endif]-->
<script src="../../assets/js/ie-emulation-modes-warning.js"></script>
<!-- HTML5 shim and Respond.js for IE8 support of HTML5 elements and media queries -->
<!--[if lt IE 9]>
<script src="https://cdn.bootcss.com/html5shiv/3.7.3/html5shiv.min.js"></script>
<script src="https://cdn.bootcss.com/respond.js/1.4.2/respond.min.js"></script>
<![endif]-->
<style>
html, body {
width: 100%;
height: 100%;
}
.mui-content {
background: url(img/htmls/paper.jpg) bottom center no-repeat #efeff4;
background-size: 100% 100%;
width: 100%;
height: 100%;
}
</style>
</head>
<body class="mui-content">
<div>
<h1 style="border: aliceblue;text-align: center; height: 50px;"> 登录</h1>
</div>
<div class="container" style="border: blanchedalmond;width:500px;height:300px;text-align:center;>
<form class=" form-signin>
<form action="/zutki_war_exploded/LoginServlet"method= "post">
<h2 class="form-signin-heading">请登录</h2>
<label for="inputEmail" class="sr-only">电子邮箱</label>
<input type="text" id="inputEmail" name="username" class="form-control" placeholder="Username" required autofocus>
<label for="inputPassword" class="sr-only">密码</label>
<input type="password" id="inputPassword" name="password" class="form-control" placeholder="Password" required>
<div class="checkbox">
<label>
<input type="checkbox" value="remember-me"> 记住密码
</label>
</div>
<button class="btn btn-lg btn-primary btn-block" type="submit">登录</button>
<h3>${status}</h3>
</form>
</div> <!-- /container -->
<!-- IE10 viewport hack for Surface/desktop Windows 8 bug -->
<script src="../../assets/js/ie10-viewport-bug-workaround.js"></script>
</body>
</html>
<%@ page import="entity.Paper" %>
<%@ page import="java.util.ArrayList" %>
<%@ page import="java.util.Vector" %>
<%@ page import="util.ItemSimilarity" %>
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8" %>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
<!DOCTYPE html>
<html lang="zh-CN">
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1">
<!-- 上述3个meta标签*必须*放在最前面,任何其他内容都*必须*跟随其后! -->
<meta name="description" content="">
<meta name="author" content="">
<link rel="icon" href="../../favicon.ico">
<title>中工知网</title>
<!-- Bootstrap core CSS -->
<link href="https://cdn.bootcss.com/bootstrap/3.3.7/css/bootstrap.min.css" rel="stylesheet">
<!-- Bootstrap theme -->
<link href="../../dist/css/bootstrap-theme.min.css" rel="stylesheet">
<!-- IE10 viewport hack for Surface/desktop Windows 8 bug -->
<link href="../../assets/css/ie10-viewport-bug-workaround.css" rel="stylesheet">
<!-- Custom styles for this template -->
<link href="theme.css" rel="stylesheet">
<!-- Just for debugging purposes. Don't actually copy these 2 lines! -->
<!--[if lt IE 9]>
<script src="../../assets/js/ie8-responsive-file-warning.js"></script><![endif]-->
<script src="../../assets/js/ie-emulation-modes-warning.js"></script>
<!-- HTML5 shim and Respond.js for IE8 support of HTML5 elements and media queries -->
<!--[if lt IE 9]>
<script src="https://cdn.bootcss.com/html5shiv/3.7.3/html5shiv.min.js"></script>
<script src="https://cdn.bootcss.com/respond.js/1.4.2/respond.min.js"></script>
<![endif]-->
</head>
<body>
<!-- Fixed navbar -->
<nav class="navbar navbar-inverse navbar-fixed-top">
<div class="container">
<div class="navbar-header">
<button type="button" class="navbar-toggle collapsed" data-toggle="collapse" data-target="#navbar"
aria-expanded="false" aria-controls="navbar">
<span class="sr-only">Toggle navigation</span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>
</button>
<a class="navbar-brand" href="/zutki_war_exploded/IndexServlet">首页</a>
</div>
<div id="navbar" class="navbar-collapse collapse">
<ul class="nav navbar-nav">
<li><a href="#">经济</a></li>
<li><a href="#">信息</a></li>
<li><a href="#">医药</a></li>
<li><a href="#">社科</a></li>
<li><a href="#">理工</a></li>
<li><a href="#">工程</a></li>
<li><a href="#">高级检索</a></li>
<li><a href="/zutki_war_exploded/htmls/login.jsp">登陆</a></li>
<li><a href="/zutki_war_exploded/htmls/regist.jsp">注册</a></li>
<li><a href="/zutki_war_exploded/LogoutServlet">退出登陆</a></li>
</ul>
<div class="col-lg-6" style="width: 300px;">
<div class="input-group">
<input type="text" class="form-control">
<span class="input-group-btn">
<button class="btn btn-default" type="button">
Go!
</button>
</span>
</div><!-- /input-group -->
</div><!-- /.col-lg-6 -->
</div><!--/.nav-collapse -->
</div>
</nav>
<div class="container theme-showcase" role="main">
<!-- Main jumbotron for a primary marketing message or call to action -->
<div class="jumbotron">
<h1>欢迎来到中国知网</h1>
<p>在这里希望你能找到您想要的一切</p>
</div>
<div class="page-header">
<h1>${paper.title}</h1>
</div>
<div class="well">
<h3>摘要</h3>
<p>${paper.digest}</p>
<h3>作者</h3>
<p>${paper.author}</p>
<h3>所在机构</h3>
<p>${paper.place}</p>
<h3>出版时间</h3>
<p>${paper.date}</p>
<h3>论文编号</h3>
<p>${paper.pid}</p>
<h3>喜欢数量</h3>
<p>${paper.cnt}</p>
<h3>喜欢数量</h3>
<p>${paper.downCnt}</p>
</div>
<div class="page-header">
<h6>快来评价一下吧~</h6>
</div>
<p>
<button type="button" class="btn btn-success">喜欢</button>
<script>
function fun()
{
<%
Paper paper = (Paper)request.getAttribute("paper");
request.setAttribute("lid", paper.getPid());
%>
}
</script>
</p>
<input type="button" value="收藏">
<input type="button" value="PDF下载">
<div class="page-header">
<h1>相似推荐</h1>
</div>
<div class="row">
<div class="table-responsive">
<table class="table table-striped">
<tr>
<th>论文编号</th>
<th>题目</th>
<th>作者</th>
<th>来源</th>
<th>发表时间</th>
<th>下载量</th>
</tr>
<%
ArrayList<Paper> recomends = (ArrayList<Paper>) ItemSimilarity.recommend(Integer.parseInt(request.getParameter("pid")));
request.setAttribute("recomends", recomends);
%>
<c:forEach items="${recomends}" var="recomend">
<tr>
<td><a href="/zutki_war_exploded/PaperServlet?pid=${recomend.pid}">${recomend.pid}</a></td>
<td><a href="/zutki_war_exploded/PaperServlet?pid=${recomend.pid}">${recomend.title}</a></td>
<td>${recomend.author}</td>
<td>${recomend.source}</td>
<td>${recomend.date}</td>
<td>${recomend.downCnt}</td>
</tr>
</c:forEach>
</table>
</div>
</div>
</div> <!-- /container -->
<!-- Bootstrap core JavaScript
================================================== -->
<!-- Placed at the end of the document so the pages load faster -->
<script src="https://cdn.bootcss.com/jquery/1.12.4/jquery.min.js"></script>
<script>window.jQuery || document.write('<script src="../../assets/js/vendor/jquery.min.js"><\/script>')</script>
<script src="https://cdn.bootcss.com/bootstrap/3.3.7/js/bootstrap.min.js"></script>
<script src="../../assets/js/docs.min.js"></script>
<!-- IE10 viewport hack for Surface/desktop Windows 8 bug -->
<script src="../../assets/js/ie10-viewport-bug-workaround.js"></script>
</body>
</html>
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8" %>
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>中工知网</title>
<link rel="stylesheet" type="text/css">
<style>
</style>
</head>
<body>
<div id="example">
<div class="wrap">
<header class="top-header">
</header>
<main class="form">
<h3>注册申请</h3>
<p>注:<span class="red">*</span>为必填内容</p>
<form action="/zutki_war_exploded/RegistServlet" method="post">
<fieldset>
<legend>账号信息</legend>
<label for="username" class="left">用户名:<span class="red">*</span></label>
<input type="username" id="username" name="username" class="right" required><br>
<label for="password" class="left">&nbsp;&nbsp;<span class="red">*</span></label>
<input type="password" id="password" name="password" class="right" required><br>
<label for="major" class="left">&nbsp;&nbsp;<span class="red"></span></label>
<select name="major" id="major" class="right">
<option value="economics">经济</option>
<option value="society">社科</option>
<option value="technology">工程</option>
<option value="information">信息</option>
<option value="others">其他</option>
</select><br>
<label for="email" class="left">&nbsp;&nbsp;<span class="red">*</span></label>
<input type="email" id="email" name="email" class="right" required><br>
</fieldset>
<fieldset>
<div align="center">
<input name="yes" type="checkbox" id="yes"/><label for="yes">已阅读并同意上述条款</label>
</div>
</fieldset>
<input type="reset" class="btn" value="重 填">
<input type="submit" class="btn" value="注 册">
<h3>${message}</h3>
</form>
</main>
</div>
</div>
</body>
</html>
\ No newline at end of file
<%@ page import="entity.Paper" %>
<%@ page import="java.util.Vector" %>
<%@ page import="java.util.List" %>
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8" %>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
<!doctype html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>中工知网</title>
<style type="text/css">
.class1{
margin:0px 250px 0px 250px;
}
ul {
list-style-type: none;
margin: 0;
padding: 0;
overflow: hidden;
background-color: #333;
}
li {
float: left;
}
li a {
display: block;
color: white;
text-align: center;
padding: 14px 16px;
text-decoration: none;
}
li a:hover {
background-color: #111;
}
table,td,th
{
}
table
{
width:100%;
}
th
{
border-top-style:solid;
border-left-style:solid;
height:50px;
}
td{
border-top-style:solid;
border-left-style:solid;
}
* {
margin: 0;
padding: 0;
text-decoration: none;
}
body {
padding: 20px;
}
#container {
position: relative;
width: 600px;
height: 400px;
border: 3px solid #333;
overflow: hidden;
}
#list {
position: absolute;
z-index: 1;
width: 4200px;
height: 400px;
}
#list img {
float: left;
width: 600px;
height: 400px;
}
#buttons {
position: absolute;
left: 250px;
bottom: 20px;
z-index: 2;
height: 10px;
width: 100px;
}
#buttons span {
float: left;
margin-right: 5px;
width: 10px;
height: 10px;
border: 1px solid #fff;
border-radius: 50%;
background: #333;
cursor: pointer;
}
#buttons .on {
background: orangered;
}
.arrow {
position: absolute;
top: 180px;
z-index: 2;
display: none;
width: 40px;
height: 40px;
font-size: 36px;
font-weight: bold;
line-height: 39px;
text-align: center;
color: #fff;
background-color: RGBA(0, 0, 0, .3);
cursor: pointer;
}
.arrow:hover {
background-color: RGBA(0, 0, 0, .7);
}
#container:hover .arrow {
display: block;
}
#prev {
left: 20px;
}
#next {
right: 20px;
}
</style>
</head>
<body>
<div class="class1">
<div class="class2">
<img src="htmls/header.png"/>
</div>
<div class="class2">
<ul class="ul1">
<li class="ul1"><a href="/zutki_war_exploded/IndexServlet>首页</a></li>
<li class="ul1"><a href="">经济</a></li>
<li class="ul1"><a href="">信息</a></li>
<li class="ul1"><a href="">医药</a></li>
<li class="ul1"><a href="">社科</a></li>
<li class="ul1"><a href="">农业</a></li>
<li class="ul1"><a href="">理工</a></li>
<li class="ul1"><a href="">人文</a></li>
<li class="ul1"><a href="">工程</a></li>
<li class="ul1"><a href="">高级检索</a></li>
<li id="t1" class="ul1"><a href="/zutki_war_exploded/htmls/login.jsp">登录</a></li>
<li id="t2" class="ul1"><a href="/zutki_war_exploded/htmls/regist.jsp">注册</a></li>
<li id="welcome"> 欢迎登录</li>
<script>
var temp='<%=request.getParameter("a")%>';
var id1=document.getElementById("t1");
var id2=document.getElementById("t2");
var id3=document.getElementById("welcome");
if(temp==0){
id1.style.display="none";
id2.style.display="none";
id3.style.display="";
}
</script>
</ul>
</div>
<div >
<form action="/zutki_war_exploded/SearchServlet" method="post">
<select name="classify">
<option value="author">作者</option>
<option value="title">篇名</option>
</select> <input type="search" name="search" />
<input type="submit" value="搜索" />
</form>
<div><h3>搜索结果</h3>
<table>
<tr>
<th>论文编号</th>
<th>题名</th>
<th>作者</th>
<th>来源</th>
<th>发表时间</th>
<th>下载量</th>
</tr>
<%
List<Paper> papers = (List<Paper>) request.getAttribute("papers");
%>
<c:forEach items="${papers}" var="papers">
<tr>
<td><a href="/zutki_war_exploded/PaperServlet?pid=${papers.pid}">${papers.pid}</a></td>
<td><a href="/zutki_war_exploded/PaperServlet?pid=${papers.pid}">${papers.title}</a></td>
<td>${papers.author}</td>
<td>${papers.source}</td>
<td>${papers.date}</td>
<td>${papers.downCnt}</td>
</tr>
</c:forEach>
</table>
</div>
</div>
</div>
</body>
</html>
\ No newline at end of file
<%@ page import="entity.Paper" %>
<%@ page import="java.util.ArrayList" %>
<%@ page import="java.util.Vector" %>
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8" %>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
<!doctype html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>中工知网</title>
<style type="text/css">
.class1 {
margin: 0px 250px 0px 250px;
}
ul {
list-style-type: none;
margin: 0;
padding: 0;
overflow: hidden;
background-color: #333;
}
li {
float: left;
}
li a {
display: block;
color: white;
text-align: center;
padding: 14px 16px;
text-decoration: none;
}
li a:hover {
background-color: #111;
}
table, td, th {
}
table {
width: 100%;
}
th {
border-top-style: solid;
border-left-style: solid;
height: 50px;
}
td {
border-top-style: solid;
border-left-style: solid;
}
* {
margin: 0;
padding: 0;
text-decoration: none;
}
body {
padding: 20px;
}
#container {
position: relative;
width: 600px;
height: 400px;
border: 3px solid #333;
overflow: hidden;
}
#list {
position: absolute;
z-index: 1;
width: 4200px;
height: 400px;
}
#list img {
float: left;
width: 600px;
height: 400px;
}
#buttons {
position: absolute;
left: 250px;
bottom: 20px;
z-index: 2;
height: 10px;
width: 100px;
}
#buttons span {
float: left;
margin-right: 5px;
width: 10px;
height: 10px;
border: 1px solid #fff;
border-radius: 50%;
background: #333;
cursor: pointer;
}
#buttons .on {
background: orangered;
}
.arrow {
position: absolute;
top: 180px;
z-index: 2;
display: none;
width: 40px;
height: 40px;
font-size: 36px;
font-weight: bold;
line-height: 39px;
text-align: center;
color: #fff;
background-color: RGBA(0, 0, 0, .3);
cursor: pointer;
}
.arrow:hover {
background-color: RGBA(0, 0, 0, .7);
}
#container:hover .arrow {
display: block;
}
#prev {
left: 20px;
}
#next {
right: 20px;
}
#welcome {
display: none;
}
</style>
</head>
<body>
<div class="class1">
<div class="class2">
<img src="htmls/header.png"/>
</div>
<div class="class2">
<ul class="ul1">
<li class="ul1"><a href="/zutki_war_exploded/IndexServlet">首页</a></li>
<li class="ul1"><a href="">经济</a></li>
<li class="ul1"><a href="">信息</a></li>
<li class="ul1"><a href="">医药</a></li>
<li class="ul1"><a href="">社科</a></li>
<li class="ul1"><a href="">农业</a></li>
<li class="ul1"><a href="">理工</a></li>
<li class="ul1"><a href="">人文</a></li>
<li class="ul1"><a href="">工程</a></li>
<li class="ul1"><a href="">高级检索</a></li>
<li id="t1" class="ul1"><a href="/zutki_war_exploded/htmls/login.jsp">登录</a></li>
<li id="t2" class="ul1"><a href="/zutki_war_exploded/htmls/regist.jsp">注册</a></li>
<li id="welcome"> 欢迎登录</li>
<script>
var temp = '<%=request.getParameter("a")%>';
var id1 = document.getElementById("t1");
var id2 = document.getElementById("t2");
var id3 = document.getElementById("welcome");
if (temp == 0) {
id1.style.display = "none";
id2.style.display = "none";
id3.style.display = "";
}
</script>
</ul>
</div>
<div>
<form action="/zutki_war_exploded/SearchServlet" method="post">
<select name="classify">
<option value="author">作者</option>
<option value="title">篇名</option>
</select> <input type="search" name="search"/>
<input type="submit" value="搜索"/>
</form>
<div id="container">
<div id="list" style="left: -600px;">
<img src="htmls/5.jpg" alt="1"/>
<img src="htmls/1.jpg" alt="1"/>
<img src="htmls/2.jpg" alt="2"/>
<img src="htmls/3.jpg" alt="3"/>
<img src="htmls/4.jpg" alt="4"/>
<img src="htmls/5.jpg" alt="5"/>
<img src="htmls/1.jpg" alt="5"/>
</div>
<div id="buttons">
<span index="1" class="on"></span>
<span index="2"></span>
<span index="3"></span>
<span index="4"></span>
<span index="5"></span>
</div>
<a href="javascript:;" id="prev" class="arrow">&lt;</a>
<a href="javascript:;" id="next" class="arrow">&gt;</a>
</div>
<script type="text/javascript">
/* 知识点: */
/* this用法 */
/* DOM事件 */
window.onload = function () {
var container = document.getElementById('container');
var list = document.getElementById('list');
var buttons = document.getElementById('buttons').getElementsByTagName('span');
var prev = document.getElementById('prev');
var next = document.getElementById('next');
var index = 1;
var timer;
function animate(offset) {
var newLeft = parseInt(list.style.left) + offset;
list.style.left = newLeft + 'px';
if (newLeft > -600) {
list.style.left = -3000 + 'px';
}
if (newLeft < -3000) {
list.style.left = -600 + 'px';
}
}
function play() {
//重复执行的定时器
timer = setInterval(function () {
next.onclick();
}, 2000)
}
function stop() {
clearInterval(timer);
}
function buttonsShow() {
//将之前的小圆点的样式清除
for (var i = 0; i < buttons.length; i++) {
if (buttons[i].className == "on") {
buttons[i].className = "";
}
}
//数组从0开始,故index需要-1
buttons[index - 1].className = "on";
}
prev.onclick = function () {
index -= 1;
if (index < 1) {
index = 5
}
buttonsShow();
animate(600);
};
next.onclick = function () {
index += 1;
if (index > 5) {
index = 1
}
animate(-600);
buttonsShow();
};
for (var i = 0; i < buttons.length; i++) {
(function (i) {
buttons[i].onclick = function () {
/* 这里获得鼠标移动到小圆点的位置,用this把index绑定到对象buttons[i]上,去谷歌this的用法 */
/* 由于这里的index是自定义属性,需要用到getAttribute()这个DOM2级方法,去获取自定义index的属性*/
var clickIndex = parseInt(this.getAttribute('index'));
var offset = 600 * (index - clickIndex); //这个index是当前图片停留时的index
animate(offset);
index = clickIndex; //存放鼠标点击后的位置,用于小圆点的正常显示
buttonsShow();
}
})(i)
}
container.onmouseover = stop;
container.onmouseout = play;
play();
}
</script>
   
<div>
<h3>为您推荐</h3>
<table>
<tr>
<th>论文编号</th>
<th>题名</th>
<th>作者</th>
<th>来源</th>
<th>发表时间</th>
<th>下载量</th>
</tr>
<%
ArrayList<Paper> recomends = (ArrayList<Paper>) request.getAttribute("recomends");
%>
<c:forEach items="${recomends}" var="recomend">
<tr>
<td><a href="/zutki_war_exploded/PaperServlet?pid=${recomend.pid}">${recomend.pid}</a></td>
<td><a href="/zutki_war_exploded/PaperServlet?pid=${recomend.pid}">${recomend.title}</a></td>
<td>${recomend.author}</td>
<td>${recomend.source}</td>
<td>${recomend.date}</td>
<td>${recomend.downCnt}</td>
</tr>
</c:forEach>
</table>
</div>
<div>
<h3>最新发表</h3>
<table>
<tr>
<th>论文编号</th>
<th>题名</th>
<th>作者</th>
<th>来源</th>
<th>作者</th>
<th>下载量</th>
</tr>
<%
Vector<Paper> papers = (Vector<Paper>) request.getAttribute("papers");
%>
<c:forEach items="${papers}" var="paper">
<tr>
<td><a href="/zutki_war_exploded/PaperServlet?pid=${paper.pid}">${paper.pid}</a></td>
<td><a href="/zutki_war_exploded/PaperServlet?pid=${paper.pid}">${paper.title}</a></td>
<td>${paper.author}</td>
<td>${paper.source}</td>
<td>${paper.date}</td>
<td>${paper.downCnt}</td>
</tr>
</c:forEach>
</table>
</div>
</div>
</div>
</div>
</body>
</html>
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>中工知网</title>
</head>
<body>
<form action="/zutki_war_exploded/LoginServlet"method= "post">
账号:<input type="text" name="username"><br/>
密码:<input type="password" name="password"><br/>
<input type="submit" value="登陆">
<h3>${status}</h3>
</form>
</body>
</html>
\ No newline at end of file
<%@ page import="entity.Paper" %>
<%@ page import="java.util.Vector" %>
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
<!doctype html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>中工知网</title>
<style type="text/css">
.class1{
margin:0px 250px 0px 250px;
}
.class1 {
margin: 0px 250px 0px 250px;
}
ul {
list-style-type: none;
margin: 0;
padding: 0;
overflow: hidden;
background-color: #333;
}
li {
float: left;
}
li a {
display: block;
color: white;
text-align: center;
padding: 14px 16px;
text-decoration: none;
}
li a:hover {
background-color: #111;
}
table, td, th {
}
table {
width: 100%;
}
th {
border-top-style: solid;
border-left-style: solid;
height: 50px;
}
td {
border-top-style: solid;
border-left-style: solid;
}
* {
margin: 0;
padding: 0;
text-decoration: none;
}
</style>
</head>
<body>
<div class="class1">
<div class="class2">
<img src="htmls/header.png" />
</div>
<div class="class2" >
<ul class="ul1">
<li class="ul1"><a href="/zutki_war_exploded/IndexServlet">首页</a></li>
<li class="ul1"><a href="">经济</a></li>
<li class="ul1"><a href="">信息</a></li>
<li class="ul1"><a href="">医药</a></li>
<li class="ul1"><a href="">社科</a></li>
<li class="ul1"><a href="">农业</a></li>
<li class="ul1"><a href="">理工</a></li>
<li class="ul1"><a href="">人文</a></li>
<li class="ul1"><a href="">工程</a></li>
<li class="ul1"><a href="">高级检索</a></li>
<li id="t1" class="ul1"><a href="/zutki_war_exploded/htmls/login.jsp">登录</a></li>
<li id="t2" class="ul1"><a href="/zutki_war_exploded/htmls/regist.jsp">注册</a></li>
<li id="welcome"> 欢迎登录</li>
<script>
var temp = '<%=request.getParameter("a")%>';
var id1 = document.getElementById("t1");
var id2 = document.getElementById("t2");
var id3 = document.getElementById("welcome");
if (temp == 0) {
id1.style.display = "none";
id2.style.display = "none";
id3.style.display = "";
}
</script>
</ul>
</div>
<div >
<form action="/zutki_war_exploded/SearchServlet" method="post">
<select name="classify">
<option value="author">作者</option>
<option value="title">篇名</option>
</select> <input type="search" name="search" />
<input type="submit" value="搜索" />
</form>
</div>
<div>
<h2>${paper.title}</h2>
<h4>摘要:</h4><br/>
${paper.digest}
<h4>论文id:</h4>
${paper.pid}
<h4>下载量:</h4>
${paper.downCnt}
<h4>喜欢人数:</h4>
${paper.cnt}
<br>
<input type="button" value="喜欢" onclick="fun()">
<script>
function fun()
{
<%
Paper paper = (Paper)request.getAttribute("paper");
request.setAttribute("lid", paper.getPid());
%>
}
</script>
<br>
<input type="button" value="收藏">
<input type="button" value="PDF下载">
</div>
</div>
</body>
</html>
\ No newline at end of file
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>中工知网</title>
<link rel="stylesheet" type="text/css" >
<style >
</style>
</head>
<body>
<div id="example">
<div class="wrap">
<header class="top-header">
</header>
<main class="form">
<h3>注册申请</h3>
<p>注:<span class="red">*</span>为必填内容</p>
<form action="/zutki_war_exploded/RegistServlet" method="post">
<fieldset>
<legend>账号信息</legend>
<label for="username" class="left">用户名:<span class="red">*</span></label>
<input type="username" id="username"name="username" class="right" required><br>
<label for="password" class="left">&nbsp;&nbsp;<span class="red">*</span></label>
<input type="password" id="password"name="password" class="right" required><br>
<label for="major" class="left">&nbsp;&nbsp;<span class="red"></span></label>
<select name="major" id="major" class="right" >
<option value="economics">经济</option>
<option value="society">社科</option>
<option value="technology">工程</option>
<option value="information">信息</option>
<option value="others">其他</option>
</select><br>
<label for="email" class="left">&nbsp;&nbsp;<span class="red">*</span></label>
<input type="email" id="email"name="email" class="right" required><br>
</fieldset>
<fieldset>
<div align="center">
<input name="yes" type="checkbox" id="yes" /><label for="yes">已阅读并同意上述条款</label>
</div>
</fieldset>
<input type="reset" class="btn" value="重 填">
<input type="submit" class="btn" value="注 册">
<h3>${message}</h3>
</form>
</main>
</div>
</div>
</body>
</html>
\ No newline at end of file
<?xml version="1.0" encoding="UTF-8"?>
<module type="JAVA_MODULE" version="4">
<component name="FacetManager">
<facet type="web" name="Web">
<configuration>
<descriptors>
<deploymentDescriptor name="web.xml" url="file://$MODULE_DIR$/web/WEB-INF/web.xml" />
</descriptors>
<webroots>
<root url="file://$MODULE_DIR$/web" relative="/" />
</webroots>
</configuration>
</facet>
</component>
<component name="NewModuleRootManager" inherit-compiler-output="true">
<exclude-output />
<content url="file://$MODULE_DIR$">
<sourceFolder url="file://$MODULE_DIR$/src" isTestSource="false" />
<excludeFolder url="file://$MODULE_DIR$/src/com/zutki/dao/impl" />
</content>
<orderEntry type="inheritedJdk" />
<orderEntry type="sourceFolder" forTests="false" />
<orderEntry type="library" name="Java EE 6-Java EE 6" level="project" />
<orderEntry type="module-library" exported="">
<library>
<CLASSES>
<root url="jar://$MODULE_DIR$/web/WEB-INF/lib/mysql-connector-java-8.0.13.jar!/" />
</CLASSES>
<JAVADOC />
<SOURCES />
</library>
</orderEntry>
<orderEntry type="module-library">
<library>
<CLASSES>
<root url="jar://$MODULE_DIR$/web/WEB-INF/lib/standard-1.1.2.jar!/" />
</CLASSES>
<JAVADOC />
<SOURCES />
</library>
</orderEntry>
<orderEntry type="module-library">
<library>
<CLASSES>
<root url="jar://$MODULE_DIR$/web/WEB-INF/lib/jstl-1.2.jar!/" />
</CLASSES>
<JAVADOC />
<SOURCES />
</library>
</orderEntry>
</component>
</module>
\ No newline at end of file
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册