您的位置:首页 > 数据库

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

2017-07-05 23:55 1086 查看
昨天初学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.













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



内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  servlet jdbc jsp web.xml mysql