Servlet写一个web登录验证程序

这是上课的一个小作业,在此简单总结一下:

  1. 随便验证了下,只要是密码为123456的就可以登录成功,如果想做得复杂,可以用文件读写或者数据库技术等
  2. 这个作业我自己是分三步做得:首先要有一个登录的网页(html或jsp文件),直接叫index.html/index.jsp即可,需要放在WEB-CONTENT目录下,运行时在工程名字右键run as ——run on server 即可。
  3. 我设置的登录页面使用的表单提交方式,即post,需要注意的就是action中的路径要加上/项目名字
  4. 其次要有一个user类,用于简单地判断是否登录成功,由于本程序非常简单,其实可以没有这个类,直接在Servlet对应的java文件中处理逻辑即可,但是我觉得能抽象出来就很好了
  5. 关键:action中的servlet映射地址对应的文件,要在这里面处理。其实也非常简单,只需要建立一个Servlet类(extands HTTPServlet),重写doPost方法即可(看你index中的提交方式,如果是GET重写doGet)。这里面的关键就是可以用request.getParameter("username");获得表单中name为username的输入值。
  6. 其他需要注意的就是servlet的配置和发布,这个都有自动化的方式了,很简单

非常简单的小程序如下:

index.html

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
<form action="/ServletHomework1/LoginServlet"><!--注意这里双引号的内容是处理它的servlet映射地址,也即servlet中@webservlet相同-->
用户名:<input type="text" name="username"><br/> 
密码:<input type="password" name="password"><br/>
<input type="submit" value="提交">
</form>
</body>
</html>

user.java

package javaee.servlet;

public class user {
	String username;
	String password;
	user(){};
	public String getUsername() {
		return username;
	}
	public void setUsername(String username) {
		this.username = username;
	}
	public String getPassword() {
		return password;
	}
	public void setPassword(String password) {
		this.password = password;
	}
	public boolean isUser(){
		if(password.equals("123456")){
			return true;
		}
		return false;
	}
}

LoginServlet.java

package javaee.servlet;

import java.io.IOException;
import java.io.PrintWriter;

import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

/**
 * Servlet implementation class LoginServlet
 */
@WebServlet("/LoginServlet")
public class LoginServlet extends HttpServlet {
	private static final long serialVersionUID = 1L;
       
    /**
     * @see HttpServlet#HttpServlet()
     */
    public LoginServlet() {
        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
		this.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=GB2312");
		PrintWriter out=response.getWriter();
		user u=new user();
		String username=request.getParameter("username");
		String password=request.getParameter("password");
		u.setPassword(password);
		u.setUsername(username);
		if(u.isUser()){
			out.write(username+"登录成功!\r\n");
		}
		else{
			out.write(username+"登录失败!密码不正确\r\n");
		}
	}

}

还有,本文参考了如下几篇文章得到的,非常感谢。

  1. https://blog.csdn.net/yogima/article/details/80754668#1写一个java文件实体类用于储存表单数据
  2. https://blog.csdn.net/h14525544/article/details/78595514
  3. https://blog.csdn.net/zeephom/article/details/79609999
  4. https://blog.csdn.net/djfdbmbj/article/details/51762150

另外,上面来源的搜索关键词是“Servlet获取表单信息”

猜你喜欢

转载自blog.csdn.net/qq_38941327/article/details/88725873