SSH整合--1

    简单说明:整个整合过程使用mysql数据库、Myeclipse 8.5,框架使用struts2.1.6,hibernate3.x,spring2.5

功能:实现简单的用户登录

0. 简单的流程

 SSH整合--1

 

 1. Resister.jsp

<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>

 

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">

<html>

  <head>

  <title>注册首页</title>

  </head>

 

  <body>

<form action="registerDeal.jsp" method="post">

用户名:<input type="text" name="username"/><br>

密码:<input type="password" name="password"/><br>

确认密码:<input type="password" name="password2"/><br>

<input type="submit" value="提交" />

</form>

  </body>

</html>

 

 

 

2. RegisterDeal.jsp

<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>

<%@ page import="java.sql.Connection" %>

<%@ page import="java.sql.DriverManager" %>

<%@ page import="java.sql.PreparedStatement" %>

<%@ page import="java.sql.SQLException" %>

<%@ page import="java.sql.ResultSet" %>

 

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">

<html>

  <head>

  <title>登录处理</title>

  </head>

 

  <body>

<%

String username = request.getParameter("username").trim();

String password = request.getParameter("password").trim();

String password2 = request.getParameter("password2").trim();

 

// 简单验证,不填其他的复杂逻辑

// save in database

Connection conn = null;

PreparedStatement pstat = null;

String url = "jdbc:mysql://localhost:3306/ssh";

String user = "root";

String pw = "mysql123";

try {

Class.forName("com.mysql.jdbc.Driver");

try {

conn = DriverManager.getConnection(url, user, pw);

String selectSql = "select count(*) from tb_user where username=?";

pstat = conn.prepareStatement(selectSql);

pstat.setString(1, username);

ResultSet rs = pstat.executeQuery();

rs.next();

int count = rs.getInt(1);

if(count > 0) {

//response.sendRedirect("registerFail.jsp");

request.getRequestDispatcher("registerFail.jsp").forward(request, response);

return;

}

 

String sql = "insert into tb_user(id, username, password) values(null, ?, ?)";

pstat = conn.prepareStatement(sql);

pstat.setString(1, username);

pstat.setString(2, password);

pstat.executeUpdate();

 

//response.sendRedirect("registerSucess.jsp");

request.setAttribute("username", username);

request.getRequestDispatcher("registerSucess.jsp").forward(request, response);

} catch (SQLException e) {

e.printStackTrace();

}

} catch (ClassNotFoundException e) {

e.printStackTrace();

} finally {

if (null != pstat)

pstat.close();

 

if (null != conn)

conn.close();

}

%> 

  </body>

</html>

 

在这个jsp里,实现了从请求里读取数据,连接数据库,判断数据库中是否已经存在要注册的用户名,如果不存在则允许当前用户注册,否则不允许注册。如果 注册成功就跳到显示注册成功信息的页面registerSucess.jsp,否则跳到注册失败的页面registerFail.jsp。为了简单没有添加其他复杂的逻辑和功能。整个过程流程是很简单的。

3. registerSucess.jsp

<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>

 

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">

<html>

  <head>

  <title>注册成功</title>

  </head>

 

  <body>

registerSucess...

<br/>

welcome <font color="red" size="10px"><%=request.getAttribute("username") %></font>

  </body>

</html>

 

 

4. registerFail.jsp

<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>

 

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">

<html>

  <head>

  <title>注册失败</title>

  </head>

 

  <body>

registerFail...

  </body>

</html>

 

 

5. 数据库sql

Create database ssh01;

Use ssh01;

Drop table tb_user;

Create tabel tb_user(

Id int auto_increment,

Username varchar(30),

Password varchar(30),

Primary key(id)

);

 

在工程的WEB-INFO下的lib目录下添加mysql的驱动jar包。部署项目并运行,测试项目是否成功。当数据库不存在相同的用户名时注册成功,否则注册失败!!

 

SSH整合--1



 

 

SSH整合--1

 

 

SSH整合--1

 

6. 简单分析:

 

SSH整合--1

