Java Web学习十七:网站用户注册登录;预约信息

news/2024/5/20 23:53:51/文章来源:https://blog.csdn.net/qq_43605085/article/details/96478401

Java Web学习十七:网站用户注册&登录;预约信息

  • 一:案例任务
  • 二:准备阶段
  • 三:代码分析与展示
    • 1.工具类的代码分析:
    • 2.注册功能代码分析

刚刚学习初期,我们写了网站用户的注册以及登录功能,但是它的框架结构 没有体现MVC。就由以下荣县网站案例来写一个具有三层架构的网站实现用户的登录注册,预约信息到数据库。
在这里插入图片描述

一:案例任务

1.注册和登录

自己写简易的登录注册页面,实现登录和注册功能,要求用到验证码。登录成功后此处不再显示“登录 注册”,改为显示用户名
2.预约

用户登录后可以预约医院,要求将预约信息保存到数据库即可。

数据库使用MySQL

二:准备阶段

导入数据库操作的lib包 和c3p0配置文件,以及前端给的页面和css,js,img文件
首页index.jsp页面进行处理,得到header和footer两个jsp页面方便进行操作。

构建起三层架构:**web,service,dao这三层,以及DBUtils工具类与domain实例

数据库结构

三:代码分析与展示

1.工具类的代码分析:

(1)DBUtils:作为一个简化版的jdbc,其目的就是操作数据库,我们将它加入事务的操作。先看代码:
介绍下 ThreadLocal :它一个当前线程里面的一个存储集合,其实它的底层是一个Map,也有着key-value,这样将Connection资源绑定到ThreadLocal上,这样一来就有这相同的Connection

使用它的目的:有一个问题 当我们的dao层与service层都需要使用同一个Connection,简单的getConnection势必会每次拿取不同,所以我们就需要使用它。它的key默认的对应该线程,value则是对应着连接器Connection。

DBUtils.getCurrentConnection(); 以示区分我写成getCurrentConnection()即获得同一个Connection。

(2)代码分析:

QueryRunner无参数的构造:QueryRunner runner = new QueryRunner(); 拿取连接器时,直接使用DBUtils里面的方式拿取。

getCurrentConnection()方法,从ThreadLocal寻找当前线程的Connection,如若没有就通过当前连接池的方法从当前连接池中拿取一个新的Connection。tl.set(con); 将conn资源绑定到ThreadLocal上做为该线程的连接器。

注意:提交 关闭资源及从ThreadLocall中释放(从当前线程解除)
con.commit(); // 事务提交
con.close();// 关闭资源
tl.remove();// 从线程绑定中移除

2.注册功能代码分析

regist的jsp页面代码:上面分别通过jsp引入header和footer

中间就嵌套一个from表单,表单的提交处使用EL表达式进行根路径的书写${pageContext.request.contextPath}/Servlet’s name

(1)web层:主要是接收网页表单的所给参数,然后将参数传给service层进行事务处理,最后通过事务返回结果进行重定向 或者提示错误。
(2)service层:通过web层所给数据,通过调用dao层的操作数据库的方法进行事务处理,返回给web层事务成功与否信息。
注意:在finally处提交事务,失败的话,事务回滚,SQL语句不会执行,相当于只是开启和提交关闭事务。

(3)dao层的registUser方法,进行数据库的操作
通过getCurrentConnection()获取当前线程的连接器进行update(更新)操作。

(4)注册成功重定向的html页面

3.登录功能代码分析
(1)web层:获取参数传递给service层事务处理,然后返回一个user实体对象是否为空判断是否成功,进行重定向转发(将username存储到session域中保证此次会话一直具有username)

成功登陆的jsp页面再通过获取session域中的username来显示用户名
(2)service层(3)dao层的登录方法

查找数据库中是否有该用户,成功的话就返回一个user实体对象,失败就null。
(4)成功登陆界面,通过对网站首页的修改,进行显示用户名
在这里插入图片描述
4.登陆成功后预约信息功能
(1)工具类ConvertInformation:将预约的参数转换成信息,传入数据库

jsp页面:
我采用from包着这个二级联动表格进行提交。

