JavaSE02_Day05(下)-WebServer项目(十一、十二):完善WebServer登录业务、重构响应页面逻辑代码
1.1 版本十一:登录业务
实现步骤:
1.在webapps/myweb目录下创建三个页面login.html 需要设置form表单中的action="./login", method="get" 以及两个输入框(用户名和密码)
login_success.html 登录成功以后的提示的页面:
login_fail.html登录失败提示的页面:
注意:form表单中的action属性中的提交业务路径可以不加./
2.在servlets包中添加LoginServlet.java,并定义好对应的service方法
(1)通过request对象获取用户名及其密码
package cn.tedu.servlets;
import java.io.File;
import java.io.RandomAccessFile;
import cn.tedu.http.HttpRequest;
import cn.tedu.http.HttpResponse;
/**
* 处理用户登录业务逻辑的类
* @author cjn
*
*/
public class LoginServlet {
/**
* 该方法用于处理登录的业务逻辑
* @param request
* @param response
*/
public void service(HttpRequest request,HttpResponse response) {
//1.获取用户进行登录时添写登录信息
String userName = request.getParamters("username");
String password = request.getParamters("password");
System.out.println("用户名:" + userName + ",密码:" + password);
//2.将user.txt文件中存储的用户和当前需要进行登录的用户做一个比对工作
try (RandomAccessFile raf = new RandomAccessFile("user.txt", "rw")){
//遍历所有用户
for (int i = 0; i < raf.length()/100; i++) {
raf.seek(i * 100);
//读取存储在user.txt文件中用户的用户名
byte[] data = new byte[32];
raf.read(data);
String name = new String(data, "utf-8").trim();
if (name.equals(userName)) {
/*
* 如果用户名一致,证明登录的用户是已经注册过的用户,
* 然后需要再进行比对密码是否一致
*/
//取出存储在user.txt文件中该用户的密码
raf.read(data);