自动创建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.
对比数据库,有此用户,登录成功,图片和计算结果也出来了。
- 自动创建servlet,实现网页提交数据与数据库的交互
- 编程实现网页表单数据的自动提交
- 编程实现网页表单数据的自动提交
- Delphi实现网页表单数据的自动提交
- Delphi实现网页表单数据的自动提交
- Delphi实现网页表单数据的自动提交
- Delphi实现网页表单数据的自动提交
- Delphi实现网页表单数据的自动提交
- Delphi实现网页表单数据的自动提交
- 使用springmvc实现网页前端与后台的数据交互
- java实现自动打开网页 自动提交数据
- Flex与Servlet之间数据的交互
- Ajax与Servlet的数据交互
- Unity3D与网页数据交互的基本原理
- Unity3D与网页数据交互的基本原理
- android与servlet交互 通过数据库把存放的十六进制的图片数据传递到客户端
- Ajax实现xml文件数据插入数据库(二)--- ajax实现与jsp的数据交互
- Ajax实现xml文件数据插入数据库(二)--- ajax实现与jsp的数据交互
- Reshape the Matrix
- Reshape the Matrix
- (OK)(OK) Android-x86-7.1.1/ kernel 4.4.62
- NDK编译——ABI管理
- 字串的连接最长路径查找(C/C++)
- 自动创建servlet,实现网页提交数据与数据库的交互
- 变量的名义
- Ubuntu16.04从零搭建lamp环境,再到跑通laravel项目
- QByteArray与QString之间的相互转换
- setTimeout和setInterval的区别
- 《加密与解密》笔记三(一)
- 51nod 1307
- processing编程【1】
- 数组