本文出自: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_注冊验证用户;的更多相关文章

  1. Android实战简易教程-第二十三枪(基于Baas的用户注冊验证username是否反复功能!)

    接上一篇,加入验证用户名是否已经注冊功能! 仅仅须要改动MainActivity.java: package com.example.logintest; import java.util.List; ...

  2. YII用户注冊和用户登录(二)之登录和注冊在视图通过表单使用YII小物件并分析

    2 登录和注冊在视图通过表单使用YII小物件并分析 <?php $form = $this -> beginWidget('CActiveForm', array( 'enableClie ...

  3. YII用户注冊和用户登录(三)之模型中规则制定和分析

    3 模型中规则制定和分析 YII模型主要分为两类,一个数据模型,处理和数据库相关的增删改查.继承CActiveRecord.还有一个是表单模型,继承CFormModel.不与数据库进行交互.操作与数据 ...

  4. 4pda.ru注冊验证的解码算法

    代码源于看雪林版在我群里介绍注冊一个俄文安卓论坛.发出来了链接大家在測试注冊. http://4pda.ru/forum/index.php? 註册方式請参看: _https://forum.tuts ...

  5. YII用户注冊和用户登录(五)之进行session和cookie分析 ,并在前后区分session和cookie

    5 进行session和cookie分析 ,并在前后区分session和cookie: 记住登录状态 这样下次再登录站点的时候.就不用反复输入username和password. 是浏览器的cooki ...

  6. 怎样利用WordPress创建自己定义注冊表单插件

    来源:http://www.ido321.com/1031.html 原文:Creating a Custom WordPress Registration Form Plugin 译文:创建一个定制 ...

  7. struts2学习笔记(三)—— 在用户注冊程序中使用验证框架

    实现目标:       1.使用验证框架对用户注冊信息进行验证       2.验证username.password.邮箱不能为空       3.验证username.password长度     ...

  8. struts2+jquery验证注冊用户是否存在

    注冊界面 register.jsp <%@ page language="java" contentType="text/html; charset=UTF-8&q ...

  9. YII用户注冊表单的实现熟悉前台各个表单元素操作方式

    模还是必须定义两个基本方法.还有部分label标签映射为汉字,假设进行表单验证,还要定义一些验证规则: <? php /* * 用户模型 * */ class user extends CAct ...

随机推荐

  1. 用PNChart绘制折线图

    写在前面 上一篇文章已经介绍过用PNChart绘制饼状图了,绘制折线图的步骤和饼状图的步骤是相似的,按照中的准备做好准备工作后就可以绘制折线图了. 开始使用 1.在view中声明一个PNLineCha ...

  2. Bootstrap案例中,登陆界面自适应

    1.html布局源码: <!DOCTYPE html><html lang="en"><head> <meta charset=" ...

  3. 通配符(WildCard)的使用

    一.关于WildCard:一个web应用,有成千上万个action声明,可以利用struts2提供的映射机制把多个彼此相似的映射关系简化成一个映射关系,即通配符. 1.新建类 ActionWildCa ...

  4. PTA之简单阶乘计算

    本题要求实现一个计算非负整数阶乘的简单函数. 时间限制: 400ms 内存限制: 64MB 代码长度限制: 16KB 函数接口定义: int Factorial( const int N ); 其中N ...

  5. VEMap.DeleteAllShapeLayers 方法

    来源:https://msdn.microsoft.com/zh-cn/library/bb412514.aspx <!DOCTYPE html PUBLIC "-//W3C//DTD ...

  6. IntelliJ IDEA快捷键:Ctrl+Alt+B

    To navigate to the implementation(s) of an abstract method,position the caret at its usage or its na ...

  7. 依赖倒置原则(Dependence Inversion Principle,DIP)

    依赖倒转原则就是 A.要依赖于抽象,不要依赖于实现.(Abstractions should not depend upon details. Details should depend upon a ...

  8. centos6.5上安装配置telnet服务

    https://blog.csdn.net/wx5040257/article/details/78327915

  9. 关键字super和this的使用及区别

    "this"作为一个特殊的关键字,它的规则如下: 1.可以表示构造函数传递.this(a,b)表示调用另外一个构造函数.这里面的this就是一个特殊语法,不是变量,没有什么类型. ...

  10. private static final long serialVersionUID = 1L这句话到底什么意思?

    变量serialVersionUID称为序列化版本号,这个变量多用于实现了Serializable的类中,试用场景是类的序列化.当我们没有定义这个变量的时候,虚拟机会根据类的属性算出一个独一无二的该变 ...