Java-JSP页面实现简单登录退出(菜鸟一枚、仅供参考)
2024-09-08 12:42:00
1、JSP页面代码
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1">
<link rel="stylesheet" type="text/css" href="./css/login/normalize.css" />
<link rel="stylesheet" type="text/css" href="./css/login/demo.css" /> <link rel="stylesheet" type="text/css" href="./css/login/component.css" />
<title>登录</title>
</head>
<body>
<body>
<div class="container demo-1">
<div class="content">
<div id="large-header" class="large-header">
<canvas id="demo-canvas"></canvas>
<div class="logo_box">
<h3>登录</h3>
<form action="${pageContext.request.contextPath }/login/loginyy" name="f" method="post">
<div class="input_outer">
<span class="u_user"></span>
<input id="username" name="username" value="" class="text" style="color: #FFFFFF !important" type="text" placeholder="请输入账户">
</div>
<div class="input_outer">
<span class="us_uer"></span>
<input id="password" name="password" value="" class="text" style="color: #FFFFFF !important; position:absolute; z-index:100;" type="password" placeholder="请输入密码">
</div>
<div class="mb2">
<!-- <a class="act-but submit" href="${pageContext.request.contextPath }/login/loginyy" style="color: #FFFFFF"> -->
<input class="text" type="submit" value="登录" style="color: #FFFFFF">
</a>
</div>
</form>
</div>
</div>
</div>
</div><!-- /container -->
<script src="./js/login/TweenLite.min.js"></script>
<script src="./js/login/EasePack.min.js"></script>
<script src="./js/login/rAF.js"></script>
<script src="./js/login/demo-1.js"></script>
<div style="text-align:center;">
</div>
</body>
</html>
2、创建登录用户User实体类
package com.chao.entity; public class User {
private String username;
private String password; public String getUsername() {
return this.username;
} public void setUsername(String username) {
this.username = username;
} public String getPassword() {
return this.password;
} public void setPassword(String password) {
this.password = password;
}
}
3、mysql数据库连接池
package com.chao.utils; import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException; public class DBUtil {
private String dbUrl = "jdbc:mysql://数据库ip地址:3306/login";
private String dbUserName = "数据库用户名";
private String dbPassword = "数据库登录密码";
private String jdbcName = "com.mysql.cj.jdbc.Driver"; public Connection getCon() throws ClassNotFoundException, SQLException {
Class.forName(this.jdbcName);
Connection con = DriverManager.getConnection(this.dbUrl, this.dbUserName, this.dbPassword);
return con;
} public void closeCon(Connection con) throws SQLException {
if (con != null)
con.close();
}
}
4、登录代码实现
package com.chao.controller; import com.chao.entity.User;
import com.chao.utils.DBUtil;
import com.chao.utils.StringUtil;
import java.io.IOException;
import java.io.PrintWriter;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.RequestMapping; @Controller
@RequestMapping({ "login" })
public class LoginController {
@RequestMapping
public String toLoginIndex(Model model) {
return "login";
} @RequestMapping({ "loginyy" })
public void toLogin(HttpServletRequest request, HttpServletResponse response) {
User user = new User();
String username = request.getParameter("username");
String password = request.getParameter("password"); user.setUsername(username);
user.setPassword(password);
System.out.println("----------------" + username + "--" + password + "---------------"); if ((StringUtil.isEmpty(password)) || (StringUtil.isEmpty(username))) {
HttpSession session = request.getSession();
session.setAttribute("error", "不能为空");
try {
response.sendRedirect(request.getContextPath() + "/login");
} catch (IOException e) {
e.printStackTrace();
}
System.out.println("---------kong----------");
return;
} DBUtil db = new DBUtil();
String sql = "select username from users where username='" + user.getUsername() + "'";
String sql1 = "select password from users where password='" + user.getPassword() + "'";
try {
Statement stmt = db.getCon().createStatement();
Statement stmt1 = db.getCon().createStatement();
ResultSet rs = stmt.executeQuery(sql);
ResultSet rs1 = stmt1.executeQuery(sql1); if ((rs.next()) && (rs1.next())) {
HttpSession session = request.getSession();
session.setAttribute("currentUser", "登陆成功");
response.sendRedirect("/file");
} else {
System.out.println("-------用户名或密码错误-----"); HttpSession session = request.getSession();
session.setAttribute("error", "错误");
session.setAttribute("username", username);
session.setAttribute("password", password); response.setCharacterEncoding("GB2312");
PrintWriter out = response.getWriter();
out.print("<script>alert('用户名或密码错误,请重新输入!'); window.location='/login' </script>");
}
} catch (ClassNotFoundException e) {
e.printStackTrace();
} catch (SQLException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
}
5、JSP页面直接跳转拦截验证
<%
if(null==session.getAttribute("currentUser")){
System.out.print("ddd");
response.sendRedirect("/login");
return;
}else{
System.out.print("yyy");
}
%>
6、退出界面代码实现
package com.chao.controller;
import javax.servlet.http.HttpSession;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping; @Controller
@RequestMapping({ "quit" })
public class QuitController {
@RequestMapping
public String outLogin(HttpSession session) {
// 通过session.invalidata()方法来注销当前的session
session.invalidate();
return "login";
}
}
前端JSP页面代码
<form action="${pageContext.request.contextPath}/quit" method="post">
<table align="right">
<tr><td>
<input type="submit" value="退出登录">
</td></tr>
</table>
</form>
最新文章
- war 文件打包技巧
- Java网络编程之流——流、过滤器、阅读器和书写器
- 一首诗,致亲爱的csdn
- VS2012 调试时 局部变量显示不全的问题解决
- 3dsMax用到的网格优化
- 在报表中给session赋值实现报表间参数共享
- AngularJS学习之表单
- 自已实现的async 只实现了一部分功能
- 汉字拼音带声调和发音mp3文件(C#源程序)
- Java基础知识强化106:Java中 int 的各进制之间的转换
- C# Windows Phone 8 WP8 开发,取得手机萤幕大小两种方法。
- oracle关键字(保留字)
- 内置open()函数对外部文件的操作
- [BZOJ]4199 品酒大会(Noi2015)
- linux yum配置代理
- mssql sqlserver for xml EXPLICIT 用法详解说明
- Confluence 6 配置自动备份
- Android取得系统时间
- linux内核剖析(七)Linux进程间通信的几种方式总结
- [转]Reporting Services 中的身份验证类型
热门文章
- docker之rabbitmq delayed message exchange
- golang windows程序获取管理员权限(UAC )
- shell_Day09
- WIN10操作系统如何利用无线网卡连接wifi再通过有线网卡共享网络给路由(双网卡)
- FastJson JdbcRowSetImpl
- 第三周day1
- AWS RedShift实战应用SQL大全及经验分享[持续更新]
- C# Winform 多线程更新界面UI控件,解决界面卡顿问题(转)
- [Oracle19C 数据库管理] 加载和传输数据库
- ESXi 基础安全加强(ing...)