zoukankan      html  css  js  c++  java
  • javaweb学习4——HttpServletRequest的使用

    声明:本文只是自学过程中,记录自己不会的知识点的摘要,如果想详细学习JavaWeb,请到孤傲苍狼博客学习,JavaWeb学习点此跳转

    本文链接:https://www.cnblogs.com/xdp-gacl/p/3798347.html

    getParameter(String)方法(常用)
    getParameterValues(String name)方法(常用)
    MessageFormat.format(String pattern, Object... arguments)// 替换字符串内的占位符

    提交中文数据乱码问题总结:

    1、如果提交方式为post,想不乱码,只需要在服务器端设置request对象的编码即可,客户端以哪种编码提交的,服务器端的request对象就以对应的编码接收,比如客户端是以UTF-8编码提交的,那么服务器端request对象就以UTF-8编码接收(request.setCharacterEncoding("UTF-8"))

    2、如果提交方式为get,设置request对象的编码是无效的,request对象还是以默认的ISO8859-1编码接收数据,因此要想不乱码,只能在接收到数据后再手工转换,步骤如下:

    1).获取获取客户端提交上来的数据,得到的是乱码字符串,data="???è?????"

    String data = request.getParameter("paramName");

    2).查找ISO8859-1码表,得到客户机提交的原始数据的字节数组

    byte[] source = data.getBytes("ISO8859-1");

    3).通过字节数组以指定的编码构建字符串,解决乱码

    data = new String(source, "UTF-8");

    通过字节数组以指定的编码构建字符串,这里指定的编码是根据客户端那边提交数据时使用的字符编码来定的,如果是GB2312,那么就设置成data = new String(source, "GB2312"),如果是UTF-8,那么就设置成data = new String(source, "UTF-8")

    转发:

    ①:request.getRequestDispatcher("/test.jsp").forward(request, response);

    ②: RequestDispatcher reqDispatcher =this.getServletContext().getRequestDispatcher("/test.jsp");    reqDispatcher.forward(request, response);

    重定向:

    response.sendRedirect("/servlet/xxx.java");

    转发应用:

    // 后台
    String data="大家好"; /** * 将数据存放到request对象中,此时把request对象当作一个Map容器来使用 */ request.setAttribute("data", data); //客户端访问RequestDemo06这个Servlet后,RequestDemo06通知服务器将请求转发(forward)到test.jsp页面进行处理 request.getRequestDispatcher("/test.jsp").forward(request, response);
    //前台
    使用普通方式取出存储在request对象中的数据:
    <h3 style="color:red;"><%=(String)request.getAttribute("data")%></h3>
    使用EL表达式取出存储在request对象中的数据:
    <h3 style="color:red;">${data}</h3>

    java正则使用:

    // 获取用户名
    String username = request.getParameter("username");
    Pattern pat = Pattern.compile("^[u4e00-u9fa5]");
    Matcher matcher = pat.matcher(username);
    if (matcher.find()){
      return;
    }
  • 相关阅读:
    MySQL性能优化的最佳20+条经验
    memcached demo 应用例子
    关于 MySQL 主从复制的配置(转)
    java date 日期 利用 Calendar 实现增加一年月日时分秒
    Struts2中s:set标签和s:if标签小结
    hibernate oracle 配置序列 实现自动增长
    mysql5.1.47二进制版本的安装(转)
    Confluence3.4的安装和配置
    linux MemCache安装手册
    Java实现文件拷贝的4种方法(转)
  • 原文地址:https://www.cnblogs.com/dulianyong/p/10197322.html
Copyright © 2011-2022 走看看