Servlet实验---1.基于HTML+Servlet开发一个小型的管理学生信息的Web系统,要求:1)服务器端使用文件保存所有的学生信息,包括:学号、姓名、性别、所在学院、系统密码;2)提供学生登

基于HTML+Servlet开发一个小型的管理学生信息的Web系统,要求:1)服务器端使用文件保存所有的学生信息,包括:学号、姓名、性别、所在学院、系统密码;2)提供学生登录的界面,可以获取客户端发送的学生学号和密码,并判断学号和密码是否正确,并最终在浏览器中打印是否验证通过的信息提示:如果学号和密码输入正确,则显示学生的学号、姓名、性别、所在学院,否则提示用户名、密码有误。

 

跨年写的。。。(2019.1.1.00.00.04)

 

思路:

这个还是挺有意思的,我们根据他的要求逐个分析一下

1:保存的话数据库没学过,那就用最简单的文本文件就好(记事本),保存到项目文件下

这里我就拿我们宿舍的小伙伴以及最帅的java老师(平时成绩给高点呗。。。)举个例子

补充一句,记事本里的两个属性之间的空格千万别打多的,否则后果很严重

2:

要求二就是得写一个登录界面(html),然后传给一个servlet处理,此外还需要一个用户实体类(有点类似javabean,我也不知道算不算。。。)

登录界面没啥可说的

servlet处理要说一下,因为你的数据都存在记事本里,这里要比对的话肯定要读取文件,所以要用java,io流的Bufferreader读取

,然后判断匹配与否就好,可以在用户实体类里写个judge方法就好

此外,因为输入肯定不需要输出密码,那么就要重写用户实体类里的toString方法

 

答案:

项目文件结构图

login.html

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
  <form action="judgeservlet" name="RegForm" method="post">
    <table>
      <tr>
        <td class="label">学生学号:</td>
        <td class="control"><input type="text" name="no"/>
      </tr>
      <tr>
        <td class="label">密码:</td>
        <td class="control"><input type="password" name="password"/>
      </tr>
      <tr>
        <td colspan="2" align="center">
          <input type="submit" value="登录"/>&nbsp;&nbsp;
      </tr>
      
    </table>
  </form>
</body>
</html>

judgeservlet.java(servlet)

package servlet;

import java.io.BufferedReader;
import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.PrintWriter;
import java.util.ArrayList;
import java.util.LinkedList;
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 entity.Student;

/**
 * Servlet implementation class judgeservlet
 */
@WebServlet(asyncSupported = true, urlPatterns = { "/judgeservlet" })
public class judgeservlet extends HttpServlet {
       
    /**
	 * 
	 */
	private static final long serialVersionUID = 1L;

	/**
     * @see HttpServlet#HttpServlet()
     */
    public judgeservlet() {
        super();
        // TODO Auto-generated constructor stub
    }

	/**
	 * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
	 */
	protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		// TODO Auto-generated method stub
		doPost(request,response);
	}

	/**
	 * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
	 */
	protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		// TODO Auto-generated method stub
		response.setContentType("text/html;charset=utf-8");
		PrintWriter out = response.getWriter();
		String no = "";
		String password = "";
		try {
			//读取文件
			LinkedList<Student> as = new LinkedList<Student>();
			//List<Student> as = new ArrayList<Student>();
			BufferedReader br = new BufferedReader(new InputStreamReader(new FileInputStream(new File("F:\\java代码文件\\java作业\\StudentManageSystem\\学生管理系统.txt"))));
			String s;
			while((s = br.readLine())!=null){
				String[] ts = s.split(" ");
				Student stu = new Student(ts[0],ts[1],ts[2],ts[3],ts[4]);
				as.add(stu);
			}
			//接收表单
			no = request.getParameter("no");
			password = request.getParameter("password");
			//student.setNo(no);
			//student.setPassword(password);
			//request.getSession().setAttribute("regStudent", student);
			//判断是否匹配
			int flag = 0;
			for(int i = 0;i<as.size();i++) {
				if(as.get(i).judge(no, password)) {
					out.println(as.get(i));
					flag = 1;
					break;
				}
			}
			//out.print(as.get(0));
			if(flag==0) {
				out.print("用户名密码输入不正确");
			}
			br.close();
		}
		catch(Exception ex)
		{
			ex.printStackTrace();
		}
	}

}

Student.java

package entity;


public class Student {
	public String no;//学号
	public String name;//姓名
	public String gender;//性别
	public String college;//学院
	public String password;//密码
	public Student()
	{
		
	}
	
	public Student(String no, String name, String gender, String college, String password) {
		super();
		this.no = no;
		this.name = name;
		this.gender = gender;
		this.college = college;
		this.password = password;
	}
	public String toString()
	{
		return ("学号:"+this.no+"姓名:"+this.name+" 性别:"+this.gender+" 学院:"+this.college);
	}
	public boolean judge(String no,String password) {
		if(this.no.equals(no)&&this.password.equals(password))
			return true;
		else
			return false;
	}
	
    
}

 

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值