这学期开始学习了J2EE的课程,由于是上课跟着老师一同学习,遇到目前这个问题不是很能解决,希望能有高手能解决,谢谢。并且我再把要求说一下:通过注册页将注册的用户名和信息存放至一个文本文件中,我的本地是d:\\user.txt。登陆的时候可以通过读取文本文件内存放的用户名和密码,相当于一个小型数据库吧,这是通过java的类实现注册与读取的的。而我目前所遇到的问题就是输入存放在文本文件内的任何用户名和密码都读取不了,都显示报错,需要注册和返回,所以我就纳闷了。而我接下来贴出代码,希望各路高手解决。
实现登陆的java类,login.login
package login;
import java.io.*;
public class login {
String name;
String password;
boolean flag;public boolean isFlag() {
return flag;
}public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
public void readNameAndPassword() throws FileNotFoundException,IOException{
String nameandpassword,nap;
nap=name+":"+password; /*此处的name和password来自客户端*/FileReader fr=new FileReader("d:\\user.txt");
BufferedReader br=new BufferedReader(fr);
nameandpassword=br.readLine();
while(nameandpassword != null){
if(nameandpassword.equals(nap))
{flag=true;
break;}
nameandpassword=br.readLine();
}
/*int index;
index=nameandpassword.indexOf(":");
name=nameandpassword.substring(0, index); //从0开始到index结束
password=nameandpassword.substring(index+1); ////从index开始到最后结束*/
fr.close();
br.close();
}
}实现注册的java类,register.java
package register;
import java.io.*;
//import java.io.FileWriter;
//import java.io.IOException;
public class register {
private String name;
private String password;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}public void writeFile() throws IOException {
FileWriter fw;
fw=new FileWriter("d:\\user.txt",true);
fw.write(name+":"+password+"\r\n");
fw.close();
}
} //"\r\n"还有动态的登陆和注册JSP页面
先是rlogin.jsp
<body>
<% String yhm=request.getParameter("yonghu");
String mm=request.getParameter("mima");
%>
<jsp:useBean id="aa" scope="page" class="login.login"></jsp:useBean><%
aa.readNameAndPassword();/*先读取写入的方法*/
aa.setName(yhm);
aa.setPassword(mm);%><%if(aa.isFlag())
{out.print("可登录");
session.setAttribute("Welcome", "Welcome");}
else out.print("请先<a href='../client/register.html'>注册</a>或重新<a href='../index.html'>登录</a>");%>
<a href="../index.html">返回</a></body>最后是rregister.jsp
<body>
<%
request.setCharacterEncoding("utf-8");
String yhm=request.getParameter("user");
String mm=request.getParameter("passw");
out.print(yhm+":"+mm);
%>
<jsp:useBean id="aa" scope="page" class="register.register"></jsp:useBean>
<%
aa.setName(yhm);
aa.setPassword(mm);
aa.writeFile();
%>
</body>
我可以确认的是表单中的名字和动态页面上是一样的,以上代码可能有点多,感谢各路高手能够帮忙啦,谢谢!另附下载地址:http://pan.baidu.com/s/1GG7Lh
然后把你报的错贴出来看下
最后问下,没学过Servlet吗
程序调试的时候没出错,就是功能没实现,因为我之前在注册页面的时候已经将用户名和密码成功注册到指定的文件里了,用这个已经注册好的用户名和密码就是不能登录上去。
Servlet没学过
aa.readNameAndPassword();/*先读取写入的方法*/
aa.setName(yhm);
aa.setPassword(mm);
%>这就导致在执行readNameAndPassword方法的时候,这2个参数总是为null。