MVC模式实现注册登录
很多人对MVC模式搞不懂,刚开始是我也犯迷糊,知道看到一个前辈写的代码,我顿时有的恍然大悟,拿来分享给各位
MVC:
就是M:模型、V:视图(前台界面)C:后台处理的servlet

话不多说、上代码
bean中代码(用到的变量)
package bean;
public class Userbean {
private String username;//用户名
private String phone;
private String email;
private String password;//密码都是与数据库匹配的,下面是set和get函数
public String getPhone() {
return phone;
}
public void setPhone(String phone) {
this.phone = phone;
}
public String getEmail() {
return email;
}
public void setEmail(String email) {
this.email = email;
}
public String getUsername() {
return username;
}
public void setUsername(String username) {
this.username = username;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
}
com.Dao中代码(对数据库增删改查操作)
package com.Dao;
import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import com.DBUtil.DBUtil;;
public class userDao {
public int login(String name,String password) {
Connection conn = DBUtil.getConn();//这里就是从DBUtil类里面得到连接
Statement sql=null;
ResultSet rs=null;
try{
sql = conn.createStatement();
}catch(SQLException e){
System.out.println(e);
}
int flag=0;
try
{
rs = sql.executeQuery("select * from customer where name='"+name+"' and password='"+password+"'");
if(rs.next())
{
if(rs.getString("password").equals(password))
{
flag=1;
}
}
}
catch(Exception e)
{
e.printStackTrace();
} finally
{
DBUtil.close(rs, sql, conn);
}
return flag;
} }
com.DbUtil中代码(连接数据库,返回conn)
package com.DBUtil;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement; public class DBUtil
{ static String driver="com.microsoft.sqlserver.jdbc.SQLServerDriver";
static String url = "jdbc:sqlserver://127.0.0.1:1433;DatabaseName=BookShop";
static String user1="sa";
static String pwd = "8000153";
public static Connection getConn()//获取连接,返回Connection类型,必须设置为static这样才能在其他类中使用
{
Connection conn=null;
try
{
Class.forName(driver);//加载驱动
conn=DriverManager.getConnection(url,user1,pwd);//连接数据库
}
catch(Exception e)
{
e.printStackTrace();
}
return conn;
}
public static void close(Statement state,Connection conn)//关闭函数
{
if(state!=null)//只有状态和连接时,先关闭状态
{
try
{
state.close();
}
catch(SQLException e)
{
e.printStackTrace();
}
}
if(conn!=null)
{
try
{
conn.close();
}
catch(SQLException e)
{
e.printStackTrace();
}
}
}
public static void close(ResultSet rs,Statement state,Connection conn)
{
if(rs!=null)//有结果集,状态和连接时,先关闭结果集,在关闭状态,在关闭连接
{
try
{
rs.close();
}
catch(SQLException e)
{
e.printStackTrace();
}
}
if(state!=null) {
try
{
state.close();
}
catch(SQLException e)
{
e.printStackTrace();
}
}
if(conn!=null)
{
try
{
conn.close();
}
catch(SQLException e)
{
e.printStackTrace();
}
}
} }
servlet中代码(要配置web.xml文件,处理完以后把值传给前台界面)
package com.servlet;
import java.io.IOException;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
import com.Dao.userDao;
import bean.Userbean; @WebServlet("/Userservlet")
public class Userservlet extends HttpServlet {
private static final long serialVersionUID = 1L; public Userservlet() {
super(); } protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
//1.
Userbean usermessage=new Userbean();
//2.
HttpSession session=request.getSession();
//3.
String username=request.getParameter("username");
String password=request.getParameter("password");
//4.
usermessage.setUsername(username);
usermessage.setPassword(password);
userDao userdao = new userDao();//创建Userdao的实例
int flag = userdao.login(username, password);//用来判断是否登陆成功
if(flag==1)
{
session.setAttribute("username", "username");
response.sendRedirect("Showbookservlet");
}
else
{
response.getWriter().print("<script language='javascript'>alert('ERROR')</script>");
response.setHeader("refresh", "1;URL=Enter.html"); } } protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { doGet(request, response);
} }
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" id="WebApp_ID" version="3.1">
<display-name>BookShop</display-name>
<servlet>
<servlet-name>Userservlet</servlet-name><!--servlet的别名,随便取 -->
<!--servlet的包路径,后面再加上.servlet类名 ,这里的类名必须是包下面的servlet类名,目的是让找到该servlet的路径 -->
<servlet-class>com.servlet.Userservlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>Userservlet</servlet-name><!--servlet的别名,和上面保持一致就行 -->
<!--jsp跳转到servlet的路径名,自己取,用来从jsp界面跳转到servlet的路径,程序会根据路径找到servlet的位置 -->
<url-pattern>/Servlet/Userservlet</url-pattern><!-- -->
</servlet-mapping>
前台界面代码(如果想高端大气上档次可以在网上找一些css的样式)
<!DOCTYPE html>
<html lang="en">
<head>
<title>登录</title>
<!-- Meta tags -->
<meta name="viewport" content="width=device-width, initial-scale=1" />
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<meta name="keywords" content=""
/>
<script>
addEventListener("load", function ()
{ setTimeout(hideURLbar, 0); }, false);
function hideURLbar() { window.scrollTo(0, 1); }
</script>
<!-- Meta tags -->
<!--stylesheets-->
<link href="css/style.css" rel='stylesheet' type='text/css' media="all">
<!--//style sheet end here-->
<link href="http://fonts.googleapis.com/css?family=Source+Sans+Pro:400,600,700" rel="stylesheet">
</head>
<body>
<div class="mid-class">
<div class="art-right-w3ls">
<h2>登 录 界 面</h2>
<form action="Userservlet" method="get">
<div class="main">
<div class="form-left-to-w3l">
<input type="text" name="username" placeholder="Username" >
</div>
<div class="form-left-to-w3l ">
<input type="password" name="password" placeholder="Password" >
<div class="clear"></div>
</div>
</div>
<div class="left-side-forget">
<input type="checkbox" class="checked">
<span class="remenber-me">记住我</span>
</div>
<div class="right-side-forget">
<a href="changepassword.jsp" class="for">忘记密码?</a>
</div>
<div class="clear"></div>
<div class="btnn">
<button type="submit">登录</button>
</div>
</form>
<div class="w3layouts_more-buttn">
<h3>没有账号?
<a href="#content1">注册
</a>
</h3>
</div> </div>
<div class="art-left-w3ls">
<h1 class="header-w3ls">
Gaze sign up and login Form
</h1>
</div>
</div> <div id="content1" class="popup-effect">
<div class="popup">
<!--login form-->
<div class="letter-w3ls">
<form action="UserRegisterservlet" method="get">
<div class="form-left-to-w3l">
<input type="text" name="name" placeholder="Username" >
</div>
<div class="form-left-to-w3l">
<input type="text" name="phone" placeholder="Phone" >
</div>
<div class="form-left-to-w3l">
<input type="email" name="email" placeholder="Email" >
</div>
<div class="form-left-to-w3l">
<input type="password" name="password" placeholder="Password" >
</div>
<div class="form-left-to-w3l margin-zero">
<input type="password" name="password" placeholder="Confirm Password" >
</div>
<div class="btnn">
<button type="submit">Sign Up</button>
<br>
</div>
</form>
<div class="clear"></div>
</div>
<!--//login form-->
<a class="close" href="#">×</a>
</div>
</div>
<footer class="bottem-wthree-footer"> </footer>
</body>
</html>
运行界面(输入用户名和密码,通过和数据库中的文件比对后返回结果。登陆成功则到显示页面,失败则重新返回到这个页面并弹窗显示ERROR)


