基于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="登录"/>
</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;
}
}