简单的txt文档后台解析到前台展示加登录验证功能(2)

OK

  1. 首先我们在eclipse建立一个Dynamic Web project工程
    如图在这里插入图片描述2.在工程下的Java Resources下的src上new上三个包
    再第一个bean里面我们将放上我们的对象模板
    第二个里面我放的是是需要解析的文件
    第三个就是要进行逻辑操作的核心代码
    在这里插入图片描述
    我们首先看一下Student里面的代码

这个代码很简单根据我吗要在前台显示的数据写一个学生类,在自动生成的set和get方法

package com.briup.bean;

public class Student {
     private   String name;
     private   String id;
     private   String sex;
     private   String year;
     private   double pd_score;
     private   double tk_score;
     private   double xz_score;
     private   double jt_score;
     private   double zf_score;
public String getName() {
		return name;
	}
	public void setName(String name) {
		this.name = name;
	}
	public String getId() {
		return id;
	}
	public void setId(String id) {
		this.id = id;
	}
	public String getSex() {
		return sex;
	}
	public void setSex(String sex) {
		this.sex = sex;
	}
	public String getYear() {
		return year;
	}
	public void setYear(String year) {
		this.year = year;
	}
	public double getPd_score() {
		return pd_score;
	}
	public void setPd_score(double pd_score) {
		this.pd_score = pd_score;
	}
	public double getTk_score() {
		return tk_score;
	}
	public void setTk_score(double tk_score) {
		this.tk_score = tk_score;
	}
	public double getXz_score() {
		return xz_score;
	}
	public void setXz_score(double xz_score) {
		this.xz_score = xz_score;
	}
	public double getJt_score() {
		return jt_score;
	}
	public void setJt_score(double jt_score) {
		this.jt_score = jt_score;
	}
	public double getZf_score() {
		return zf_score;
	}
	public void setZf_score(double zf_score) {
		this.zf_score = zf_score;
	}        
}

在life里有两个文件
文件格式如下(应为涉及到隐私问题所以不供全部文件,一下文件信息是我根据文件格式自己捏造的,如有雷同,纯属巧合,如果大家需要使用也可以更具文件格式,自行捏造)

当然如果你有数据,可以在看完之后,在可以自写StudentServlet,解析不同格式的数据
当然如果你有数据,可以在看完之后,在可以自写StudentServlet,解析不同格式的数据
当然如果你有数据,可以在看完之后,在可以自写StudentServlet,解析不同格式的数据

t_score.txt

0009401001	8	8	9	22
0009401002	7	3	10	12
0009401003	3	8	7	5
0009401004	8	10	15	23
0009401005	10	7	11	19
0009401006	5	4	5	10
0009401007	8	5	13	28
0009401008	9	15	15	24

t_student.txt

0009401001	王丹丹	女	2009
0009401002	李卫东	男	2009
0009401003	宋二飞	男	2009
0009401004	陈登峰	男	2009
0009401005	陆飒文	男	2009
0009401006	梁新开	男	2009
0009401007	陈卡凡	女	2009
0009401008	藤原浩	男	2009

下面是StudentServlet里面的内容(每一步,注释很详细,如果有不懂的可以私信我或者是评论)

package com.briup.servlet;

import java.io.BufferedReader;
import java.io.File;
import java.io.FileReader;
import java.io.IOException;
import java.io.Reader;
import java.util.ArrayList;
import java.util.Collections;
import java.util.Comparator;
import java.util.List;

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 com.briup.bean.Student;


@WebServlet("/stu")      //很重要!!!标识前台动作时执行的地方
public class StudentServlet extends HttpServlet {
	 protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		  
		
    	 List<Student> list=new ArrayList<Student>();          //创建一个学生类型的List列表
    		
         File file_t_score=new File("D://Java_Basic//Shixun//School//src//com//briup//file//t_score.txt");//创建一个文件对象指向file_t_score
 		
