day42
web
get和post请求乱码问题
一. form表单的get请求如果在tomcat8.0版本之前,是需要手动设置字符集的,否则会出现中文乱码问题
- String name=request.getParametere("user");
name=new String(name.getBytes("iso-8859-1"),"utf-8"); - 在server.xml设置端口号的标签中添加URIEncoding="UTF-8"
二. post请求乱码问题
- request.setCharacterEncoding("UTF-8");
- response.setCharacterEncoding("UTF-8");
三. 页面常见的两种错误
- 404:
(1). 页面路径不正确
(2). tomcat服务没有启动 - 500:页面上的java代码有问题(编译错误/代码运行抛异常)
转发和重定向
- 转发和重定向
流程:表单提交到的页面不做内容显示.只做内容的校验以及页面的跳转
例如:douser.jsp这个页面只做用户名和密码的判断,如果判断满足要求,则跳转到另外的页面进行内容的展示,如果不满足要求,则回到原来的user.jsp页面,并且提示用户为什么不满足(用户名或者密码不正确)
面试题:转发(forward)和重定向(response)的区别>
转发:
(1) 地址栏不会发生变化(转发出去的页面地址不会显示)
(2) 转发只会发送一次请求(所以在转发出去的页面依然可以从request中获取用户信息)
(3) 转发的地址栏只能是当前项目中的
重定向:
(1) 地址栏会发生变化
(2) 重定向会发生两次请求
(3) 重定向的地址可以是任意的
两种方式携带想要的值
(1) 模仿get请求,在浏览器地址后面凭借?名称=值&名称=值
- 如果内容携带的中文,则需要采用一下方式解决乱码问题:
-
message=URLEncoder.encode(message,"UTF-8");转码
-
mess=URLDecoder.decode(mess,"UTF-8");解码
-
(2) 使用作用域携带参数
- 四大作用域:
-
pageContext仅限于当前页面
-
request:仅限于当次请求
-
session:仅限于当次对话
-
application:限于整个项目,相当于一个全局变量(所有用户共用)
- XXX.setAttribute("属性名","属性值"); -设置属性值
- XXXX.getAttribute("属性名"); -获取属性值
-

session
session会话:是浏览器和服务器之间的一次通话
- 当我们打开浏览器成功访问页面的时候,该通话就已经建立,只要服务器不重启session会话就会一直存在存在(此时服务器会给该用户生成一个唯一的sessionId,保存在服务端,当用户再次访问服务端的时候,如果检测到相同的sessionId,则直接获取用户信息)
session的作用:
- 通常是用来保存用户的基本信息的(登录信息),因此可以在一些指定的页面验证用户是否曾经登录过
session会话可以有以下三种方式设置失效(在服务器不重启的情况下):
(1) 让session以秒为单位失效: session.setMaxInactiveInterval(5);
(2) 立即失效(通常是用在注销按钮上)
(3) web.xml文件中配置(web项目的核心配置文件) 设置session以分钟为单位失效


浙公网安备 33010602011771号