天天看点

基于Servlet、JSP、JDBC、MySQL的一个简单的用户注册模块(附完整源码)

最近看老罗视频,做了一个简单的用户注册系统。用户通过网页(JSP)输入用户名、真名和密码,Servlet接收后通过JDBC将信息保存到MySQL中。虽然是个简单的不能再简单的东西,但麻雀虽小,五脏俱全,在此做一归纳和整理。下面先上源码:

一、index.jsp

它的运行结果如下:

基于Servlet、JSP、JDBC、MySQL的一个简单的用户注册模块(附完整源码)

二、点击上面的“点击注册”就跳转到了pass.jsp:

运行效果如下:

基于Servlet、JSP、JDBC、MySQL的一个简单的用户注册模块(附完整源码)

三、除上面两个jsp代码外,剩下的就是java代码了。先来看java代码的结构:

基于Servlet、JSP、JDBC、MySQL的一个简单的用户注册模块(附完整源码)

不得不说JavaWeb是一个绝好的理解MVC架构思想的载体,上述有四个包,每个包下面一个文件。在功能的划分上有条不紊。

1、com.product.jdbc.dbutil 这个包里是基于jdbc驱动的一个工具类JdbcUtils.java,代码已经贴出来了,参见

2、com.product.register.action所谓的action扮演了MVC里的C的角色,即Control层,里面放的是各种Servlet。接收来自V(View)---客户端页面jsp回传的数据,然后调M层,把数据存进去。RegisterAction.java的代码:

3.com.product.register.service 这里的service其实是一个接口,RegisterService.java代码:

4.既然有接口就一定有接口的实现者,实现者就是com.product.register.dao下的RegisterDao.java, 负责操纵数据库,将信息存到表里。

下图是输入一个用户的信息:

基于Servlet、JSP、JDBC、MySQL的一个简单的用户注册模块(附完整源码)

用Navicat打开数据库可以看到:

基于Servlet、JSP、JDBC、MySQL的一个简单的用户注册模块(附完整源码)

代码就完毕了,下面是开发要点:

1、关于中文乱码的问题,按老罗的视频一开始我的也乱码,经研究需要三个地方同时设置utf-8编码,第一是数据库里表的编码,第二是jsp的编码:pageEncoding="utf-8" 第三是在Servlet里同时设置response和request的编码,代码如下:

request.setCharacterEncoding("utf-8");

response.setContentType("text/html; charset=utf-8"); 记住是缺一不可哦!!!

2、关于JSP往JSP页面的跳转很简单:

<a href="<%=path%>/pass.jsp">点击注册</a> 超链接里直接放要跳转jsp的相对路径即可。

3、JSP往Servlet跳转:

<a  href="javascript:dosubmit();">

<img src="<%=path%>/images/ok_1.jpg" name="Image8" width="60" height="22" border="0"> </a> 

也是用的href超链接,在地址里写"javascript:dosubmit();". 这就需要定义dosubmit()函数:

获得一个表单,然后根据input时的名字获取对应value,

<INPUT class=text2 maxLength=20 size=18 name="username" minLength="1"> 

4、上面可以看到jsp往servlet跳转过程中先经过javascript,接下来说白了是javascript往servlet跳转:

th.action="<%=path%>/servlet/RegisterAction"

th.submit();

5、Servlet往jsp跳转:

response.sendRedirect(path + "/index.jsp");这种方法浏览器地址发生变化,传参数可以再URL地址里或用session,不能使用request.setAttribute来传参数。另一种使用forward来传,详细参见这里:  

6、纵观整个架构,RegisterAction是控制中枢,数据经jsp----javascript传到RegisterAction。在RegisterAction里创建了接口Service的实例RegisterDao,用Dao来存数据。

关于javaEE的各层分工,详见

7.因为要访问数据库,记得将mysql-connector-java-5.1.26-bin.jar拷贝到WebRoot文件夹下的WEB-INF/lib文件夹下。

另外在web.xml里要配对,jsp里用到了css。其他的细节看源码吧。

下载链接: