Diary(一)——登录功能(上)
目录
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">记住我 <font id="error" color="red">${error }</font> </label><button class="btn btn-large btn-primary" type="submit">登录</button> <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(一)——登录功能(上)相关推荐
- Vue前端项目-登录组件-登录功能(上)
目录 1.表单数据绑定和校验 1.1 登录表单属性绑定 1.2 添加数据校验规则 2.登录 2.1 绑定 登录 点击事件 2.2 Cookie 的安装与使用 2.3 编码.解码 2.4.cookie ...
- 渗透测试服务对某客户网站的登录功能进行检测
从业渗透测试服务已经有十几年了,在对客户网站进行漏洞检测,安全渗透时,尤其网站用户登录功能上发现的漏洞很多,想总结一下在渗透测试过程中,网站登录功能上都存在哪些网站安全隐患,下面就有请我们SINE安全 ...
- [转]你会做Web上的用户登录功能吗?
Web上的用户登录功能应该是最基本的功能了,可是在我看过一些站点的用户登录功能后,我觉得很有必要写一篇文章教大家怎么来做用户登录功能.下面的文章告诉大家这个功能可能并没有你所想像的那么简单,这是一个关 ...
- springboot文件上传下载实战 —— 登录功能、展示所有文件
springboot文件上传下载实战 创建项目 pom.xml 数据库建表与环境准备 建表SQL 配置文件 application.properties 整体架构 前端页面 登录页面 login.ht ...
- “嗨聊SPACE”项目测试:利用Selenium+Firefox自动化测试对用户注册、登录、上下线提示功能以及页面之间的跳转进行测试(python脚本编写)
测试登录功能 # -*- coding: utf-8 -*- from selenium import webdriver from selenium.webdriver.common.by impo ...
- 实现Web上的用户登录功能
https://coolshell.cn/articles/5353.html Web上的用户登录功能应该是最基本的功能了,可是在我看过一些站点的用户登录功能后,我觉得很有必要写一篇文章教大家怎么来做 ...
- Diary(一)——登录功能(下)
目录 1.用Properties文件连接数据库: 2.用MD5对数据库密码进行加密: 3.记录Cookie和取Cookie操作: 上一节介绍了基本的登录功能,这一节我们来完善一下登录功能的其他特性. ...
- Web上的用户登录功能安全
转载自:http://www.daimami.com/web/217218.htm 你会做Web上的用户登录功能吗? Web上的用户登录功能应该是最基本的功能了,可是在我看过一些站点的用户登录功能后, ...
- 记录--uniapp上如何实现安卓app微信登录功能(操作流程总结)
这里给大家分享我在网上总结出来的一些知识,希望对大家有所帮助 uniapp上如何实现安卓app微信登录功能?下面本篇文章给大家分享一下uniapp上实现安卓app微信登录的权限申请.开发的具体操作流程 ...
- web上的用户登录功能
Web上的用户登录功能应该是最基本的功能了,可是在我看过一些站点的用户登录功能后,我觉得很有必要写一篇文章教大家怎么来做用户登录功能.下面 的文章告诉大家这个功能可能并没有你所想像的那么简单,这是一个 ...
最新文章
- [转]Introduction of iSCSI Target in Windows Server 2012
- python init文件作用___init__.py 文件的作用
- PyQt5 技术篇 - 按钮隐藏并保留位置,pyqt5设置按钮的可见度,设置按钮透明度
- WCF学习笔记之可靠会话
- 4月11日 GCD 总结(二)
- Modbus协议栈应用实例之五:Modbus ASCII主站应用
- EasyInvoice 简介
- python 中空NULL的表示
- windows DNS服务器的配置
- JavaSE基础——反射
- 8片74151扩展为64选1数据选择器
- 手把手教你用Python创建SQL数据库~
- 数据库复习(四)Redis
- c语言log库,Log4g
- C语言进阶——函数指针
- 我把视频变成链接_如何把长链接变成短链接?3个工具帮你实现
- 晶体管与场效应管的区别
- 「聚变」前端 客户端 | 第十七届 D2 终端技术大会,开放报名!
- 计算机中常见的信息存储格式,信息保存在计算机中的基本形式是什么?
- 【Electron】Electron开发入门(五):项目打包