先写这些把,后面的功能下一次在写(●ˇ∀ˇ●)
MVC模式实现注册登录的更多相关文章
- 【MVC】会员注册/登录,普通验证,会员名是否注册Ajax验证以及会员邮件验证实现原理
using System; using System.Collections.Generic; using System.ComponentModel; using System.ComponentM ...
- struts1:(Struts重构)构建一个简单的基于MVC模式的JavaWeb
在构建一个简单的基于MVC模式的JavaWeb 中,我们使用了JSP+Servlet+JavaBean构建了一个基于MVC模式的简单登录系统,但在其小结中已经指出,这种模式下的Controller 和 ...
- 基于Servlet的MVC模式用户登录实例
关于MVC模式的简单解释 M Model,模型层,例如登录实例中,用于处理登录操作的类: V View,视图层,用于展示以及与用户交互.使用html.js.css.jsp.jQuery等前端技术实现: ...
- 利用mvc模式,实现用户的注册
实现功能:利用mvc模式,实现用户的登陆注册功能 1.程序的框架结构 2个包,bean,以及servlet 3个jsp页面,注册页面,注册成功页面,注册失败页面 mysql驱动 2.编程思想 通过js ...
- Node.js基于Express框架搭建一个简单的注册登录Web功能
这个小应用使用到了node.js bootstrap express 以及数据库的操作 :使用mongoose对象模型来操作 mongodb 如果没了解过的可以先去基本了解一下相关概念~ 首先注 ...
- 招新系统(jsp+servlet,实现简略前端网页注册登录+后台增删改查,分学生和管理员,Java语言,mysql数据库连接,tomcat服务器)
生活不只是眼前的苟且,还有诗和远方. 架构说明: 要求是采用MVC模式,所以分了下面的几个包,但是由于是第一次写,可能分的也不是很清楚: 这个是后台部分的架构: 这个是前端的的展示: (那个StuLo ...
- 构建一个简单的基于MVC模式的JavaWeb
零晨三点半了,刚刚几个兄弟一起出去吼歌,才回来,这应该是我大学第二次去K歌,第一次是大一吧,之后每次兄弟喊我,我都不想去,因为我还是很害怕去KTV,或许是因为那里是我伤心的地方,也或许是因为我在那里失 ...
- java核心技术第五篇之事务和MVC模式
第一部分:事务1.事务的简介: 1.1 在一组操作中(比如增加操作,修改操作),只有增加和修改操作都成功之后,这两个操作才能真正的成功. ,如果这两个操作中,有一个失败了,这两个操作都失败了. 1.2 ...
- MVC模式职责分工及学习路上的一些感想
在正文之前想先说说自己coding道路上的一点感想,不得不感慨一下时间过得很快,之前写过一篇关于JavaWeb_MVC模式的一篇博客,转眼之间时间已经过去了两个月,那时候还是一个刚刚接触JavaWeb ...
随机推荐
- RMQ问题【模板】
概念 RMQ 是英文 Range Maximum/Minimum Query 的缩写,表示区间最大(最小)值. 解决 RMQ 问题的主要方法有两种,分别是 ST 表和线段树.本文主要讲 ST 表. S ...
- Ajax使用方法
什么是AJAX? AJAX,Asynchronous JavaScript and XML (异步的JavaScript和XML),一种创建交互式网页应用的网页开发技术方案. 异步的JavaScrip ...
- Codeforces Round #438 by Sberbank and Barcelona Bootcamp (Div. 1 + Div. 2 combined) A,B,C【真的菜·】
8说了 #include<bits/stdc++.h> using namespace std; #define int long long signed main(){ string s ...
- 使用Python+selenium实现第一个自动化测试脚本
原blog 一,安装Python. python官方下载地址:https://www.python.org/downloads/ 安装后点击开始菜单,在菜单最上面能找到IDLE. IDLE是pytho ...
- CSS3 backface-visibility 不面向屏幕是否可见
backface-visibility 属性定义当元素不面向屏幕时是否可见. 如果在旋转元素不希望看到其背面时,该属性很有用. backface-visibility: visible|hidden; ...
- (2)打造简单OS-开机BIOS初始化与MBR操作系统引导详解
================大概了解即可=============== 1.BIOS的工作: 我们的计算机在开机之前,它是一个纯硬件的机器,但是从按下开机按钮的那一刻起,ROM上的固化程序就开始为 ...
- myeclipse导入项目
因为现在项目大部分都是maven项目所以导入的时候因该选择
- Spring - 环境安装
安装IDEA的非Community版本和Java的包之后就可以用Java来HelloWorld了. 然后去这个链接:https://github.com/spring-guides/gs-rest-s ...
- zabbix (二)安装
一.centos7源码安装zabbix3.x 1.安装前环境搭建 下载最新的yum源 #wget -P /etc/yum.repos.d http://mirrors.aliyun.com/repo/ ...
- ICEM-圆柱与长方体相切
原视频下载地址:https://yunpan.cn/cqvgLe39ZU4Ke 访问密码 c1c9