JSP_tomcat_mysql_注冊验证用户;
本文出自:http://blog.csdn.net/svitter
资源下载:
github:
git clone https://github.com/Svtter/JSP-tomcat-mysql
我把注冊和登陆写在一个Servlet处理里面了。一个用get,一个用post,这是不对的。
以后有时间改正吧。。假设单纯为了作业能够提交这个。
get和post简单来说差别就在于post更加安全。
能够详细查一查。。
使用了servlet:
web.xml:
<? xml version="1.0" encoding="UTF-8"? >
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://xmlns.jcp.org/xml/ns/javaee" xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd" version="3.1">
<display-name>JSP_servlet_javabean</display-name>
<servlet>
<description>配置用於用戶登錄的Servlet</description>
<display-name>LoginServlet</display-name>
<servlet-name>LoginServlet</servlet-name>
<servlet-class>LoginServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>LoginServlet</servlet-name>
<url-pattern>/LoginServlet</url-pattern>
</servlet-mapping>
<welcome-file-list>
<welcome-file>login.html</welcome-file>
</welcome-file-list>
</web-app>
四个java文件:
LoginServlet.java://用于验证:
import java.io.*; import javax.servlet.*;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse; import bean.ConnectionBean;
import bean.userBean; /**
* @author Svitter
*
*/
@SuppressWarnings("serial")
public class LoginServlet extends HttpServlet {
userBean user = new userBean();
ConnectionBean connBean = new ConnectionBean();
public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
String checkLogin;
String username = request.getParameter("login");
String password = request.getParameter("password");
checkLogin = connBean.checkUser(username, password);
if(checkLogin.equals("Success")) {
user.setUserName(username);
request.setAttribute("user", user);
getServletConfig().getServletContext().getRequestDispatcher("/loginsuccess.jsp").forward(request, response);
} else {
request.setAttribute("checkLogin", checkLogin);
getServletConfig().getServletContext().getRequestDispatcher("/loginCheck.jsp").forward(request, response);
}
}
public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException{
String username = request.getParameter("login");
String password = request.getParameter("password");
connBean.addUser(username, password);
getServletConfig().getServletContext().getRequestDispatcher("/login.html").forward(request, response);
}
}
bean.GetConnection.java://用于连接数据库。数据库配置文件property.conf
package bean;
import java.io.*;
import java.util.Properties;
import java.sql.*;
public class GetConnection {
private static Properties p;
static{
try{
p = new Properties();
InputStream is = GetConnection.class.getResourceAsStream("property.conf");
p.load(is);
is.close();
} catch(Exception e) {
e.printStackTrace();
}
}
public static String getProperty(String key){
return p.getProperty(key);
}
static String driver = GetConnection.getProperty("driver");
static String url = GetConnection.getProperty("url");
static String name = GetConnection.getProperty("user");
static String pass = GetConnection.getProperty("password");
static{
try{
Class.forName(driver);
}catch(ClassNotFoundException e){
e.printStackTrace();
}
}
public static Connection getConnection() throws SQLException {
return DriverManager.getConnection(url, name, pass);
}
}
property.conf:
driver=com.mysql.jdbc.Driver
url=jdbc:mysql://localhost:3306/users
user=root
password=root
bean.ConnectionBean.java://用于数据库操作
package bean;
import java.sql.*;
public class ConnectionBean {
private Connection con;
public ConnectionBean() {
try{
con = GetConnection.getConnection();
} catch (Exception e){
e.printStackTrace();
}
}
//向数据库加入信息
public boolean addUser(String name, String password){
try{
PreparedStatement pstmt = con.prepareStatement("insert into ur(name, passwd) values(?
,?
)");
pstmt.setString(1, name);
pstmt.setString(2, password);
pstmt.execute();
return true;
} catch (Exception e){
e.printStackTrace();
return false;
}
}
public ResultSet getUser(String name){
try {
Statement stm = con.createStatement();
ResultSet result = stm.executeQuery("select * from ur where name='"+name+"'");
return result;
} catch (Exception e){
e.printStackTrace();
return null;
}
}
public String checkUser(String name, String passwd){
String checkUser=null;
try{
Statement stm = con.createStatement();
ResultSet result = stm.executeQuery("select * from ur where name='"+name+"'");
if(result.next()==false){
checkUser = "No user";
}
else{
if(result.getString("passwd").equals(passwd)){
checkUser = "Success";
}
else{
checkUser = "Wrong passwd";
}
}
}catch (Exception e){
e.printStackTrace();
}
return checkUser;
}
}
JSP_tomcat_mysql_注冊验证用户;的更多相关文章
- Android实战简易教程-第二十三枪(基于Baas的用户注冊验证username是否反复功能!)
接上一篇,加入验证用户名是否已经注冊功能! 仅仅须要改动MainActivity.java: package com.example.logintest; import java.util.List; ...
- YII用户注冊和用户登录(二)之登录和注冊在视图通过表单使用YII小物件并分析
2 登录和注冊在视图通过表单使用YII小物件并分析 <?php $form = $this -> beginWidget('CActiveForm', array( 'enableClie ...
- YII用户注冊和用户登录(三)之模型中规则制定和分析
3 模型中规则制定和分析 YII模型主要分为两类,一个数据模型,处理和数据库相关的增删改查.继承CActiveRecord.还有一个是表单模型,继承CFormModel.不与数据库进行交互.操作与数据 ...
- 4pda.ru注冊验证的解码算法
代码源于看雪林版在我群里介绍注冊一个俄文安卓论坛.发出来了链接大家在測试注冊. http://4pda.ru/forum/index.php? 註册方式請参看: _https://forum.tuts ...
- YII用户注冊和用户登录(五)之进行session和cookie分析 ,并在前后区分session和cookie
5 进行session和cookie分析 ,并在前后区分session和cookie: 记住登录状态 这样下次再登录站点的时候.就不用反复输入username和password. 是浏览器的cooki ...
- 怎样利用WordPress创建自己定义注冊表单插件
来源:http://www.ido321.com/1031.html 原文:Creating a Custom WordPress Registration Form Plugin 译文:创建一个定制 ...
- struts2学习笔记(三)—— 在用户注冊程序中使用验证框架
实现目标: 1.使用验证框架对用户注冊信息进行验证 2.验证username.password.邮箱不能为空 3.验证username.password长度 ...
- struts2+jquery验证注冊用户是否存在
注冊界面 register.jsp <%@ page language="java" contentType="text/html; charset=UTF-8&q ...
- YII用户注冊表单的实现熟悉前台各个表单元素操作方式
模还是必须定义两个基本方法.还有部分label标签映射为汉字,假设进行表单验证,还要定义一些验证规则: <? php /* * 用户模型 * */ class user extends CAct ...
随机推荐
- 转载:Java高并发,如何解决,什么方式解决
原文:https://www.cnblogs.com/lr393993507/p/5909804.html 对于我们开发的网站,如果网站的访问量非常大的话,那么我们就需要考虑相关的并发访问问题了.而并 ...
- 【必备】史上最全的浏览器 CSS & JS Hack 手册
[必备]史上最全的浏览器 CSS & JS Hack 手册 浏览器渲染页面的方式各不相同,甚至同一浏览器的不同版本(“杰出代表”是 IE)也有差异.因此,浏览器兼容成为前端开发人员的必备技 ...
- 性能测试二十五:redis-cli 命令总结
常用命令dbsize:查看redis中的kv数量 keys *:查看redis中所有的keyset key_1 v_1:新增一个key_1,包含v_1get key_1:查看key_1中的内容del ...
- 性能测试七:jmeter进阶之文件上传下载、定时器
一.上传下载 上传: 1,POST请求,勾选 use …for post 2,同请求一起发送文件里,填写文件名称,参数名称 3,MIME类型: application/octet-stream(非必须 ...
- python 全栈开发,Day110(django ModelForm,客户管理之 编辑权限(一))
昨日内容回顾 1. 简述权限管理的实现原理. 粒度控制到按钮级别的权限控制 - 用户登陆成功之后,将权限和菜单信息放入session - 每次请求时,在中间件中做权限校验 - inclusion_ta ...
- python 全栈开发,Day8(文件操作)
一.文件操作流程 文件以什么编码存储的,就以什么编码打开 参数: 1.文件路径 2.编码方式,encode 3.执行动作(打开方式):只读,只写,追加,读写,写读... 打开一个已经存在的文件 f = ...
- 步步为营-62-Excel的导入和导出
说明:NPOI组件的使用 1 添加引用 2 代码 using System; using System.Collections.Generic; using System.ComponentModel ...
- vim的基本用法
- python使用ssdb的队列,用于替换canal+rabbitmq
# pip install -i https://mirrors.aliyun.com/pypi/simple/ pyssdb import pyssdb c = pyssdb.Client('172 ...
- JAVA开发工程师面试(1)
我已经有很长一段时间没有更新博客了,难道是博主我变懒惰了吗?哎,这样可不行啊,我还有好多知识要学习,要和大家分享.以后我需要更加努力,改掉自己的惰性.本人文采不怎么样,只能是把自己所想的说出来,想和大 ...