此工程没有任何的模式或者是框架,所有的业务逻辑、操作数据库操作等都在jsp里实现,基本上没什么难点。但是维护修改比较麻烦!基本上不能重用。

版权声明:本文为博主原创文章,未经博主允许不得转载。

转载于:https://www.cnblogs.com/ubuntuvim/p/4796556.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/405080.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

poj3750

简单题 View Code #include <iostream>#include <cstdio>#include <cstdlib>#include <cstring>usingnamespacestd;#definemaxn 100intn, w, s;charname[maxn][100];boolout[maxn];intmain(){//freopen("t.txt", "r", stdin);sca…

EF架构~了解一下,ADO.NET Entity Framework

回到目录 以下文章部分来自百度百科 背景 长久以来&#xff0c;程序设计师和数据库总是保持着一种微妙的关系&#xff0c;在商用应用程序中&#xff0c;数据库一定是不可或缺的元件&#xff0c;这让程序设计师一定要为了连接与访问数据库而去 学习 SQL 指令&#xff0c;因此在信…

CM3计算板装系统

1、CM3计算板简介 把树莓派搬到自己的产品中&#xff0c;一种和树莓派基础功能一模一样的板卡&#xff0c;并对相关管脚扩展&#xff0c;完成产品级的功能设计和硬件设计。板卡如下图所示&#xff0c;运行的是Linux操作系统。 2、下载镜像 CM3有多种内存搭配&#xff0c;常见…

关于 CKEditor 3.6以后不兼容ie6的问题解决方案

2019独角兽企业重金招聘Python工程师标准>>> skins\模版名称\editor.css 在第一个.cke_skin_kama *,.cke_skin_kama a:hover,.cke_skin_kama a:link,.cke_skin_kama a:visited,.cke_skin_kama a:active{.....}里面添加 _overflow:hidden;即可. 转载于:https://my.os…

USB/UART 串口转LoRa无线传输调试工具 评估套件

一、LoRa无线传输的特点 LoRa无线通信采用扩频调制通信方式&#xff0c;抗干扰强、灵敏度高&#xff0c;能够在较低功耗的情况下传输更远的距离。采用ISM免授权频段&#xff08;470MHZ-510MHZ&#xff09;&#xff0c;用于无线抄表、工业监控、农业管理、智慧园区、智慧楼宇等…

新手指导:51CTO微博小技巧

您是初次接触微博吗&#xff1f;您是不是不了解微博&#xff0c;不知道怎样才能玩转微博&#xff1f;没关系&#xff0c;小管家这就教您几招&#xff0c;让您通过140字轻松的将看到的、听到的、想到的事情随时随地分享给朋友。 一、怎样拥有微博二、新手快速使用微博攻略 2…

Linux给GCC编译的应用程序创建服务

一、创建服务文件 linux 服务文件的位置在&#xff1a; /etc/systemd/system &#xff0c;进入该目录。首先创建一个服务文件&#xff0c;名字可以按照xxx.service 的格式命名&#xff0c;例如我的噪声处理服务命名: noiserun.service。创建文件需要sudo权限&#xff1a;sudo …

IOS贝塞尔曲线圆形进度条和加载动画

做项目让做一个加载动画,一个圈圈在转中间加一个图片,网上有好多demo,这里我也自己写了一个,中间的图片可加可不加。其中主要用到贝塞尔曲线。UIBezierPath是对CGContextRef的进一步封装,不多说直接上代码&#xff1a; #import <UIKit/UIKit.h>interface CircleLoader : …

CM3计算板EC20模组拨号上网

1、安装 ppp 安装ppp&#xff1a;sudo apt-get install ppp 2、配置路由 查看路由和网卡 ifconfig ; route -n增加路由设备&#xff1a; sudo route add default dev ppp0 3、执行拨号脚本 进入linux-ppp-scripts 文件下&#xff1a;sudo ./quectel-pppd.sh /dev/ttyUSB3 …

CM3计算板I/O编程

1、CM3计算板的IO资源 CM3支持的I/O管脚数为54个&#xff0c;每个管脚包括一个或多个复用功能&#xff0c;分别位于ALT0~ALT5&#xff0c;如下表&#xff1a; 2、设备树启用IO外设的方式 通过在/boot/config.txt 文件中描述IO行为&#xff0c;可以在系统启动时&#xff0c;初…

