request
来源:互联网 发布:微淘和淘宝的区别 编辑:程序博客网 时间:2024/06/05 06:04
1、注册案例实现
2、注册案例知识点 ----- request需求:注册页面客户录入数据,单击注册按钮进行注册操作,如果账号已经存在,给出错误提示
否则,数据插入数据库
分析:A、编写注册页面实现:
B、提交到一个 Servlet
C、Servlet 获取数据并封装成一个 JavaBean 对象
D、调用 service 和 dao 与数据库交互,存在一个业务逻辑
E、返回一个结果,根据结果给出提示A、导入 UI
B、导入 jar 配置文件 以及工具类
C、设计数据库以及 JavaBean
D、模块实现
行:3、注册案例知识点 ----- UUIDrequest.getMethod();//获取请求方式头:
request.getContextPath();//动态获取项目路径(非常重要,但是以后使用 --- 结合JSP)请求头只是简单获取意义不大,必须结合具体的解析程序,比如:文件下载工具类体:
getHeader("键");//根据请求头的键获取请求头对应的值Map<String,String[]> map = request.getParameterMap();
这个方法是将表单提交的数据组织成了 Map 集合,这个Map集合的键对应表单的键
值是表单某个输入项的值组成的 String[]
如果单独使用无意义,一会结合BeanUtils 使用可以简化 JavaBean 对象的创建代码
A、以后表的 ID 不使用数字类型而是 varchar 类型4、注册案例知识点 ----- BeanUtils因为数字类型存在安全隐患:B、当前解决方案(不行):
uid int primary key auto_increment
高并发时,可能出现重复的 id 值,线程安全问题System.currentTimeMillis();//也有可能出现重复C、ID 生成优化:UUIDString id = UUID.randomUUID().toString();//生成的是 36 位的
一般使用:
id.replace("-","");
A、应用场景5、注册案例知识点 ----- 页面跳转开发中数据库表与JavaBean字段比较多,在类似于注册的操作实现中:B、使用 BeanUtils + getParameterMap() 简化 JavaBean 数据设置
如何将客户端提交的数据设置进 JavaBean 对象?
之前:先 getParameter("xxx"),再 setXxx("");
显然效率低
使用流程:1)、导入 jar 包注意:
2)、request.getPatameterMap();//获取客户端提交的数据
3)、创建 JavaBean 对象
4)、BeanUtils.populate(JavaBean对象,map 集合);如果某个JavaBean的字段在Map集合中不存在,那么必须手动设置C、BeanUtils 使用注意:1)、Map集合可以不使用泛型类型
2)、BeanUtils 可以将字符串转换成对应的基本数据类型
3)、但是如果字符串是时间,那么得自定义时间转换器进行转换//创建时间转换器对象
DateConverter dc = new DateConverter();
//声明可以转换的时间的格式
dc.setPatterns(new String[]{"yyyy-MM-dd","yyyy/MM/dd"});
//在BeanUtils中注册自己设置的时间转换器,声明转换成的数据的类型
ConvertUtils.register(dc, Date.class);
A、应用场景:比如登陆或注册完成跳转到网站首页B、页面跳转怎么实现?方案1:请求转发C、请求转发实现:
方案2:重定向
需求:访问A跳转到B1、A中实现:简化:
将B资源按照面向对象思想封装成一个 RequestDispatcher 对象request.getRequestDispatcher("/B路径");2、A中实现:
//注意:该路径无项目名
将请求和响应转发到Brd.forWard(request,response);request.getRequestDispatcher("/ServletB").forward(request, response);常用小功能:源:设置数据request.setAttribute("键","值");常用此方式在不同的资源之间传递数据
目的:获取数据 request.getAttribute("键");
D、重定向需求:访问C跳转到D
response.sendRedirect("/项目名/D路径");
重定向不能像请求转发一样进行数据传递
E、请求转发与重定向比较
1)、请求转发浏览器地址栏不变
而重定向地址栏改变
为什么?
2)、使用的路径不同
请求转发: /资源路径
重定向:/项目名/资源路径
为什么?根据当前使用资源的场景分析(记住):
如果服务器内部使用某个资源,那么不需要加项目名
如果是客户端使用资源,那么需要加项目名
3)、请求转发可以携带共享数据
重定向不能共享数据
为什么?请求转发在同一个程序内,而重定向跨程序
请求转发和重定向的本质区别:前者再服务器跳转后者在客户端跳转
阅读全文
0 0
- Request
- request
- Request
- request
- request
- request
- Request
- request
- request
- request
- request
- request
- request
- Request
- request
- request
- request
- request
- hdu2141(二分)
- 从零开始前端学习[25]:万一你没有UI美工的时候,就要选择阿里矢量图了
- 巩固练习题1
- 策略模式与状态模式这一对孪生兄弟
- AlarmManager延时任务不生效
- request
- 并发包消息队列BlockingQueue与反射api
- 第四周项目3
- leetcode Symmetric Tree
- 算法练习(9):Longest Common Prefix
- luogu1516 POJ1061 青蛙的约会
- Xilinx ZYNQ 7000+Vivado2015.2系列(三)之HelloWorld实验(最小系统)(纯PS)
- 前端入门理解
- 中国行政区划的英文介绍