 		File file_t_student=new File("D://Java_Basic//Shixun//School//src//com//briup//file//t_student.txt");//创建一个文件对象指向file_t_student
 			
//==================================================解析file_t_score文开始位置
 		if(file_t_score.exists()) {                 //判断文件是否还有信息
 			System.out.println("file_t_score开始解析");//为了后台更好的看到程序运行的过程
 			
 			Reader in1=new FileReader(file_t_score);//创建一个输出流对象
 			
 			BufferedReader b1=new BufferedReader(in1);//把这个用工具类BufferedReader包装起来,以便于可以使用读一行和一直读完的功能
 		
 			//解析第一个分数文件,并将信息加入Student列表
 			while(b1.ready()) {                    //一直读完
 				Student stu=new Student();         //创建一个学生对象
 				String[] s=b1.readLine().split("\t");//使用b1读一行,并且以制表符“/t”分隔开来,赋给字符数组s
 				
 						stu.setId(s[0]);                          //第一个数组为ID
 						stu.setXz_score(Double.parseDouble(s[1]));//第二个数组为选择题分数,将String转换为double形
 						stu.setTk_score(Double.parseDouble(s[2]));//第三个数组为填空题分数,将String转换为double形
 						stu.setPd_score(Double.parseDouble(s[3]));//第四个数组为判断题分数,将String转换为double形
 						stu.setJt_score(Double.parseDouble(s[4]));//第五个数组为判断题分数,将String转换为double形
 						                                          //将四个相加为总分
 						stu.setZf_score(Double.parseDouble(s[1])+Double.parseDouble(s[2])+Double.parseDouble(s[3])+Double.parseDouble(s[4]));
 					list.add(stu);                                 //将这个对象添加到创建的list列表中	
 			}	
 			System.out.println("file_t_score解析完成");//为了后台更好的看到程序运行的过程
 		}else {
 			System.out.println("file_t_score路径错误");//为了后台更好的看到程序运行的过程
 		} 	
//============================================解析file_t_score文结束位置
 		
 		
 		
//=========================解析第二个分数文件,并将姓名,和性别,与学号匹配后信息加入Student列表开始
         if(file_t_student.exists()) {                   //判断file_t_student文件是否存在
         	System.out.println("file_t_student开始解析");  //为了后台更好的看到程序运行的过程
             Reader in2=new FileReader(file_t_student);	 //创建一个输出流
 			BufferedReader b2=new BufferedReader(in2);   //把这个用工具类BufferedReader包装起来,以便于可以使用读一行和一直读完的功能
 			while(b2.ready()) {                          //读完
 				String[] s2=b2.readLine().split("\t");   //使用b2读一行,并且以制表符“/t”分隔开来,赋给字符数组s2
 				for(int i = 0 ; i < list.size() ; i++) { //找到ID所对应的名字和性别
 					if(s2[0].equals(list.get(i).getId())) {//网站list列表中student对象的信息
 						list.get(i).setName(s2[1]);      
 						list.get(i).setSex(s2[2]);	    					
 					}					
 				}
 			}	    	
         	System.out.println("file_t_student解析完成");//为了后台更好的看到程序运行的过程
 		}else {
 			System.out.println("file_t_student路径错误");//为了后台更好的看到程序运行的过程
 		}
         System.out.println("============================");//为了后台更好的看到程序运行的过程
//========================解析第二个分数文件,并将姓名,和性别,与学号匹配后信息加入Student列表结束 
         
         
         
//============================================按照学号进行排序开始位置
       //将list中的元素按学号进行排序
         Collections.sort(list, new Comparator<Student>(){
             
             public int compare( Student s1, Student s2) {
                 //按照学号进行升序排列
                 if(s1.getId().compareTo(s2.getId())>0){
                     return 1;
                 }else {
                 	return -1;
                 }
             }
         }
             );
//==============================================按照学号进行排序结束位置
         
         
         
         
  //============================================登陆功能的验证开始位置
         request.setAttribute("list", list);         //
         int a;                                      //为了验证ID是否存在的变量
         String name;                                //将得到的ID在数据查找,若存在则将此ID保存在name中,在将他传递给前台
         String id=request.getParameter("name");     //从前台获取到的账号ID
		 String pass=request.getParameter("pass");   //从前台获取到的账号密码
			request.setCharacterEncoding("UTF-8");   //将编码设为UTF-8
			response.setCharacterEncoding("UTF-8");
			
         for(a=0;a<list.size();a++) {               //遍历list集合
        	 
        	 if(list.get(a).getId().equals(id)&&"123".equals(pass)) {   //判断是否存在前台传过来的ID
        		 name=list.get(a).getName();                         //将ID所对应的名字保存
        		 request.setAttribute("msg",name+"登录成功");           //将名字和登录成功信息传递给前台
        		                                                       //将名字和登录欢迎信息传递给前台
            	 request.setAttribute("msg1","=============================================="+name+"欢迎您==========================");
            	
           		request.getRequestDispatcher("/emp/empList.jsp").forward(request, response);//跳转到emp下前台的empList.jsp界面
         	    		break;      	                           //已经找到跳出遍历	 
        	 }
         }
         if(a==list.size()) {                         //如果没有找到,那么a就会等于list.size()
        	 request.setAttribute("msg","用户名或密码错误");//将用户名或密码错误信息传递给前台
        	 request.getRequestDispatcher("login.jsp").forward(request, response);//跳转登录界面
         }
 //==================================================登陆功能的验证结束位置
              			
 	}
	
 	protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { 	
 		doGet(request, response);   //应为目的相同所以doPose和doGet功能相同
 	}
    	
}

在简单的txt文档后台解析到前台展示加登录验证功能(3)我将提供前端的代码

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值