Java-JSP页面实现简单登录退出(菜鸟一枚、仅供参考)
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>
Java-JSP页面实现简单登录退出(菜鸟一枚、仅供参考)的更多相关文章
- JAVA语言程序设计课后习题----第五单元解析(仅供参考)
1 本题是水题,题目要求你求最大值.最小值,建议你用Arrays.sort函数进行排序,最大值.最小值就可以确定了 import java.util.Arrays; import java.util. ...
- JAVA语言程序设计课后习题----第三单元解析(仅供参考)
1 本题水题,记住要知道输入格式即可 import java.util.Scanner; public class test { public static void main(String[] ar ...
- JAVA语言程序设计课后习题----第八单元解析(仅供参考)
1 本题主要考的是方法的克隆,与c++里面的拷贝有点相似,具体看书本p147 import java.util.Objects; public class Square implements Clon ...
- JAVA语言程序设计课后习题----第七单元解析(仅供参考)
1 本题水题,就是想让你理解继承的含义 public class Animaal { public double weight; public void eat(){ } } public class ...
- JAVA语言程序设计课后习题----第六单元解析(仅供参考)
1 本题就是基本函数的用法 import java.util.Scanner; public class Poone { public static void main(String[] args) ...
- JAVA语言程序设计课后习题----第四单元解析(仅供参考)
1 本题水题,主要理解题目的意思即可,访问方法和修改方法可以通过快捷方式alt+insert选中你需要的成员变量即可 public class Person { public String name; ...
- PHP简单登录退出代码
PHP简单登录退出代码 登录页面login.html 负责收集用户填写的登录信息. <html> <head> <title></title> < ...
- VSS的运用小内容(针对于vs2008版本)(小的问题都是,仅供参考--只针对于菜鸟级的)
自己开始接触vss 的时候有些小的习惯没有很好的养成,下面的有关VSS内容都是简单的迁入迁出的问题,(仅供参考) 1.文件的迁入迁出:(.txt..xlsx..doc) a:文件的覆盖问题: 对于文件 ...
- JSP页面以及简单的指令
JSP(Java Server Pages)是指: 在HTML中嵌入Java脚本语言 由应用服务器中的JSP引擎来编译和执行嵌入的Java脚本语言命令 然后将生成的整个页面信息返回给客户端 页 ...
- Java jsp页面中jstl标签详解
JSLT标签库,是日常开发经常使用的,也是众多标签中性能最好的.把常用的内容,放在这里备份一份,随用随查.尽量做到不用查,就可以随手就可以写出来.这算是Java程序员的基本功吧,一定要扎实. JSTL ...
随机推荐
- Si24R2F+ 无线发射芯片的主要特性及应用介绍
Si24R2F+ 是一颗工作在 2.4GHz ISM 频段,专为低功耗无线场合设计,集成嵌入式发射基带的无线发射芯片.工作频率范围为 2400MHz-2525MHz,共有 126 个 1MHz 带宽的 ...
- python运行脚本报错Non-UTF-8
写完脚本运行报:SyntaxError: Non-UTF-8 code starting with '\xa1' in file/createuser/test.py on line 1, but n ...
- WPS中VB编辑器的安装
本来是因为要转换很多个文件的列的位置,他们格式一样,位置也一样,就是需要转换每个文件中列的位置,一个个操作又很麻烦,因此我在百度中发现了可以使用VBA进行操作,又由于excel里好像有VB编辑器,WP ...
- uni-app 通过后缀名区分不同渠道版本
同一套微信小程序代码根据需求要打包成两款小程序,主要逻辑页面一致,主题色不一致,部分页面布局不,逻辑不一致. script命令 先在package.json的script新增命令,根据不同的命令生成对 ...
- WPF图片的缩放节省内存
一.前言 正好项目用到要加载大量图片,虽然说可以使用WPF提供的自带的UI虚拟化功能,但是直接加载大量的图片到内存还是会 消耗很多的内存,而且WPF支持UI虚拟化的ListBox等容器的布局是Virt ...
- PR如何导出mp4格式的视频
PR如何导出mp4格式的视频 PR是一款强大的视频处理软件,有时我们想导出mp4格式的视频,但好像找不到这种格式,具体怎么操作呢?PR如何导出mp4格式的视频? 1.打开PR,然后处理完视频后,点击左 ...
- React使用高阶组件与Hooks实现权限拦截教程
导读 高阶组件就是接受一个组件作为参数并返回一个新组件(功能增强的组件)的函数.这里需要注意高阶组件是一个函数,并不是组件,这一点一定要注意,本文给大家分享React高阶组件使用小结,一起看看吧 高阶 ...
- K8s validating data: the server could not find the requested resource ... with --validate=false
转载: https://blog.csdn.net/yangchao1125/article/details/106193107/
- Linux使用tailf高亮显示关键字
Linux下使用tail查找日志文件关键词高亮显示 ① 多个关键词高亮显示: tail -f 日志文件 | perl -pe 's/(关键词)/\e[1;颜色$1\e[0m/g' 示例: tail - ...
- 运用C#编写Http服务器
什么是HTTP服务器 Web服务器是指驻留于因特网上某种类型计算机的程序.当Web浏览器(客户端)连到服务器上并请求文件时,服务器将处理该请求并将文件反馈到该浏览器上,附带的信息会告诉浏览器如何查看该 ...