JSP数据交互(一)---内置对象》request(乱码解决)理解原理解决乱码问题

Jsp内置对象之out:

  • JSp内置对象是Web容器创建的一组对象

(没有进行声明创建但却可以使用out对象)

不经常使用的内置对象

pageContext:内置对象的集大成者

config:指定Jsp页面初始配置的 Servlet

page: 当前jsp实例化的对象  一般很少用

exception:(isErrorPage)异常处理之后会出现  页面处理异常   很少使用(一般在java代码中就处理异常)

经常使用的内置对象

session

application

out

request

response

  • out对象是JspWrite类的实例
out常用方法
方法名称说明
void print(Object c)向客户端打印数据(将客户端类型的数据转换成字符串  )
void write (charset)向客户端打印数据(字符,字符数组,字符串)---不可以打印空值
void println(Object c)

向客户端打印数据(将各类类型的数据转换成字符串)并换行

 JSP内置对象之request:

(如何获取用户填写的信息)

request对象主要用于处理客户端请求

 

request对象常用方法:

代码演示:(register.jsp):

<table>
    <form action="registInfo.jsp" method="post">
    <tr>
        <td>用户名:</td>
        <td><input type="text" name="userName"></td>
    </tr>
    <tr>
        <td>密码:</td>
        <td><input type="password" name="password"></td>
    </tr>
    <tr>
        <td>消息来源:</td>
        <td><input type="checkbox" name="channel" value="报刊">报刊</td>
        <td><input type="checkbox" name="channel" value="朋友推荐">朋友推荐</td>
        <td><input type="checkbox" name="channel" value="电视">电视</td>
        <td><input type="checkbox" name="channel" value="网络">网络</td>
    </tr>
        <tr>
            <td colspan="2">
                <input type="submit" value="提交">
            </td>
        </tr>
    </form>
</table>

registInfo.jsp:

<body>
<%
  String name = request.getParameter("userName");
  String password = request.getParameter("password");
  String[] channels = request.getParameterValues("channel");
%>
<table>
  <caption>你输入的注册信息</caption>
  <tr>
    <td>用户名:</td>
    <td><%=name%></td>
  </tr>
  <tr>
    <td>密码:</td>
    <td><%=password%></td>
  </tr>
  <tr>
    <td>信息来源:</td>
    <td><%
      for (String channel : channels) {
        out.print(channel);
      }
        %></td>
  </tr>
</table>
</body>

 运行结果:

 信息读取显示页面 。出现乱码情况。

为什么只有我们输入的中文会出现乱码????

1.jsp页面本身的编码

一旦一种编码格式已经指定,另外一种编码格式如果不进行指定的话,默认都采用指定的编码格式

        pageEncoding:页面本身的编码

        contentType:浏览器渲染页面的时候采用的编码格式

2.浏览器渲染页面采用的编码   ----》utf-8

3.服务器保存数据采用的编码(request)ISO-8859-1编码来保存数据的

在页面设置支持中文字符集,如UTF-8

获取数据时解决中文乱码问题。()

POST方式:设置的是request内部保存数据的格式,不包括url

//POST方式(在获取数据前加这行代码)
request.setCharacterEncoding("utf-8"); //设置的是request内部保存数据的格式,不包括url

GET方式:

  //对请求数据进行字符便编码
  name =new String(name.getBytes("ISO-8859-1"),"utf-8");

在tomcat上做文章:

在tomcat---》conf---》server.xml下修改如下:

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值