问题描述
中间超链接的地方。页面跳转不了,点击购买就弹出保存,怎么回事呀,是上面哪里出了问题吗。<%@pagelanguage="java"import="java.util.*,com.hsp.domain.*"pageEncoding="utf-8"%><%Stringpath=request.getContextPath();StringbasePath=request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";%><!DOCTYPEHTMLPUBLIC"-//W3C//DTDHTML4.01Transitional//EN"><html><head><title>MyJSP'hall.jsp'startingpage</title></head><body><h1>欢迎进入购物大厅</h1><tableborder="1"><tr><td>书名</td><td>价格</td><td>出版社</td><td>点击购买</td></tr><%ArrayListal=(ArrayList)request.getAttribute("books");for(inti=0;i<al.size();i++){Bookbook=(Book)al.get(i);%><tr><td><%=book.getName()%></td><td><%=book.getPrice()%></td><td><%=book.getPublish()%></td><td><ahref="/myshopping/ShoppingClServlet?id=<%=book.getId()%>">购买</a></td></tr><%}%><tr><tdcolspan="4"><inputtype="button"value="查看购物车"></td></tr></table><ahref="/myshopping">返回重新登录</a></body></html>
解决方案
解决方案二:
那就看你/myshopping/ShoppingClServlet的这个servlet都做了什么啊。谁说只要是超链就要跳转啊。
解决方案三:
把你的web.xml贴出来
解决方案四:
问题解决了,但跳转过去中文全是问号。怎么解决啊。<%@pagelanguage="java"import="java.util.*"pageEncoding="utf-8"%><%Stringpath=request.getContextPath();StringbasePath=request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";%><!DOCTYPEHTMLPUBLIC"-//W3C//DTDHTML4.01Transitional//EN"><html><head><title>showMycart</title><linkrel="stylesheet"type="text/css"href="css/comm.css"/></head><body><h1>我的购物车</h1><formaction="xxx"method="post"><tableborder="1"style="border-collapse:collapse;width:600px;"><tr><td>BookID</td><td>书名</td><td>价格</td><td>出版社</td><td>数量</td><td>删除</td></tr><tr><td>1</td><td>Java核心技术</td><td>119</td><td>机械工业出版社</td><td><inputtype="text"name="booknum">本</td><td><ahref="??">删除</a></td></tr><tr><tdcolspan="6"><inputtype="submit"value="update"></td></tr><tr><tdcolspan="6">所购买书籍的总价:119元</td></tr></table></form></body></html>
解决方案五:
引用3楼u014043030的回复:
问题解决了,但跳转过去中文全是问号。怎么解决啊。<%@pagelanguage="java"import="java.util.*"pageEncoding="utf-8"%><%Stringpath=request.getContextPath();StringbasePath=request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";%><!DOCTYPEHTMLPUBLIC"-//W3C//DTDHTML4.01Transitional//EN"><html><head><title>showMycart</title><linkrel="stylesheet"type="text/css"href="css/comm.css"/></head><body><h1>我的购物车</h1><formaction="xxx"method="post"><tableborder="1"style="border-collapse:collapse;width:600px;"><tr><td>BookID</td><td>书名</td><td>价格</td><td>出版社</td><td>数量</td><td>删除</td></tr><tr><td>1</td><td>Java核心技术</td><td>119</td><td>机械工业出版社</td><td><inputtype="text"name="booknum">本</td><td><ahref="??">删除</a></td></tr><tr><tdcolspan="6"><inputtype="submit"value="update"></td></tr><tr><tdcolspan="6">所购买书籍的总价:119元</td></tr></table></form></body></html>
编码问题到你的servlet的service方法里第一句加个request.setCharacterEncoding("UTF-8");response.setCharacterEncoding("UTF-8");
解决方案六:
引用4楼benma378的回复:
Quote: 引用3楼u014043030的回复:
问题解决了,但跳转过去中文全是问号。怎么解决啊。<%@pagelanguage="java"import="java.util.*"pageEncoding="utf-8"%><%Stringpath=request.getContextPath();StringbasePath=request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";%><!DOCTYPEHTMLPUBLIC"-//W3C//DTDHTML4.01Transitional//EN"><html><head><title>showMycart</title><linkrel="stylesheet"type="text/css"href="css/comm.css"/></head><body><h1>我的购物车</h1><formaction="xxx"method="post"><tableborder="1"style="border-collapse:collapse;width:600px;"><tr><td>BookID</td><td>书名</td><td>价格</td><td>出版社</td><td>数量</td><td>删除</td></tr><tr><td>1</td><td>Java核心技术</td><td>119</td><td>机械工业出版社</td><td><inputtype="text"name="booknum">本</td><td><ahref="??">删除</a></td></tr><tr><tdcolspan="6"><inputtype="submit"value="update"></td></tr><tr><tdcolspan="6">所购买书籍的总价:119元</td></tr></table></form></body></html>编码问题到你的servlet的service方法里第一句加个request.setCharacterEncoding("UTF-8");response.setCharacterEncoding("UTF-8");
这个就是servlet,添加了中文还是出现问号。packagecom.hsp.controller;importjava.io.IOException;importjava.io.PrintWriter;importjavax.servlet.ServletException;importjavax.servlet.http.HttpServlet;importjavax.servlet.http.HttpServletRequest;importjavax.servlet.http.HttpServletResponse;importcom.hsp.service.BookService;importcom.hsp.service.MyCart;//该控制器响应用户购买商品的请求publicclassShoppingClServletextendsHttpServlet{publicvoiddoGet(HttpServletRequestrequest,HttpServletResponseresponse)throwsServletException,IOException{response.setContentType("text/html,charset=utf-8");PrintWriterout=response.getWriter();Stringid=request.getParameter("id");//System.out.print("商品号是:"+id);//什么时候创建购物车?(在用户登录成功的时候,就创建一个购物车)//取出购物车,并添加书到购物车中MyCartmyCart=(MyCart)request.getSession().getAttribute("myCart");myCart.addBook(id,newBookService().getBookId(id));//跳转到显示我的购物车去request.getRequestDispatcher("/WEB-INF/showMycart.jsp").forward(request,response);}publicvoiddoPost(HttpServletRequestrequest,HttpServletResponseresponse)throwsServletException,IOException{PrintWriterout=response.getWriter();}}
解决方案七:
在servlet里重新解码再编码,具体的我也忘了,你可以百度一下
解决方案八:
<head><metahttp-equiv="Content-Type"content="text/html;charset=utf-8"/></head>
解决方案九:
引用7楼SDN_SUPERUSER的回复:
<head><metahttp-equiv="Content-Type"content="text/html;charset=utf-8"/></head>
还是不行。亲。
解决方案十:
引用6楼s346658910的回复:
在servlet里重新解码再编码,具体的我也忘了,你可以百度一下
求连接。。我不太懂重新解码编码。3Q。
解决方案十一:
从新编码一下代码应该是:Stringid=request.getParameter("id");byte[]b=id.getBytes("ISO8859-1");id=newString(b,"UTF-8");
试试吧
解决方案十二:
引用10楼u011988012的回复:
从新编码一下代码应该是:Stringid=request.getParameter("id");byte[]b=id.getBytes("ISO8859-1");id=newString(b,"UTF-8");试试吧
还是没办法。。重新编码全试过了都不行。
解决方案十三:
引用8楼u014043030的回复:
Quote: 引用7楼SDN_SUPERUSER的回复:
<head><metahttp-equiv="Content-Type"content="text/html;charset=utf-8"/></head>还是不行。亲。
tomcat编码设置过了么?
解决方案十四:
乱码问题一般是因为使用的编码不统一造成的,检查一下页面的编码,servlet的编码是否一样
解决方案十五:
struts2加i18econding了么<constantname="struts.i18n.encoding"value="UTF-8"/>
解决方案:
楼主的程序似曾相识,只是你通过了,我还没有调试出来。请问怎么调试?错误一大堆。请回复,谢谢!
解决方案:
我们都是用spring配置几行字,所有请求和返回都是utf-8,爽吧
解决方案:
<Connectorport="8080"maxHttpHeaderSize="8192"enableLookups="false"redirectPort="8443"acceptCount="100"connectionTimeout="20000"URIEncoding="utf-8"/>在tomcat的的server.xml配置文件下加个属性URIEncoding="utf-8"看行不行,以前用这个解决过<connector>不一定一样,找到类似的
解决方案:
引用11楼u014043030的回复:
Quote: 引用10楼u011988012的回复:
从新编码一下代码应该是:Stringid=request.getParameter("id");byte[]b=id.getBytes("ISO8859-1");id=newString(b,"UTF-8");试试吧
还是没办法。。重新编码全试过了都不行。
你这是页面显示乱码,我用你的代码正常显示,你看看你的开发工具的编码是不是uat-8,我用的MyE,直接预览正常
解决方案:
这种问题,只要项目编码设为UTF-8,Tomcat设为UTF-8,页面也同样指定为UTF-8,就解决了所有普通的乱码问题,楼主目前还是把这些都统一,不然你会经常遇到乱码问题的
解决方案:
在前台使用encodeURI(url);两次。后台对应URLDecoder.decode(##,"utf8")。
解决方案:
是不是你浏览器的编码问题