useUnicode=true&characterEncoding=UTF-8 和 request.setCharacterEncoding

本文详细解释了如何通过设置request.setCharacterEncoding来确保servlet能够正确地解码从jsp页面传递过来的数据。当jsp页面采用UTF-8编码而servlet使用GBK编码时,此设置尤为重要。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

转载链接


request.setCharacterEncoding  是 设置  对 从客户端获取的 数据的 解码格式,如jsp页面是UTF-8, servlet的编码是GBK,此时就需要设置 一下 request.setCharacterEncoding=“UTF-8” ,来告诉 servlet用 UTF-8 来编码格式来解码jsp传过来的数据。



// 先连接数据库 Class.forName("com.mysql.jdbc.Driver"); String url = "jdbc:mysql://localhost:3306/javaweb?useUnicode=true&characterEncoding=UTF-8"; String username="root"; String password=""; Connection conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/environment?charaterEncoding=utf-8","root","123456"); request.setCharacterEncoding("UTF-8");//设置字符编码,避免出现乱码 double time1 = Double.parseDouble(request.getParameter("time1")); double time2 = Double.parseDouble(request.getParameter("time2")); String sql = "select * from cx where time>=? and time<=?"; PreparedStatement preparedStatement = conn.prepareStatement(sql); preparedStatement.setDouble(1,time1); preparedStatement.setDouble(2,time2); ResultSet resultSet = preparedStatement.executeQuery();//执行sql语句用来返回单个 ResultSet 对象 resultSet.last();//移动到最后一条记录 %> <center> 在此段时间内共有 <font size="5" color="red"><%=resultSet.getRow()%></font>条记录 <table border="2" bgcolor="rgba(216, 191, 216, 0.5)" width="650"> <tr> <td>温度</td> <td>湿度</td> <td>光照</td> <td>时间</td> </tr> <% resultSet.beforeFirst(); while (resultSet.next()){ %> <tr align="center"> <td><%=resultSet.getString("temperature")%></td> <td><%=resultSet.getString("humidity")%></td> <td><%=resultSet.getString("guangzhao")%></td> <td><%=resultSet.getString("time")%></td> </tr> <%}%> </table> </center> <% if (resultSet!=null){ resultSet.close(); } if (preparedStatement!=null){ preparedStatement.close(); } if (conn!=null){ conn.close(); } %> 找出这段代码的错误
05-27
检查以下语法错误:<body> <a href="javascript:history.go(-1);">返回 </a> <a href="Main.jsp">主页</a> <br> <br> 编写人姓名: 胡莲 学号:20212310930228 <br> <% request.setCharacterEncoding("UTF-8"); String sxh = request.getParameter("xh").trim(); String sname = request.getParameter("name").trim(); String sclassname = request.getParameter("classname").trim(); int sage = Integer.parseInt(request.getParameter("age")); String saddress = request.getParameter("address").trim(); String sphone = request.getParameter("phone").trim(); String scity = request.getParameter("city").trim(); String snotes = request.getParameter("notes").trim(); String sql = "update student set name='" + sname + "'" + ",classname='" + sclassname + "'" + ",age='" + sage + "'"+ "'" + ",address='" + saddress + "'"+ "'" + ",phone='" + sphone + "'"+ "'" + ",city='" + scity + "'"+ "'" + ",notes='" + snotes + "'"+ "where xh='" + sxh + "'"; try { java.sql.Connection conn = null; Class.forName("com.mysql.jdbc.Driver").newInstance(); //加载驱动程序 conn = java.sql.DriverManager .getConnection( "jdbc:mysql://localhost:3306/studentdb?useUnicode=true&characterEncoding=utf8", "root", "123456"); //URL指向数据库student PreparedStatement pstatement = conn.prepareStatement(sql); //建立SQL语句 pstatement.execute(); //执行SQL语句 out.print("学生(" + sxh + "," + sname + "," + sclassname + "," + sage + ")");//打印sql out.println("信息更新成功!"); pstatement.close(); conn.close(); } catch (SQLException e1) { System.out.print("sql语句失败!"); e1.printStackTrace(); } catch (Exception e2) { System.out.print("sql语句失败!"); e2.printStackTrace(); } %> </body>
05-28
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值