python类型转换、数值操作

From: http://canofy.iteye.com/blog/298263 python类型转换 Java代码 函数 描述 int(x [,base ]) 将x转换为一个整数 long(x [,base ]) 将x转换为一个长整数 float(x ) 将x转换到一个浮点数 complex(real [,imag ]…

Bloomfilter 的应用场景

Bloomfilter 一般用于检测某元素是否在集合中存在&#xff0c;它的目标是解决在大数据量情况的元素判定。它的优点是它提供的数据结构具有非常高的时间查询和空间存储效率&#xff0c;缺点是可能造成误判&#xff0c;就是说&#xff0c;它判定某元素在集合中&#xff0c;但是其…

运放搭建的窗口电压比较器电路

1、窗口比较器 设输入电压为Vin&#xff0c;输入范围为&#xff08;-V1~V2&#xff09;&#xff0c;要求设计电路识别输入是否在给定的电压区间&#xff08;Vd~Vt&#xff09;。 可以设计为一个电压窗口比较电路&#xff0c;窗口电压VwVsδ&#xff0c;Vs为窗口基准电压&…

ImageView倒影效果

先看下效果图&#xff1a;import android.app.Activity; import android.graphics.Bitmap; import android.graphics.Bitmap.Config; import android.graphics.BitmapFactory; import android.graphics.Canvas; import android.graphics.LinearGradient; import android.graphi…

USB连接TF卡 SD卡硬件电路

1、电路芯片 TF卡芯片选择&#xff1a;GL823K。USB2.0 SD/MMC闪存读卡器单芯片。支持USB2.0高速传输&#xff0c;并符合通用串行总线规范。 它的引脚设计适合卡插口提供更容易的PCB布局。 TF卡防静电芯片&#xff1a;SMF05C。 2、电路 分享实际项目中用到的接口电路&#…

R语言-Kindle特价书爬榜示例 输出HTML小技巧

20170209更新&#xff1a; 根据回复提示&#xff0c;rvest包更新&#xff0c;原用函数html作废&#xff0c;需改用read_html 并后续amazon网页改版等 因此此文章代码失效&#xff01;各位可看评论内容了解详情 等以后有空再重写一遍代码&#xff0c;抱歉。果然代码还是放在gith…

工业RS485接口电路设计

1、电路芯片 485芯片有很多种&#xff0c;项目中用的比较多的是高速SP3485。满足RS-485和RS-422串行协议的要求&#xff0c;兼容工业标准规范&#xff0c;数据传输速率可高达10Mbps&#xff08;带负载&#xff09;。 2、工业设计 485需要做防雷考虑、瞬态过电压抑制、阻抗匹配…

MyBatis学习笔记(一)——MyBatis快速入门

转自孤傲苍狼的博客&#xff1a;http://www.cnblogs.com/xdp-gacl/p/4261895.html 一、Mybatis介绍 MyBatis是一个支持普通SQL查询&#xff0c;存储过程和高级映射的优秀持久层框架。MyBatis消除了几乎所有的JDBC代码和参数的手工设置以及对结果集的检索封装。MyBatis可以使用简…

一个USB HUB电路分享

1、USB HUB 当USB接口不够用的时候&#xff0c;可以采用USB HUB电路进行扩展&#xff0c;将一个USB接口扩展为多个&#xff0c;并可以使这些接口同时使用的装置。USB HUB根据所属USB协议可分为USB2.0 HUB、USB3.0 HUB与USB3.1 HUB。 选用的USB HUB芯片为 USB2514B. 参考文档&…

RIP、 OSPF、 EIGRP的区别

我们前面已经简单介绍了三种类型的动态路由协议算法分别是距离矢量算法&#xff0c;链路状态算法以及平衡混合算法&#xff0c;那么咱们今天就来看看这几种算法的类型代表&#xff1a;RIP、OSPF、EIGRP。而且它们都是内部网关协议&#xff08;IGP&#xff09;&#xff0c;也就是…