day42

web

get和post请求乱码问题

一. form表单的get请求如果在tomcat8.0版本之前,是需要手动设置字符集的,否则会出现中文乱码问题

  1. String name=request.getParametere("user");
    name=new String(name.getBytes("iso-8859-1"),"utf-8");
  2. 在server.xml设置端口号的标签中添加URIEncoding="UTF-8"

二. post请求乱码问题

  • request.setCharacterEncoding("UTF-8");
  • response.setCharacterEncoding("UTF-8");

三. 页面常见的两种错误

  1. 404:
    (1). 页面路径不正确
    (2). tomcat服务没有启动
  2. 500:页面上的java代码有问题(编译错误/代码运行抛异常)

转发和重定向

  1. 转发和重定向
    流程:表单提交到的页面不做内容显示.只做内容的校验以及页面的跳转
    例如: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("属性名"); -获取属性值

image

session

session会话:是浏览器和服务器之间的一次通话

  • 当我们打开浏览器成功访问页面的时候,该通话就已经建立,只要服务器不重启session会话就会一直存在存在(此时服务器会给该用户生成一个唯一的sessionId,保存在服务端,当用户再次访问服务端的时候,如果检测到相同的sessionId,则直接获取用户信息)

session的作用:

  • 通常是用来保存用户的基本信息的(登录信息),因此可以在一些指定的页面验证用户是否曾经登录过

session会话可以有以下三种方式设置失效(在服务器不重启的情况下):
(1) 让session以秒为单位失效: session.setMaxInactiveInterval(5);
(2) 立即失效(通常是用在注销按钮上)
(3) web.xml文件中配置(web项目的核心配置文件) 设置session以分钟为单位失效
image

posted @ 2022-11-06 21:23  Ayiuuuuu  阅读(22)  评论(0)    收藏  举报