页面信息JavaScript代码:
我们可以看到js里面获取的是代码代表着各个参数,所以我们需要编写工具类,转换这些信息。

ConvertInformation类就是讲代码转换成信息,传入。
(2)web层:接受表单代码,转化成信息传递给service层事务处理,通过返回值判断是否进行重定向
(3)service层
(4)dao层的预约方法(执行更新操作)
(5)预约成功后的html页面

预约成功的数据库界面在这里插入图片描述

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

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

相关文章

黄阶中级-《大型网站技术架构》- 概述 - 修改0次

1、大型网站架构演化 互联网站的发展仅仅经历了 20 多年的时间。 大型网站软件系统的特点: 高并发、高流量。谷歌日均 PV 几十亿。 PV (访问量):即 Page View , 即页面浏览量或点击量,用户每次刷新即被计算一次高可用。百度被黑就会成为热…

GCP搭建网站后403解决

由于开发需要,在本地用虚拟机配置了LNMP环境,使用的是Centos 6.8的yum安装,安装一切正常,但是使用默认的网站配置目录,是在/usr/share/nginx/html这个目录下。简直是有点奇葩了。 于是乎,我先将默认的配置…

【iPhone】网络编程–一起来做网站客户端(一)

http://www.pan-apps.com/?p281 最近几天,一直在学习网络编程方面,我觉得这是移动开发必须了解的知识吧 在实践中学习,才是最好的方法 于是就决定为公司OA系统做一个iphone客户端,但是前提是这个系统没有提供任何API,所以只能悲剧…

编程要趁早 BI推荐8个编程学习网站

http://www.cocoachina.com/applenews/devnews/2013/0329/5914.html 最近一个热门话题是雅虎以3000万美元收购了移动阅读应用Summly,真正让人吃惊的不是3000万美元的价格值不值,而是Summly的开发者--只有17岁的尼克达洛伊西奥。他12岁开始学习编程&#…

自动为 Gatsby网站中的 Markdown 页面添加 sidebar

0 简介 我想在Gatsby网站上创建Markdown页面时自动添加侧边栏。 有一个 starter “ gatsby-gitbook-starter” 可以支持markdown文件的侧边栏,但仅支持1级。 我希望能够支持更多级别。 你可以通过下面的命令安装这个starter。 gatsby new gatsby-gitbook-starter…

如何在标题栏title前添加网站logo?

第一种方法&#xff1a;据说在网站根目录下放着我们的ico型logo&#xff0c;命名为favicon.ico&#xff0c;浏览器会自动去找到并显示。试了试&#xff0c;在firefox23和ie8下都没有成功。 第二种方法&#xff1a;添加代码&#xff0c;如下&#xff1a; 1 <link rel"sh…

阿里云域名解析完成后仍然无法通过域名正常访问网站

通过阿里云进行域名解析后&#xff0c;仍然无法正常访问网站的解释&#xff0c;与解决办法 1、域名解析完成后&#xff0c;未在主机管理页面进行域名绑定。 域名绑定流程&#xff1a; 进入阿里云虚拟主机页面&#xff0c;找到相应的虚拟主机&#xff0c;点击后面的管理。 点击…

web页面性能优化以及SEO

前言&#xff1a; 在同样的网络环境下&#xff0c;两个同样能满足你的需求的网站&#xff0c;一个“Duang”的一下就加载出来了&#xff0c;一个纠结了半天才出来&#xff0c;你会选择哪个&#xff1f;研究表明&#xff1a;用户最满意的打开网页时间是2-5秒&#xff0c;如果等…

wordpress建站优化技巧

wordpress是一款开源的PHP博客程序&#xff0c;可以有大量的开源主题与插件&#xff0c;使用液非常简单&#xff0c;wordpress在全球范围应用都十分广泛&#xff0c;根据Pingdom.com最近发布的一份数据&#xff0c;2013年在Technorati排名前100的博客&#xff08;Technorati为一…

个人网站添加百度统计

网站如何添加百度统计&#xff1f; 上线网站后&#xff0c;需要进行网站的维护和及时观察网站的流量等方面去了解自己的网站&#xff0c;百度统计工具可以查看多少访客访问了网站&#xff0c;以及分析流量来源等情况。那应该如何为网站添加百度统计工具呢&#xff1f; 1、注册…

