页面图片的路径为汉字时显示红叉的解决方法

本文介绍如何通过修改Tomcat的server.xml文件中的Connector元素来解决因URI编码问题导致的访问异常。通过添加useBodyEncodingForURI及URIEncoding属性,可以确保URL中的中文等特殊字符正确显示。
例如http://192.168.1.124:8080/rar_data/你.jpg
在tomcat下的conf\server.xml文件中的
<Connector port="8080" protocol="HTTP/1.1" 
               connectionTimeout="20000" 
               redirectPort="8443">
改成:

<Connector port="8080" protocol="HTTP/1.1" 
               connectionTimeout="20000" 
               redirectPort="8443" useBodyEncodingForURI="true"  URIEncoding="utf-8"/>
就OK了

 

package servlet; import java.io.IOException; import javax.servlet.ServletException; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import Dao.AddStudentDao; import Dao.UpdateStudentDao; public class UpdateStudentServlet extends HttpServlet{ @Override protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { //解决中文乱码问题 req.setCharacterEncoding("utf-8"); resp.setContentType("text/html;charset=utf-8"); //获取前台页面的数据 String sid = req.getParameter("sid"); System.out.println(sid); String sname = req.getParameter("sname"); String sage = req.getParameter("sage"); //调用dao的插入学生的方法 UpdateStudentDao asd = new UpdateStudentDao(); int rs = asd.updateStudent(sid, sname, sage); if(rs!=0){ System.out.println("更新成功"); req.getRequestDispatcher("slist").forward(req, resp); }else{ System.out.println("更新失败"); } } } package Dao; import java.sql.PreparedStatement; import java.sql.ResultSet; import java.sql.SQLException; import java.sql.Statement; import java.util.ArrayList; import com.mysql.jdbc.Connection; import javaBean.Student; import test.DBUtil; public class AddStudentDao { public int addStudent(String sid,String sname,String sage){ int rs=0; Connection con = (Connection) DBUtil.getCon(); String sql="insert into student values(?,?,?)"; try{ PreparedStatement ps = con.prepareStatement(sql); ps.setString(1, sid); ps.setString(2, sname); int sage1 = Integer.parseInt(sage); ps.setInt(3, sage1); rs = ps.executeUpdate(); }catch (SQLException e){ e.printStackTrace(); } return rs; } } <servlet> <servlet-name>updateStudent</servlet-name> <servlet-class>servlet.UpdateStudentServlet</servlet-class> </servlet> <servlet-mapping> <servlet-name>updateStudent</servlet-name> <url-pattern>/updateStudent</url-pattern> <form action="updateStudent" method="post"> <table> <tr> <td> 学号:<input type="text" name=sid/> </td> </tr> <tr> <td> 姓名:<input type="text" name=sname/> </td> </tr> <tr> <td> 年龄:<input type="text" name=sage/> </td> </tr> </table> <tr> <td> <input type="submit"/> <input type="reset"/> </td> </tr> </form> 这是根据MVC思想的更新线路的代码,问题是405,http上面本应该到相应.jsp文件,实际就是action中updateStudent而已然后页面出现405错误,控制台是更新失败,深入排查doPost下面System了没有输出,在servlet中的String sid = req.getParameter("sid");下面System.out.println(sid)为空,你给出的是没有调用doPost方法是为什么,什么意思
11-14
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值