• 第一阶段冲刺


    登录与注册

    UserDaoilpl.java

    package utils;
    
    import java.io.IOException;
    import java.net.MalformedURLException;
    import java.net.URL;
    import java.text.SimpleDateFormat;
    import java.util.Date;
    import java.util.Set;
    import java.util.HashMap;  
    import java.util.Iterator;  
    import java.util.Map;
    
    import org.apache.http.client.config.RequestConfig;
    import org.apache.http.client.methods.CloseableHttpResponse;
    import org.apache.http.client.methods.HttpGet;
    import org.apache.http.client.utils.URIBuilder;
    import org.apache.http.impl.client.CloseableHttpClient;
    import org.apache.http.impl.client.HttpClients;
    import org.apache.http.impl.conn.PoolingHttpClientConnectionManager;
    import org.jsoup.Jsoup;
    import org.jsoup.nodes.Attributes;
    import org.jsoup.nodes.Document;
    import org.jsoup.nodes.Element;
    import org.jsoup.select.Elements;
    
    import dao.dao;
    import entity.Cvf;
    
    
    
    /**
     * 这是使用Jsoup解析
     */
    public class Jsouputil {
    
    	/**
    	 * 使用Selector选择器获取元素
    	 */
    	public static void testSelector()throws Exception{
    		//获取Document对象
    		HttpClientPool httpClientPool =new HttpClientPool();
    		//创建连接池管理器
    		PoolingHttpClientConnectionManager cm =new  PoolingHttpClientConnectionManager();
    		//获取网页HTML字符串
    		String content=httpClientPool.doGet(cm);
    						
    		//解析字符串
    		Document doc = Jsoup.parse(content);
    //		System.out.println(doc.toString());
    	
    		//[attr=value],利用属性获取
    		Elements elements = doc.select("div[id=content]").select("dl").select("dt[class=ptitle]");
    		System.out.println(elements.toString());
    		
    		Cvf cvf=new Cvf();
    		dao dao=new dao();
    		if(elements!=null) 
    		{
    		for(Element ele:elements)
    		{
    			String href="http://openaccess.thecvf.com/";
    			String cname=ele.select("a").text();
    			System.out.println(cname);
    			String href2=ele.select("a").attr("href");
    			String chref=href.concat(href2);
    			System.out.println(chref);
    			String cabstract =null;
    			String ckeyword  =null;
    				//获取title的内容
    			CloseableHttpClient httpClient = HttpClients.custom().setConnectionManager(cm).build();
    				//创建URIBuilder
    				  URIBuilder uribuilder= new URIBuilder(chref);
    				  HttpGet httpGet= new HttpGet(uribuilder.build());
    				  RequestConfig config = RequestConfig.custom().setConnectTimeout(10000*10000)//设置创建连接的最长时间,单位为毫秒
    						  .setConnectionRequestTimeout(10000*10000)//设置获取连接的最长时间,单位为毫秒
    						  .setSocketTimeout(100000*1000000)//设置传输数据的最长时间,单位为毫秒
    						  .build();
    						  //给请求设置请求信息
    						  httpGet.setConfig(config);
    						  CloseableHttpResponse response=null;
    						  response = httpClient.execute(httpGet);
    		    	  //解析响应,获取数据
    		    	  //判断状态码是否为两百
    		    	  if(response.getStatusLine().getStatusCode()==200||response.getStatusLine().getStatusCode()==302) {
    		    		  Document document = Jsoup.parse(new URL(chref), 100000);
    				      cabstract = document.select("div[id=abstract]").text();
    				      System.out.println("已获取摘要");
    					String[] strs = strTostrArray(cname+cabstract);
    					  
    					 ckeyword=keyword(strs);
    					 
    		    	  }
    		    	  else {
    		    		  System.out.println(response.getStatusLine().getStatusCode());
    		    		  cabstract =null;
    		    		  ckeyword=null;
    		    	  }
    		    	  if(response!=null) {
    					  //关闭response 
    					  response.close();
    				  }
    		    	  
    			cvf=new Cvf(cname,chref,cabstract,ckeyword);
    			dao.add(cvf);
    
    		}
    		}
    		
    	}
    	public static String[] strTostrArray(String str) {
    		  /*
    		   * 将非字母字符全部替换为空格字符" " 得到一个全小写的纯字母字符串包含有空格字符
    		   */
    		  str = str.toLowerCase();// 将字符串中的英文部分的字符全部变为小写
    		  String regex = "[\W]+";// 非字母的正则表达式 --W:表示任意一个非单词字符
    		  str = str.replaceAll(regex, " ");
    		  String[] strs = str.split(" "); // 以空格作为分隔符获得字符串数组
    		  return strs;
    		 }
    		 public static String keyword(String[] strs) {
    		  /*
    		   * 建立字符串(String)出现次数(Integer)的映射
    		   */
    		  HashMap<String, Integer> strhash = new HashMap<String, Integer>();
    		  Integer in = null;// 用于存放put操作的返回值
    		  for (String s : strs) {// 遍历数组 strs
    
    				  in = strhash.put(s, 1);
    				  if (in != null) {// 判断如果返回的不是null,则+1再放进去就是出现的次数
    					  strhash.put(s, in + 1);
    				  }
    
    		  }
    		  Set<java.util.Map.Entry<String, Integer>> entrySet = strhash.entrySet();
    		  String maxStr = null;// 用于存放出现最多的单词
    		  int maxValue = 0;// 用于存放出现最多的次数
    		  for (java.util.Map.Entry<String, Integer> e : entrySet) {
    		   String key = e.getKey();
    		   Integer value = e.getValue();
    		   if(key.equals("a")||key.equals("the")||key.equals("to")||key.equals("and")||key.equals("in")||key.equals("of")||key.equals("our")||key.equals("your")||key.equals("we")||key.equals("is")||key.equals("on")||key.equals("for")||key.equals("that")||key.equals("an")||key.equals("are")) {
    			   value=0;
    		   }
    		   if (value > maxValue) {
    		    maxValue = value;// 这里有自动拆装箱
    		    maxStr = key;
    		   }
    		  }
    		  System.out.println("出现最多的单词是:" + maxStr + "出现了" + maxValue + "次");
    		  return maxStr;
    		 }
    }
    

      User.java

    package com.zzw.entity;
    
    public class User {
          private int uid;
          private String uname;
          private String upwd;
          private String type;
    	public int getUid() {
    		return uid;
    	}
    	public void setUid(int uid) {
    		this.uid = uid;
    	}
    	public String getUname() {
    		return uname;
    	}
    	public void setUname(String uname) {
    		this.uname = uname;
    	}
    	public String getUpwd() {
    		return upwd;
    	}
    	public void setUpwd(String upwd) {
    		this.upwd = upwd;
    	}
    	public String getType() {
    		return type;
    	}
    	public void setType(String type) {
    		this.type = type;
    	}
    	@Override
    	public String toString() {
    		return "User [uid=" + uid + ", uname=" + uname + ", upwd=" + upwd + ", type=" + type + "]";
    	}
    	public User() {
    		super();
    	}
    	public User(String uname, String upwd, String type) {
    		super();
    		this.uname = uname;
    		this.upwd = upwd;
    		this.type = type;
    	}
    	public User(int uid, String uname, String upwd, String type) {
    		super();
    		this.uid = uid;
    		this.uname = uname;
    		this.upwd = upwd;
    		this.type = type;
    	}
    	public User(String uname, String upwd) {
    		super();
    		this.uname = uname;
    		this.upwd = upwd;
    	}
          
    }
    

      UserServicelipl.java

    package com.zzw.service.Impl;
    
    
    
    
    import java.util.List;
    
    
    import com.zzw.dao.IUserDao;
    import com.zzw.dao.Impl.UserDaoImpl;
    import com.zzw.entity.User;
    import com.zzw.service.IUserService;
    
    public class UserServiceImpl implements IUserService{
    	IUserDao userdao= new UserDaoImpl();
    	//登录
    	 public User Login(User user) {
    
    	  	
    	  	return userdao.Login(user.getUname(),user.getUpwd());
    	 }
    	//注册
        public boolean Register(User user) {
      	  boolean flag=false;
      	  if(!userdao.isExist(user.getUname())) {
      		  userdao.Register(user);
      		  flag=true;
      	  }else {
      		  System.out.println("此人已存在");
      	  }
      	 return flag; 
        }
      //根据账号查询用户
        public User Query(String uname) {
      	  return userdao.Query(uname);
        }
        
    }
    

      LoginServlet.java

    package com.zzw.servlet;
    
    import java.io.IOException;
    import javax.servlet.ServletException;
    import javax.servlet.http.HttpServlet;
    import javax.servlet.http.HttpServletRequest;
    import javax.servlet.http.HttpServletResponse;
    
    import com.zzw.entity.User;
    import com.zzw.service.IUserService;
    import com.zzw.service.Impl.UserServiceImpl;
    
    
    public class LoginServlet extends HttpServlet {
    
    	protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
    		request.setCharacterEncoding("utf-8");
    		response.setCharacterEncoding("utf-8");
    		response.setContentType("text/html; charset=utf-8");
    		String name= request.getParameter("uname");
    		String pwd= request.getParameter("upwd");
    		User user = new User(name,pwd);
    		//接口 x=new 实现类()
    		IUserService userservice = new UserServiceImpl();
    		User user2=userservice.Login(user);
    	    String rs=user2.getType();
    	    
    		if(rs.equals("1")) {
    			
    			request.setAttribute("message ","noerror");
    			request.getRequestDispatcher("index1.jsp").forward(request, response);
    		}else if(rs.equals("2"))
    		{
    			request.setAttribute("message","noerror");
    			request.getRequestDispatcher("index.jsp").forward(request, response);
    		}
    		else {
    			request.setAttribute("message","error");
    			request.getRequestDispatcher("login.jsp").forward(request, response);
    		}
    	}
    
    	protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
    		// TODO Auto-generated method stub
    		doGet(request, response);
    	}
    
    }
    

      RegisterServlet.java

    package com.zzw.servlet;
    
    import java.io.IOException;
    import javax.servlet.ServletException;
    import javax.servlet.http.HttpServlet;
    import javax.servlet.http.HttpServletRequest;
    import javax.servlet.http.HttpServletResponse;
    
    import com.zzw.entity.User;
    import com.zzw.service.IUserService;
    import com.zzw.service.Impl.UserServiceImpl;
    
    
    
    
    public class RegisterServlet extends HttpServlet {
    
    	protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
    		request.setCharacterEncoding("utf-8");
    		response.setCharacterEncoding("utf-8");
    		response.setContentType("text/html; charset=utf-8");
    		String name= request.getParameter("uname");
    		String pwd= request.getParameter("upwd");
    		String type= request.getParameter("type");
    		User user = new User(name,pwd,type);
    		//接口 x=new 实现类()
    		IUserService userservice = new UserServiceImpl();
    		boolean result=userservice.Register(user);
    	
    		if(!result) {
    			request.setAttribute("message","error");
    			request.getRequestDispatcher("register.jsp").forward(request, response);
    		}else {
    			request.setAttribute("message","noerror");
    			request.getRequestDispatcher("register.jsp").forward(request, response);
    		}
    	}
    
    	
    	protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
    		// TODO Auto-generated method stub
    		doGet(request, response);
    	}
    
    }
    

      DBUtil.java

    package com.zzw.utils;
    
    import java.sql.Connection;
    import java.sql.DriverManager;
    import java.sql.PreparedStatement;
    import java.sql.ResultSet;
    import java.sql.SQLException;
    import java.util.ArrayList;
    import java.util.List;
    
    
    public class DBUtil {
    	//数据库URL和账号密码
    	public static final String URL="jdbc:mysql://localhost:3306/test?useUnicode=true&characterEncoding=GB18030&useSSL=false&serverTimezone=GMT&allowPublicKeyRetrieval=true";//数据源  !!!!注意若出现加载或者连接数据库失败一般是这里出现问题
    	private static final String UNAME="root";
    			private static final String UPWD="1234";
    			public static PreparedStatement  pstmt=null;
    			public static ResultSet  rs = null;
    			public static Connection  connection=null;
    			
    			
         //增删改
    	 public static boolean executeUpdate(String sql,Object [] params) {
    		 boolean flag = false;
         	try {
         		
         	//a.导入驱动,加载具体的驱动类
         	Class.forName("com.mysql.cj.jdbc.Driver");
         	//b.与数据库建立连接
         	connection = DriverManager.getConnection(URL,UNAME,UPWD);
         	
         	pstmt = connection.prepareStatement(sql);
         	for(int i=0;i<params.length;i++) {
         		pstmt.setObject(i+1, params[i]);
         	}
         	int count=pstmt.executeUpdate();//返回值表示,增删改几条数据
         	//处理结果
         	if(count>0)
         	{
         		System.out.println("操作成功!!!");
         		flag=true;
         	}
         	
         	}catch(ClassNotFoundException e) {
         		e.printStackTrace();
         	}catch(SQLException e) {
         		e.printStackTrace();
         	}catch(Exception e){
         		e.printStackTrace();
         	}finally {
         		try {
         			//先开的后关,后开的先关
         		if(pstmt!=null)pstmt.close();
         		if(connection !=null)connection.close();
         		}catch(SQLException e) {
         			e.printStackTrace();
         		}finally {
         			
         		}
         	}
    		return flag;
    	 }
    	//查
    	 public static ResultSet executeQuery(String sql,Object [] params) {
    		 
    		     	try {
    		     		
    		     	//a.导入驱动,加载具体的驱动类
    		     	Class.forName("com.mysql.cj.jdbc.Driver");
    		     	//b.与数据库建立连接
    		     	connection = DriverManager.getConnection(URL,UNAME,UPWD);
    		     	
    		     	pstmt = connection.prepareStatement(sql);
    		     	if(params!=null) {
    		     	for(int i=0;i<params.length;i++) {
    		     		pstmt.setObject(i+1, params[i]);
    		     	}
    		     	}
    		     	 rs = pstmt.executeQuery();
    		     	 return rs;
    		     	}catch(ClassNotFoundException e) {
    		     		e.printStackTrace();
    		     		return null;
    		     	}catch(SQLException e) {
    		     		e.printStackTrace();
    		     		return null;
    		     	}catch(Exception e){
    		     		e.printStackTrace();
    		     		return null;
    		     	}
    		     
    		}
    }
    

      

  • 相关阅读:
    构建调试Linux内核网络代码的环境MenuOS系统
    stm32内存管理
    STM32CubeMx——ADC多通道采集
    STM32CubeMx——串口使用DMA收发数据
    STM32CubeMx——串口收发
    stm32CubeMx+TrueSTUDIO+uc/os-III移植开发(二)
    stm32CubeMx+TrueSTUDIO+uc/os-III移植开发(一)
    STM32F103RCT6移植到STM32F103C8T6注意事项
    关于STM32F103系列从大容量向中容量移植的若干问题
    KEIL软件中编译时出现的Error L6200E: symbol multiply defined ...的解决方法
  • 原文地址:https://www.cnblogs.com/xk1013/p/13086166.html
Copyright © 2020-2023  润新知