Servlet--登录案例及编码解决方案
来源:互联网 发布:广州淘宝拍照的地方 编辑:程序博客网 时间:2024/06/11 07:19
一.HTTP协议
1.什么是HTTP协议
- 就是W3C制定的规范
- 规定了浏览器和服务器如何通信及数据格式
2.如何通信
- 建立连接
- 发送请求
- 返回响应
- 关闭连接
一次请求一次连接,尽量降低服务器的压力
3.数据格式
3.1请求数据
- 请求行:本次请求的基本信息
- 消息头:对发送内容的描述信息
- 实体内容:浏览器向服务器发送的具体内容
3.2 响应数据
- 状态行:本次响应的基本信息
- 消息头:对响应内容的描述信息
- 实体内容:服务器向浏览器发送的具体内容
4.开发时需要做的事情
4.1不需要开发做的事情
- 通信的方式已经由浏览器和服务器实现了
- 浏览器自动组装并发送请求数据
- 服务器自动组装并发送响应数据
4.2需要开发做的事情
- 使用request处理(接收)请求数据
- 使用response处理(拼接)响应数据
二.注册功能
三.Servlet运行原理
四.请求方式
1.什么是请求方式
- 浏览器向服务器发送请求数据的方式
2.分类
- 请求方式有很多种,需掌握其中的2种:GET和POST
3.GET和POST请求的区别(*)
1)GET
- 采用路径传参
- 参数在传递的过程中可见,隐私性差
- 只能传递少量参数
所有默认的请求都是GET请求
2)POST
- 采用实体内容传参
- 参数在传递过程中不可见,隐私性好
- 传递的数据量不受限制
在form上加method="post"
4.使用建议
- 查询数据时建议用GET,因为往往查询条件不多
- 保存、提交数据时建议用POST,因为往往保存、提交的数据较多
五.乱码解决方案
servlet代码:
package web;import java.io.IOException;import java.io.PrintWriter;import javax.servlet.ServletException;import javax.servlet.http.HttpServlet;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;public class RegServlet extends HttpServlet {private static final long serialVersionUID = 1L;@Overrideprotected void service(HttpServletRequest req, HttpServletResponse res) throws ServletException, IOException {req.setCharacterEncoding("utf-8");//处理请求的步骤://1.接受参数 //String user = req.getParameter("username1");String user = req.getParameter("username");String pwd = req.getParameter("password");String sex = req.getParameter("sex");String[] interests = req.getParameterValues("interest");//注意事项:如果参数名写错则返回null,若文本框中不输入,则返回空字符串,若单选或多选未选中,则返回null//处理request请求乱码(针对post和get都可用,但是每个数据都需要转换,很麻烦)/*byte[] bs = user.getBytes("ISO8859-1");user = new String(bs,"UTF-8");*///2.处理业务//常规的注册业务应该保存这些数据,此案例省略System.out.println(user);System.out.println(pwd);System.out.println(sex);if(interests != null){for(String str : interests){System.out.println(str);}}//3.发送响应res.setContentType("text/html;charset=utf-8");PrintWriter out = res.getWriter();out.println("<p>注册成功</p>");out.close();}/*** * 发送请求时候的乱码是由于编码不一致导致解码错误,而响应时默认都是ISO-8859-1, * 但由于此编码不包含中文,二者有区别 */}
reg.html网页如下:
<!DOCTYPE html><html><head><meta charset="UTF-8"><title>注册</title></head><body> <!-- 1.完整路径 http://localhost:8080/servlet1/reg 2.绝对路径 格式:/项目名/访问路径 例如:servlet1/reg 3.相对路径(重点) 相对路径不能以斜线开头 只需写出目标和当前页面的相对位置 当前页面:/servlet1/reg.html 访问目标:/servlet1/reg 相对路径为:reg --> <form action="reg" method="post"> <p>帐号:<input type="text" name="username"/></p> <p>密码:<input type="password" name="password"/></p> <p>性别: <input type="radio" name="sex" value="M"/>男 <input type="radio" name="sex" value="F"/>女 </p> <p> <input type="checkbox" name="interest" value="sport"/>运动 <input type="checkbox" name="interest" value="music"/>音乐 <input type="checkbox" name="interest" value="movie"/>电影 </p> <p><input type="submit" value="注册"/></p> </form></body></html>
0 0
- Servlet--登录案例及编码解决方案
- Servlet过滤器案例-自动登录
- samba案例及解决方案
- 使用SERVLET完成用户登录案例
- 补10.17Servlet 登录注册案例 连接数据库
- Oracle错误代码案例总结及解决方案
- 实际sql攻击案例及解决方案
- Oracle错误代码案例总结及解决方案
- servlet及jsp中的编码设置
- servlet及jsp中的编码设置
- Servlet 中文乱码问题及解决方案剖析
- Servlet 中文乱码问题及解决方案剖析
- Servlet 中文乱码问题及解决方案剖析
- Servlet 中文乱码问题及解决方案剖析
- Servlet 中文乱码问题及解决方案剖析
- Servlet 中文乱码问题及解决方案剖析
- Servlet 中文乱码问题及解决方案剖析
- Servlet 中文乱码问题及解决方案剖析
- 数据结构——栈的学习
- 随手记录-通信协议基础知识
- Codeforces gym 101102 A dp
- 如何用一个宏将一个数字的奇数位和偶数位交换
- JS 中除cookie存储外,还有哪些存储方式?
- Servlet--登录案例及编码解决方案
- JSON学习笔记
- AndroidAnnotations注解框架
- 随手记录--网络编程
- Hibernate 异常CacheException: Another unnamed CacheManager already exists in the same VM
- hust 5239 Doom(线段树 规律OR数论 待整理 )
- mysql 视图
- 337. House Robber III
- HDU