WEB简单的登录注册功能(分层)
登录:
前端页面:
<body>
<form action="/webtext/LogingServlet" method="post">
<input type="text" name="username"><br>
<input type="text" name="userpassword"><br>
<input type="submit" value="登录"><br>
</form>
</body>
domain:
public class user {
private int uid;
private String username;
private String userpassword;
public int getUid() {
return uid;
}
public void setUid(int uid) {
this.uid = uid;
}
public String getUsername() {
return username;
}
public void setUsername(String username) {
this.username = username;
}
public String getUserpassword() {
return userpassword;
}
public void setUserpassword(String userpassword) {
this.userpassword = userpassword;
}
@Override
public String toString() {
return "user [uid=" + uid + ", username=" + username + ", userpassword=" + userpassword + "]";
}
}
dao层:
public int load(user user) throws SQLException{
Connection conn=JDBCUtils.getConn();
String sql="select * from user where username=? and userpassword=?";
PreparedStatement pst=conn.prepareStatement(sql);
pst.setString(1, user.getUsername());
pst.setString(2, user.getUserpassword());
ResultSet rs = pst.executeQuery();
int count=0;
while(rs.next()){
count=rs.getInt(1);
}
JDBCUtils.close(rs, pst, conn);
return count;
}
service层:
public boolean load(user user){
boolean flag=false;
try {
int count=Dao.load(user);
if(count==1){
flag=true;
}else{
flag=false;
}
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return flag;
}
登陆的同时检测登陆人数:
public class LogingServlet extends HttpServlet {
private service Service=new service();
public void init() throws ServletException {
//获取ServletContext对象
ServletContext servletContext=this.getServletContext();
//向ServletContext域存入初始count
int count=0;
servletContext.setAttribute("count", count);
}
public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
String username=request.getParameter("username");
String password=request.getParameter("userpassword");
user user=new user();
user.setUsername(username);
user.setUserpassword(password);
boolean flag=Service.load(user);
if(flag==true){
//获取ServletContext对象
ServletContext servletContext=this.getServletContext();
//获取当前count值
int count=(int)servletContext.getAttribute("count");
//改变count值
count++;
response.getWriter().write("success"+user+"ni shi di"+count+"ge fang wen de ren");
//刷新count值
servletContext.setAttribute("count", count);
}else{
response.getWriter().write("failure");
}
}
public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
doGet(request, response);
}
}
注册:
dao层
//注册验证
public int zhuceyz(String username) throws SQLException{
Connection conn=JDBCUtils.getConn();
String sql="select username from user where username=?";
PreparedStatement pst=conn.prepareStatement(sql);
pst.setString(1, username);
ResultSet rs = pst.executeQuery();
int count=0;
while(rs.next()){
count=rs.getInt(1);
}
JDBCUtils.close(rs, pst, conn);
return count;
}
//存入注册信息
public int zhuce(user user) throws SQLException{
Connection conn=JDBCUtils.getConn();
String sql="insert into user(username,userpassword) values(?,?)";
PreparedStatement pst=conn.prepareStatement(sql);
pst.setString(1, user.getUsername());
pst.setString(2, user.getUserpassword());
int row=pst.executeUpdate();
JDBCUtils.close(pst, conn);
return row;
}
}
service层
//注册验证
public boolean zhuceyz(String username){
boolean flag=false;
try {
int count=Dao.zhuceyz(username);
if(count==0){
flag=true;
}else{
flag=false;
}
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return flag;
}
//存入注册信息
public boolean zhuce(user user){
boolean flag=false;
try {
int count=Dao.zhuce(user);
if(count==1){
flag=true;
}else{
flag=false;
}
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return flag;
}
}
服务器端
public class ZhuceServlet extends HttpServlet {
private service Service=new service();
public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
while(true){
String username=request.getParameter("username");
String password=request.getParameter("userpassword");
boolean flag=Service.zhuceyz(username);
if(flag==false){
response.getWriter().write("yibeizhanyong");
return;
}else if(flag==true){
user user=new user();
user.setUsername(username);
user.setUserpassword(password);
boolean flag1=Service.zhuce(user);
if(flag==true){
response.getWriter().write("success"+user);
}else{
response.getWriter().write("failure");
}
}
return;
}
}
public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
doGet(request, response);
}
}
WEB简单的登录注册功能(分层)的更多相关文章
- java web 简单的登录注册
--sql文件 create database studentgouse studentgocreate table stuinfo(--stuid int primary key identity( ...
- Struts2 + Hibernate3.3 开发简单的登录注册功能【J2EE】
开发环境: IDE:Myeclipse10.0 数据库:Oracle(SQL Developer) Web容器:Tomcat 7.0 JDK:1.6 Struts:2.0 Hibernate:3.3 ...
- SSM 实现登录注册功能
1.上一篇SSM框架搭建好了之后就要开始写功能了,现在来写一个简单的登录注册功能 这几个包是自己手动创建的,然后往里面写代码 2.代码详情 package com.maike.controller; ...
- Java Spring+Mysql+Mybatis 实现用户登录注册功能
前言: 最近在学习Java的编程,前辈让我写一个包含数据库和前端的用户登录功能,通过看博客等我先是写了一个最基础的servlet+jsp,再到后来开始用maven进行编程,最终的完成版是一个 Spri ...
- Angular之简单的登录注册
使用Angular实现了一个简单的登录注册的功能........ 涉及到的Angular知识点很少 主要是这个功能的实现...(*^__^*) 嘻嘻…… 里面涉及到的知识点记录: 1.本地存储的操作 ...
- Python 实现简单的登录注册界面
Python 实现简单的登录注册界面 注意:编写代码之前需要导入很重要的包 import tkinter as tk import pickle from tkinter import message ...
- vue koa2 mongodb 从零开始做个人博客(一) 登录注册功能前端部分
0.效果演示 插入视频插不进来,就很烦.可以出门右拐去优酷看下(点我!). 1.准备工作 1.1前端框架 前端使用了基于vue.js的nuxt.js.为什么使用nuxt.js? 首先我做的是博客的项目 ...
- Node.js实现登录注册功能
使用Node.js + Navicat for mysql实现的登录注册功能 数据库中存在有”user_id,user_name,password,user_img,user_number“字段,其中 ...
- flask 开发用户登录注册功能
flask 开发用户登录注册功能 flask开发过程议案需要四个模块:html页面模板.form表单.db数据库操作.app视图函数 1.主程序 # app.py # Auther: hhh5460 ...
随机推荐
- SpringBoot-读取classpath下文件
文章目录 开发过程中,必不可少的需要读取文件,对于打包方式的不同,还会存在一些坑,比如以jar包方式部署时,文件都存在于jar包中,某些读取方式在开发工程中都可行,但是打包后,由于文件被保存在jar中 ...
- Fiddler和JMeter测试需要主要的地方
Fiddler里面设置请求头的时候ContentType和Content-Type这两种写法都可以: 这两种写法都可以. 但是在JMeter中必须要用Content-Type才行,如下图所示: (完)
- 《 ZooKeeper : Wait-free coordination for Internet-scale systems 》论文研读
Zookeeper 研读 说明:本文为论文 < ZooKeeper : Wait-free coordination for Internet-scale systems > 的个人理解, ...
- UVA - 11300 Spreading the Wealth(数学题)
UVA - 11300 Spreading the Wealth [题目描述] 圆桌旁边坐着n个人,每个人有一定数量的金币,金币的总数能被n整除.每个人可以给他左右相邻的人一些金币,最终使得每个人的金 ...
- HDU 5969 最大的位或 题解
题目 B君和G君聊天的时候想到了如下的问题. 给定自然数l和r ,选取2个整数\(x,y\)满足\(l <= x <= y <= r\),使得\(x|y\)最大. 其中\(|\)表示 ...
- 查看windows操作系统的默认编码
转自:https://blog.csdn.net/zp357252539/article/details/79084480/ 在Windows平台下,进入DOS窗口,输入:chcp 可以得到操作系统的 ...
- Redis批量查询模板
场景 在开发的时候经常会遇到批量取缓存的问题,例如查询商品信息 传入一个商品Id列表,查询Redis数据存在则放入返回列表 不存在的数据查找数据库,并放入Redis 上面两步数据整合返回 伪代码为 l ...
- day65 django进阶(1)
目录 一.聚合查询与分组查询 1 聚合查询(aggregate) 2 分组查询(annotate) 二.F与Q查询 1 F查询的三个功能 1.1 能帮助我们直接获取到表中某个字段对应的数据 1.2 获 ...
- DVWA学习记录 PartⅡ
Command Injection 1. 题目 Command Injection,即命令注入,是指通过提交恶意构造的参数破坏命令语句结构,从而达到执行恶意命令的目的. 2. Low a. 代码分析 ...
- 数据可视化之powerBI基础(十九)学会使用Power BI的参数,轻松搞定动态分析
https://zhuanlan.zhihu.com/p/55295072 静态的分析经常不能满足实际分析的需要,还需要引入动态分析,通过调节某个维度的增减变化来观察对分析结果的影响.在PowerBI ...