一、首先准备好eclipse开发工具以及mysql,及其jar包,jar含mysql-jdbc,logging等

项目的源码在:点击打开链接

二、搭建项目

三、创建数据库以及表

 3.1、创建数据库

3.2、创建user表

CREATE TABLE `user` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `username` varchar(20) COLLATE utf8_bin NOT NULL,
  `password` varchar(20) COLLATE utf8_bin DEFAULT NULL,
  PRIMARY KEY (`id`,`username`)
) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8 COLLATE=utf8_bin四
四、编写Java代码

4.1、创建User.java类

package com.yd.entity;
/**
 * 用户的实体类
 * @author john
 * @Date 2018年2月2日
 * @company yd
 */
public class User{
	private int id;
	private String username;
	private String password;
	public int getId() {
		return id;
	}
	public void setId(int id) {
		this.id = id;
	}
	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;
	}
	@Override
	public String toString() {
		return "User [id=" + id + ", username=" + username + ", password=" + password + "]";
	}
}

4.2、创建LoginServlet.java类

package com.yd.servlet;

import java.io.IOException;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;

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 javax.servlet.http.HttpSession;

import com.yd.entity.User;
import com.yd.utils.UserDao;
/**
 * login验证servlet类
 * @author 2017
 * @Date 2018年2月2日
 * @company yd
 */
@WebServlet("/LoginServlet")
public class LoginServlet extends HttpServlet {
private static final long serialVersionUID = 1L;@SuppressWarnings("unused")protected void doGet(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException {doPost(request, response);}protected void doPost(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException {/* * 这是不连数据库,判断账号的存在登录进行简单的登陆/计算 * String username = request.getParameter("username"); String password = * request.getParameter("password"); String s1 = "admin"; String s2 = * "123"; * * if(username.equals(s1) && password.equals(s2)){ Cookie cookie = new * Cookie("remeberName", username); cookie.setMaxAge(60*60*24); * response.addCookie(cookie); * * HttpSession session = request.getSession(); * session.setAttribute("username",username); * //response.sendRedirect("/MyWeb_04/successful.jsp"); * request.getRequestDispatcher("/successful.jsp").forward(request, * response); * * }else{ request.setAttribute("error", "您的账号和密码不匹配,请重新输入"); * request.getRequestDispatcher("/login.jsp").forward(request, * response); } *///通过连接数据库的账户,判断账号的存在登录进行简单的登陆/计算String username = request.getParameter("username");String password = request.getParameter("password");//System.out.println(username + password);// 创建对象UserDao userdao = new UserDao();User user = UserDao.login(username, password);if (user != null) {HttpSession session = request.getSession();session.setAttribute("username", username);// response.sendRedirect("/MyWeb_04/successful.jsp");request.getRequestDispatcher("/successful.jsp").forward(request, response);} else {request.setAttribute("error", "您的账号和密码不匹配,请重新输入");request.getRequestDispatcher("/login.jsp").forward(request, response);}}}


4.3、创建CalcServlet.java类

package com.yd.servlet;

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

/**
 * 计算calc的servlet类
 * @author 2017
 * @Date 2018年2月2日
 * @company yd
 */
@WebServlet("/CalcServlet")
public class CalcServlet extends HttpServlet {
	private static final long serialVersionUID = 1L;
   
	protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		doPost(request, response);
	
	}

	protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
	
		String num1 = request.getParameter("num1");
		String num2 = request.getParameter("num2");
		int n1 = Integer.parseInt(num1);
		int n2 = Integer.parseInt(num2);
		int sum = n1*n2;
		
		
		request.setAttribute("sum", sum);
		request.getRequestDispatcher("/result.jsp").forward(request, response);
//		response.sendRedirect("/MyWeb_04/result.jsp");
	}

}


4.4、创建UserDao.java工具类

package com.yd.utils;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;

import com.yd.entity.User;
/**
 * 连接数据类
 * @author 2017
 * @Date 2018年2月2日
 * @company yd
 */
public class UserDao {
	 private static User user =null;
	 private static Connection conn =null;
	public static User login(String username, String password) {
		try {
			Class.forName("com.mysql.jdbc.Driver");
			conn = DriverManager.getConnection(//
					"jdbc:mysql://127.0.0.1:3306/users", "root", "123");
			String sql =" select * from user where username = ? and password = ? ";
			
			PreparedStatement ps = conn.prepareStatement(sql);
			ps.setString(1, username);
			ps.setString(2, password);
			ResultSet rs = ps.executeQuery();
			while(rs.next()){
				user = new User();
				user.setUsername(rs.getString("username"));
				user.setPassword(rs.getString("password"));
			}
			conn.close();
			ps.close();
		} catch (SQLException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		} catch (ClassNotFoundException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		return user;
	}
	/*public static void main(String[] args) {
		User login = login("admin","123");
		System.out.println(login);
	}*/
}


五、创建jsp页面

5.1、创建login.jsp页面
<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
    
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>登录页面</title>
		<style type="text/css">
			#span{
				color:red;
				font-wight:bold;
			}	
		</style>
</head>
<body>
	<%
		String message = "";
		String error = (String) request.getAttribute("error");
		if(message != null){
			message = error;
		}
	%>
	<span id="msg"><%=message %></span>
<%-- 	<%
		/*
			客户端下一次再访问login.jsp的时候就会带着这个Cookie,我们可以在login.jsp中获取这个Cookie
			 * 如果这个Cookie中存在我们防止的Cookie,那么就设置到用户名的输入框
		*/
		String rememberName = "";
		Cookie[] cookies = request.getCookies();
		if(cookies != null){
			for(Cookie c : cookies){
				if("remeberName".equals(c.getName())){
					rememberName = c.getValue();
				}
			}
		}
	%> --%>
	<form action="/MyWeb_04/LoginServlet" method="post">
		用 户:<input type="text" name="username" /><br/>
		密 码:<input type="password" name="password" /><br/>
		    <input type="submit" value="登录" />
	</form>
	
</body>
</html>


5.2、创建success.jsp页面

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>登录成功页面</title>
</head>
<body>
	<%
 	String username =(String)session.getAttribute("username");
	if(username == null){
		request.setAttribute("error", "您还未登录,登录后再来吧!");
		request.getRequestDispatcher("/login.jsp").forward(request, response);
		return;
	}
	%>
	欢迎用户<%=username %>到来
	
	<form action="/MyWeb_04/CalcServlet" method="post">
	请输入数值:<input type="text" name="num1" /><br/>
	请输入数值:<input type="text" name="num2" /><br/>
			<input type="submit" value="计算" />
	</form>		
</body>
</html>



5.3、创建result.jsp页面

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>计算结果页面</title>
</head>
<body>
	<%
 	String username =(String)session.getAttribute("username");
	if(username == null){
		request.setAttribute("error", "您还未登录,登录后再来吧!");
		request.getRequestDispatcher("/login.jsp").forward(request, response);
		return;
	}
	%>
	欢迎用户<%=username %>到来<br/>
	<%
	 Integer sum = (Integer)request.getAttribute("sum");
	%>
	计算的结果为:<%=sum %>
</body>
</html>




六、运行的结果图。




总结:

servlet实现用户登录功能,以及一个计算功能,及连接mysql数据库


仅供参考,有问题可以提出。

jar包的下载路径链接:https://pan.baidu.com/s/1kWfVxT9 密码:5xac



Logo

更多推荐