自动创建servlet,实现网页提交数据与数据库的交互

来源:互联网 发布:桔子树一生的故事知乎 编辑:程序博客网 时间:2024/09/21 06:17

昨天初学Servlet,我采用的是手动创建servlet类,但日常开发中,基本上都用自动创建,自动创建更方便快捷,不用手动继承HttpServlet类,不用去web.xml文件中注册该servlet类,可以更高效的开发。昨天的servlet中我重写了 service()方法,对于页面数据的2种提交方式(get和Post)提交的数据未做区分处理,这是不规范不严密的,实际开发中我们基本不用service()方法,servlet中有doGet()和doPost()2个方法可以达到相同的效果,且做了区分。

关于doGet()和doPost与service()的关系,可以这样理解,当项目运行的时候,由编译系统自己首先运行service()方法,再根据页面提交的方式调用我们在servlet类中编辑的相对应doGet()或是doPost()方法。为了方便统一,我始终让servlet执行doPost()方法。详情见下图:

给servlet配置有后缀的URL:
在web.xml文件的<servlet-mapping>标签中添加
<url-pattern>xxx.html</url-pattern>
,可以让servlet地址(状态栏)看起来像一个网页(强迫症,一个页面就应该是个 网页),但其实它并不是一个网页。如图:

设置servlet的初始化时间:
即init()方法的执行时间,默认情况下:第一次访问servlet时被调用(该servlet被初始化),且只能被调用一次。

在web.xml文件的<servlet>标签中添加
<load-on-startup>1</load-on-startup>
1代表序号,越小越先开启。

eg.

HttpServletResponse接口:
HttpServletResponse对象是servlet程序和servlet引擎进行通讯的接口。
servlet程序通过HttpServletResponse对象将响应正文传递给servlet引擎。
再由servlet引擎将响应正文输出到客户端。

eg.

请求转发--服务器内部跳转:

在同一个项目下的所有页面可以自由跳转,浏览器地址栏地址不变,但页面会跳转。

eg.

项目页面目录:

内部跳转:

请求重定向:

可跳转到设置的网页,包括项目外的网页,浏览器地址栏会变。

eg.

获得网络参数和本地参数:

通过HttpServletRequest 接口:

eg.

运行结果:

页面数据和数据库交互:

验证页面提交的数据是否存在于数据库中,存在则登录成功,不存在则登录失败,进行注册。

用到的数据库初始表格:

eg.

输入nn 123456 进行验证登录:

对比数据库此用户,登录成功:


输入mm 123123 进行验证登录:

对比数据库mm不存在,登录失败,进行 注册:

注册完成查看数据库mm成功添加,则注册成功。

判断是否登录成功是否要进行注册代码:

登录失败,注册页面代码:

在jsp页面写Java代码:

jsp文件本身就是servlet的另一种形式,故可以写Java代码。

eg.

对比数据库此用户,登录成功图片和计算结果也出来了。

原创粉丝点击