Request
来源:互联网 发布:java字符串转数组 编辑:程序博客网 时间:2024/06/10 01:43
Request
完成用户注册的案例
使用request获得表单请求参数
- 掌握重定向和转发区别
案例一:用户注册的案例
一,需求分析
在注册页面中输入相关的内容,点击注册按钮将输入的数据保存到数据库中.注册成功,跳转到登录页面.
二,技术分析
1.Request对象概述
在Servlet API中,定义了一个HttpServletRequest接口,它继承自ServletRequest接口,专门用来封装HTTP请求消息。由于HTTP请求消息分为请求行、请求消息头和请求消息体三部分,因此,在HttpServletRequest接口中定义了获取请求行、请求头和请求消息体的相关方法.
Web服务器收到客户端的http请求,会针对每一次请求,分别创建一个用于代表请求的request对象、和代表响应的response对象。
2,获取客户机信息(操作请求行)
请求方式 URI 协议版本
GET /web17Request/login.html HTTP/1.1
getMethod();获取请求方法
getRemoteAddr() ;获取客户机的IP地址
- getRequestURI();获得请求地址,不带主机名
- getRequestURL();获得请求地址,带主机名
- getServerPort();获得服务端的端口
- getContextPath();获得当前应用工程名; /web17Request
- getQueryString();获的请求参数(get请求的,URL的?后面的. eg:username=zs&password=12345)
3.获得请求头信息
- User-Agent: 浏览器信息
- Referer:来自哪个网站(防盗链)
4.接受请求参数(请求体 )
5.作为域对象存取值,*掌握
- Object getAttribute(String name) ;
- void setAttribute(String name,Object object) ;
- void removeAttribute(String name) ;
三,步骤分析
1.准备工作
1.1创建数据库和表
create database web17;use web17;create table user( id int primary key auto_increment, username varchar(20), password varchar(20), name varchar(20), email varchar(30), sex varchar(10), hobby varchar(50), birthday date);
1.2创建包结构,创建实体类
1.3整理登录页面
1.4引入数据库相关的包和工具类
2.思路分析
创建一个注册页面
创建数据库
点击注册按钮,
把信息提交到registerServlet,写入数据库
注册成功跳转到登录页面
四,代码实现
五,总结
1.接收和封装数据简化
使用工具类:简化数据的封装.BeanUtils是Apache的工具类.
使用BeanUtils,导入如下jar包:
commons-beanutils-1.8.3.jar
commons-logging-1.1.1.jar
可以自动封装基本数据类型(8种),引用类型(date,String[])不能自动转换,
注意的地方: 1.引用类型不能封装
2.如果表单里面的name属性值和javabean里面的字段属性不一致,封装不了
2,request请求乱码解决
post方式
request.setCharacterEncoding("utf-8");
get方式
new String(name.getBytes("iso8859-1"),"utf-8");
1.为什么出现乱码?
编码和解码字符集不一样
2.处理办法: Servlet:(解决post方式和输出的中文乱码)
request.setCharacterEncoding("utf-8");response.setContentType("text/html;charset=utf-8");
3.转发和重定向区别 **重要
转发
request.getRequestDispatcher(url).forward(request, response);
- 转发是一次请求,重定向是二次请求
- 转发地址栏路径不变,重定向地址栏路径改变了
- 转发写跳转路径的时候,不需要加工程名;重定向需要加工程名
- request域对象存取的值在转发(一次请求)中是有效的,在重定向(两次请求)无效的
4.作为域对象存取值
- void removeAttribute(String name)
- void setAttribute(String name, Object o)
- getAttribute(String name)
注意:
- 在一次请求范围内有效
- Request
- request
- Request
- request
- request
- request
- Request
- request
- request
- request
- request
- request
- request
- Request
- request
- request
- request
- request
- 黑白球/古典概率的计算
- SpringMVC多个文件上传以及上传后立即显示图片
- retainall的问题
- ServletContext&Response
- Mac
- Request
- java面向对象之成员变量和局部变量 以及他们的内存分配
- 爬格子呀5-7
- 使用MFC的CDC类绘制二维坐标系及正余弦函数
- php 数组排序
- jsp
- Android 使用Scroller来实现item滑动删除
- 在当前目录下运行CMD,方法收录
- 使用MFC的CDC类绘制三维坐标系及球面函数