这篇文章主要介绍了 JSP 数据交互实现过程解析, 文中通过示例代码介绍的非常详细, 对大家的学习或者工作具有一定的参考学习价值, 需要的朋友可以参考下
1.JSP 内置对象: JSP 内置对象是 web 容器创建的一组对象, 不用通过手动 new 就可以使用
2.JSP9 大内置对象:
对象名称 类型
- request (请求对象) javax.servlet.ServletRequest
- response(响应对象) javax.servlet.SrvletResponse
- out (输出对象) javax.servlet.jsp.JspWriter
- session (会话对象) javax.servlet.http.HttpSession
- application(应用程序对象) javax.servlet.ServletContext
- page(页面对象) javax.lang.Object
- pageContext(页面上下文对象) javax.servlet.jsp.PageContext
- config(配置对象) javax.servlet.ServletConfig
- execption(例外对象) javax.lang.Throwable
3.JSP 内置对象: out
- <%
- int[] value = {
- 60, 70, 80
- };
- for (int i : value) {
- // 将输出信息输出到控制台
- System.out.println("控制台:"+i);
- //out 作为 JSP 最简单的内置对象, 主要用于将信息输出到页面上
- out.println(i);
- }
- %>
4.JSP 内置对象: request: 客户端向服务器端发送请求数据, 我们通过 request 对象接收数据
- <%
- // 获取数据之前解决乱码 解决表单 POST 提交方式的乱码
- request.setCharacterEncoding("UTF-8");
- //request 用于获取客户端向服务器提交的数据
- String username=request.getParameter("username");
- String password=request.getParameter("password");
- // 获取表单组件对应多个值时的请求数据
- String [] hobbys=request.getParameterValues("hobby");
- for(int i=0;i<hobbys.length;i++){
- // 获取数据之前解决乱码 解决表单 Get 提交方式的乱码
- /* hobbys[i]=new String(hobbys[i].getBytes("ISO-8859-1"),"UTF-8"); */
- out.print(hobbys[i]);
- }
- out.println();
- out.println(username+"\t"+password);
- // 性别
- String sex=request.getParameter("sex");
- out.println(sex);
- // 下拉框地址
- String address=request.getParameter("address");
- out.println(address);
- %>
POST 和 GET 的区别:
1. 从安全角度考虑 post 更安全一些 get 不安全
2.post 方式提交数据可以提交大概几 GB 的数据 get 方式提交数据最大也就到几 KB
5. 解决乱码的方案:
post 乱码解决: request.setCharacterEncoding("UTF-8");
get 乱码解决: hobbys[i]=new String(hobbys[i].getBytes("ISO-8859-1"),"UTF-8");
6.HTTP 状态码:
1** 信息, 服务器收到请求, 需要请求者继续执行操作
2** 成功, 操作被成功接收并处理
3** 重定向, 需要进一步的操作以完成请求
4** 客户端错误, 请求包含语法错误或无法完成请求
5** 服务器错误, 服务器在处理请求的过程中发生了错误
404 和 500 错误状态码配置页面:
在当前项目的 Web.xml 当中加入如下配置信息:
- <error-page>
- <error-code>
- 500
- </error-code>
- <location>
- /500.jsp
- </location>
- </error-page>
- <error-page>
- <error-code>
- 404
- </error-code>
- <location>
- /404.jsp
- </location>
- </error-page>
7.response: 响应
转发 (是在服务器内部进行, 无法访问到除内部以外的资源):
request.getRequestDispatcher("/response/welcome.jsp").forward(request, response);
重定向 (全路径):
response.sendRedirect("/Chap02/response/Login.jsp");
区别:
1. 转发是在服务器内部进行, 重定向是客户端完成的, 需要写入全路径, 地址 xxxxxxx
2. 转发请求 1 次, 其余的操作都是在服务器内部进行的; 重定向请求至少 2 次, 其余的请求命令客户端再次请求一个 URL
3. 转发可以携带这次请求的数据, 重定向不带数据
来源: https://www.jb51.net/article/181079.htm