[转]50个c/c++源代码网站

[转]50个c/c源代码网站 Posted on 2010-03-05 14:59 feisky 阅读(1182) 评论(2) 编辑 收藏 所属分类: C/C C/C是最主要的编程语言。这里列出了50名优秀网站和网页清单&#xff0c;这些网站提供c/c源代码 。这份清单提供了源代码的链接以及它们的小说明。我已尽力包括最佳的C/C…

32个不应该做的JOOMLA SEO优化手法

32个不应该做的JOOMLA SEO优化手法 隐藏元件的方式有很多&#xff0c;這也是最常被誤用的SEO手法&#xff0c;但也是Google抓最兇的部分&#xff0c;所以你要避免&#xff1a; 1. 在白背景上使用白色文字 2. 藏字在圖的下方 3. 利用CSS隐藏文字 4. 用小字來建立鏈接以及增加…

Win7部署asp.net网站问题---HTTP 错误 500.0 - Internal Server Error 调用 LoadLibraryEx 失败...

在IIS上部署网站时遇到这样一个问题&#xff1a;“ HTTP 错误 500.0 - Internal Server Error调用 LoadLibraryEx 失败&#xff0c;在 ISAPI 筛选器 "C:\Program Files (x86)\Sybase\PowerDynamo\win32\dyisa03.dll" 上”。 具体的问题展示如图&#xff1a; 通过网络…

高效在线抠图网站

介绍几款高效的抠图网站&#xff0c;给那些不想动手的。 1、怪兽抠图 链接: https://818ps.com/koutu/ 这是一个国内的站点&#xff0c;抠图后的图片不需要登录就能下载。 点击 上传图片 上传你需要抠图的素材。 用蓝色画出想保留的区域 用红色画出想要抠除的区域 - 简单…

VS2013 发布网站时文件丢失解决办法

网站发布时&#xff0c;发现一些模板文件没有复制到文件夹中解决办法&#xff1a;选择文件打开属性窗口找到生成操作&#xff0c;选项选择“内容”&#xff0c;然后重新发布 转载于:https://www.cnblogs.com/linyongqin/articles/6393166.html

常用网站链接

IEEE802标准下载 Browse Standards | Get Program | IEEE Xplorehttps://ieeexplore.ieee.org/browse/standards/get-program/page/series?id68

WordPress使用七牛CDN加速网站教程

七牛是一个著名的云加速公司&#xff0c;国内很多大网站都在使用&#xff0c;而且对新用户会有不少的免费额度&#xff0c;如果网站不是很大的话完全够用。 今天waitig就给大家介绍一下如何使用七牛来给WordPress加速。 注册 首先去七牛注册一个账号&#xff0c;可以直接点此注…

网站进行SEO优化时如何做好布局内链?

5月12日SEO经验 昨日和杭州西湖区某企业SEO总监谈我们在优化中如何让蜘蛛有效抓取,谈到中到底站内链接布局有多重要?想必每一个专业的网站优化人员都知道,网站的每一个页面就像一张蜘蛛网一样,良好的站内链接能很好的吸引蜘蛛抓取,而且网站内链做的好,在一定程度上是可以取代外…

网站进行SEO优化是什么样的什么样的网站页面才算是高质量的页面?

现在很多SEOer都在追求权重,但权重的获取往往离不开高质量的页面,很多人把目光重点放在了首页的页面,从而忽视内页的优化,也是比较不合理的,那么在搜索引擎的认识之中,什么样的页面才算是高质量的页面呢?下面开铭网络就给大家来分享分享个人的见解。 开铭网络认为,搜索引擎判…

新站建设之初如何规划seo?新站seo这些策略和方法很关键

俗话说&#xff0c;早起的鸟儿有虫吃&#xff0c;网站优化工作也一样。勤劳的人会得到比别人更多的好处。然而&#xff0c;许多事情不是靠勤奋来实现的。我们需要注意方法和策略。如果要进行网站优化&#xff0c;在网站上线初期就要有明确的优化思路和明确的目标。从网站建设的…