目录

1.实体层:com.java.model;

2.工具类:com.java.util;

3.数据访问层:com.java.dao;

4.响应层com.java.web;

5. 登录页面login.jsp;

6.主页面mian.jsp;


现在数据库里建个t_user表:

nickName:昵称       imageName:图片名称          mood:心情

1.实体层:com.java.model;

package com.java.model;public class User {private int userId;private String userName;private String passWord;private String nickName;  //用户昵称private String imageName;  //图片名称private String mood;  //心情public User() {super();// TODO Auto-generated constructor stub}public User(String userName, String passWord) {super();this.userName = userName;this.passWord = passWord;}public int getUserId() {return userId;}public void setUserId(int userId) {this.userId = userId;}public String getNickName() {return nickName;}public void setNickName(String nickName) {this.nickName = nickName;}public String getImageName() {return imageName;}public void setImageName(String imageName) {this.imageName = imageName;}public String getMood() {return mood;}public void setMood(String mood) {this.mood = mood;}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;}}

2.工具类:com.java.util;

package com.java.util;import java.sql.Connection;
import java.sql.DriverManager;public class DbUtil {private String dbUrl="jdbc:mysql://localhost:3306/db_diary?useSSL=false";private String dbUserName="root";private String dbPassWord="123456";private String jdbcName="com.mysql.jdbc.Driver";public Connection getCon() throws Exception{Class.forName(jdbcName);Connection con=DriverManager.getConnection(dbUrl, dbUserName, dbPassWord);return con;}public void closeCon(Connection con) throws Exception{if(con!=null){con.close();}}public static void main(String[] args) {DbUtil dbUtil=new DbUtil();try {dbUtil.getCon();System.out.println("数据库连接成功!");} catch (Exception e) {// TODO Auto-generated catch blocke.printStackTrace();System.out.println("数据库连接失败!");}}
}

3.数据访问层:com.java.dao;

package com.java.dao;import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;import com.java.model.User;public class UserDao {public User login(Connection con,User user) throws Exception{User resultUser=null;String sql="select * from t_user where userName=? and passWord=?";PreparedStatement pstmt=con.prepareStatement(sql);pstmt.setString(1, user.getUserName());pstmt.setString(2, user.getPassWord());ResultSet rs=pstmt.executeQuery();if(rs.next()){resultUser=new User();resultUser.setUserId(rs.getInt("userId"));resultUser.setUserName(rs.getString("userName"));resultUser.setPassWord(rs.getString("passWord"));}return resultUser;}
}

4.响应层com.java.web;

package com.java.web;import java.io.IOException;
import java.sql.Connection;
import java.sql.SQLException;import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;import com.java.dao.UserDao;
import com.java.model.User;
import com.java.util.DbUtil;public class LoginServlet extends HttpServlet{/*** */private static final long serialVersionUID = 1L;private DbUtil dbUtil=new DbUtil();private UserDao userDao=new UserDao();@Overrideprotected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {this.doPost(request, response);}@Overrideprotected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {String name=request.getParameter("userName");String password=request.getParameter("passWord");Connection con=null;try {con=dbUtil.getCon();User user=new User(name,password);User currentUser=userDao.login(con, user);if(currentUser==null){//将用户填写的错误信息返回,显示给用户看request.setAttribute("user", user);request.setAttribute("error", "用户名或密码错误!");//服务器内部转发request.getRequestDispatcher("login.jsp").forward(request, response);}else{//将获取到的数据存放到session中HttpSession session=request.getSession();session.setAttribute("currentUser", currentUser);//客户端重定向到主页面response.sendRedirect("main.jsp");}} catch (Exception e) {// TODO Auto-generated catch blocke.printStackTrace();} finally{try {con.close();} catch (SQLException e) {// TODO Auto-generated catch blocke.printStackTrace();}}}}

5. 登录页面login.jsp;

<%@ page language="java" contentType="text/html; charset=utf-8"pageEncoding="utf-8"%><html lang="zh">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>个人日记本登录</title>
<link href="${pageContext.request.contextPath}/bootstrap/css/bootstrap.css" rel="stylesheet">
<link href="${pageContext.request.contextPath}/bootstrap/css/bootstrap-responsive.css" rel="stylesheet">
<script src="${pageContext.request.contextPath}/bootstrap/js/jQuery.js"></script>
<script src="${pageContext.request.contextPath}/bootstrap/js/bootstrap.js"></script>
<style type="text/css">body {padding-top: 200px;padding-bottom: 40px;background-image: url('images/star.gif');}.form-signin-heading{text-align: center;}.form-signin {max-width: 300px;padding: 19px 29px 0px;margin: 0 auto 20px;background-color: #fff;border: 1px solid #e5e5e5;-webkit-border-radius: 5px;-moz-border-radius: 5px;border-radius: 5px;-webkit-box-shadow: 0 1px 2px rgba(0,0,0,.05);-moz-box-shadow: 0 1px 2px rgba(0,0,0,.05);box-shadow: 0 1px 2px rgba(0,0,0,.05);}.form-signin .form-signin-heading,.form-signin .checkbox {margin-bottom: 10px;}.form-signin input[type="text"],.form-signin input[type="password"] {font-size: 16px;height: auto;margin-bottom: 15px;padding: 7px 9px;}
</style>
<script type="text/javascript">function checkForm(){var userName=document.getElementById("userName").value;var passWord=document.getElementById("passWord").value;if(userName==null||userName==""){document.getElementById("error").innerHTML="用户名不能为空!";return false;}if(passWord==null||passWord==""){document.getElementById("error").innerHTML="密码不能为空!";return false;}return true;}
</script>
</head>
<body>
<div class="container"><form name="myForm" class="form-signin" action="login" method="post" onsubmit="checkForm()"><h2 class="form-signin-heading">日记本系统</h2><input id="userName" name="userName" value="${user.userName }" type="text" class="input-block-level" placeholder="姓名..."><input id="passWord" name="passWord" value="${user.passWord }"  type="password" class="input-block-level" placeholder="密码..." ><label class="checkbox"><input id="remember" name="remember" type="checkbox" value="remember-me">记住我 &nbsp;&nbsp;&nbsp;&nbsp; <font id="error" color="red">${error }</font>  </label><button class="btn btn-large btn-primary" type="submit">登录</button>&nbsp;&nbsp;&nbsp;&nbsp;<button class="btn btn-large btn-primary" type="button" >重置</button><p align="center" style="padding-top: 15px;">版权所有  2019 Colin </p></form>
</div>
</body>
</html>

注意:这里要引入Bootstrap包还有项目所用到的素材图片;

6.主页面mian.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>Insert title here</title>
</head>
<body>
<h1>main</h1>
</body>
</html>

Diary(一)——登录功能(上)相关推荐

  1. Vue前端项目-登录组件-登录功能(上)

    目录 1.表单数据绑定和校验 1.1 登录表单属性绑定 1.2 添加数据校验规则 2.登录 2.1 绑定 登录 点击事件 2.2 Cookie 的安装与使用 2.3 编码.解码 2.4.cookie ...

  2. 渗透测试服务对某客户网站的登录功能进行检测

    从业渗透测试服务已经有十几年了,在对客户网站进行漏洞检测,安全渗透时,尤其网站用户登录功能上发现的漏洞很多,想总结一下在渗透测试过程中,网站登录功能上都存在哪些网站安全隐患,下面就有请我们SINE安全 ...

  3. [转]你会做Web上的用户登录功能吗?

    Web上的用户登录功能应该是最基本的功能了,可是在我看过一些站点的用户登录功能后,我觉得很有必要写一篇文章教大家怎么来做用户登录功能.下面的文章告诉大家这个功能可能并没有你所想像的那么简单,这是一个关 ...

  4. springboot文件上传下载实战 —— 登录功能、展示所有文件

    springboot文件上传下载实战 创建项目 pom.xml 数据库建表与环境准备 建表SQL 配置文件 application.properties 整体架构 前端页面 登录页面 login.ht ...

  5. “嗨聊SPACE”项目测试:利用Selenium+Firefox自动化测试对用户注册、登录、上下线提示功能以及页面之间的跳转进行测试(python脚本编写)

    测试登录功能 # -*- coding: utf-8 -*- from selenium import webdriver from selenium.webdriver.common.by impo ...

  6. 实现Web上的用户登录功能

    https://coolshell.cn/articles/5353.html Web上的用户登录功能应该是最基本的功能了,可是在我看过一些站点的用户登录功能后,我觉得很有必要写一篇文章教大家怎么来做 ...

  7. Diary(一)——登录功能(下)

    目录 1.用Properties文件连接数据库: 2.用MD5对数据库密码进行加密: 3.记录Cookie和取Cookie操作: 上一节介绍了基本的登录功能,这一节我们来完善一下登录功能的其他特性. ...

  8. Web上的用户登录功能安全

    转载自:http://www.daimami.com/web/217218.htm 你会做Web上的用户登录功能吗? Web上的用户登录功能应该是最基本的功能了,可是在我看过一些站点的用户登录功能后, ...

  9. 记录--uniapp上如何实现安卓app微信登录功能(操作流程总结)

    这里给大家分享我在网上总结出来的一些知识,希望对大家有所帮助 uniapp上如何实现安卓app微信登录功能?下面本篇文章给大家分享一下uniapp上实现安卓app微信登录的权限申请.开发的具体操作流程 ...

  10. web上的用户登录功能

    Web上的用户登录功能应该是最基本的功能了,可是在我看过一些站点的用户登录功能后,我觉得很有必要写一篇文章教大家怎么来做用户登录功能.下面 的文章告诉大家这个功能可能并没有你所想像的那么简单,这是一个 ...

最新文章

  1. [转]Introduction of iSCSI Target in Windows Server 2012
  2. python init文件作用___init__.py 文件的作用
  3. PyQt5 技术篇 - 按钮隐藏并保留位置,pyqt5设置按钮的可见度,设置按钮透明度
  4. WCF学习笔记之可靠会话
  5. 4月11日 GCD 总结(二)
  6. Modbus协议栈应用实例之五:Modbus ASCII主站应用
  7. EasyInvoice 简介
  8. python 中空NULL的表示
  9. windows DNS服务器的配置
  10. JavaSE基础——反射
  11. 8片74151扩展为64选1数据选择器
  12. 手把手教你用Python创建SQL数据库~
  13. 数据库复习(四)Redis
  14. c语言log库,Log4g
  15. C语言进阶——函数指针
  16. 我把视频变成链接_如何把长链接变成短链接?3个工具帮你实现
  17. 晶体管与场效应管的区别
  18. 「聚变」前端 客户端 | 第十七届 D2 终端技术大会,开放报名!
  19. 计算机中常见的信息存储格式,信息保存在计算机中的基本形式是什么?
  20. 【Electron】Electron开发入门(五):项目打包

热门文章

  1. Python的import
  2. “从零到一“基于Freeswitch二次开发:Freeswitch入门与网络架构 (一)
  3. 华为云弹性云服务器有哪些优势?
  4. JQuery是什么?怎么使用JQ?
  5. 前端开发需要学什么?
  6. SQL SERVER 查看所有存储过程或视图里包含某个关键字的查询语句
  7. Android第三方登录——QQ
  8. pyecharts折线图上symbol(小圆圈)颜色的修改方法
  9. 模板模式template
  10. 递归——自己调用自己的特殊形式