读书人

新手关于jsp表单乱码和页面数据更新需

发布时间: 2012-09-13 09:51:53 作者: rapoo

新手关于jsp表单乱码和页面数据更新需要刷新的问题(百度和谷歌了很久都没法解决故此求大神帮助)
小弟最近初学jsp,学习书籍是《JSP实用案例教程》 清华大学出版社,冯燕奎写的,在做一个投票系统的案例。我代码中所有的编码方式都是utf-8,包括文件编码也是utf-8。
tomcat 里的web.xml 设置的也是utf-8

Assembly code
<?xml version="1.0" encoding="UTF-8"?><web-app xmlns="http://java.sun.com/xml/ns/javaee"    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"    xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"    version="2.5">        <jsp-config>    <jsp-property-group>          <description>                 Special property group for JSP Configuration JSP example.          </description>          <display-name>JSPConfiguration</display-name>          <url-pattern>*.jsp</url-pattern>          <el-ignored>true</el-ignored>          <page-encoding>UTF-8</page-encoding>          <scripting-invalid>false</scripting-invalid>          <include-prelude></include-prelude>          <include-coda></include-coda>                           <description>                 Special property group for JSP Configuration JSP example.          </description>          <display-name>JSPConfiguration</display-name>          <url-pattern>*.html</url-pattern>          <el-ignored>true</el-ignored>          <page-encoding>UTF-8</page-encoding>          <scripting-invalid>false</scripting-invalid>          <include-prelude></include-prelude>          <include-coda></include-coda>            </jsp-property-group></jsp-config>    <welcome-file-list>        <welcome-file>index.html</welcome-file>        <welcome-file>index.htm</welcome-file>        <welcome-file>index.jsp</welcome-file>    </welcome-file-list>    </web-app>


我又两个问题想请教大家。

第一个,增加项目提交form表单时中文乱码;
第二个,增加项目、删除项目之后details.jsp,admin.jsp页面需要刷新一次才能显示更改后的数据。

数据库是用书上的例子实用Access数据库,数据库连接正常,各种操作也正常。

下面是代码:
后台管理页面
admin.jsp
Assembly code
<%@page contentType="text/html;charset=UTF-8"%><%@page language="java" import="java.sql.*"%><jsp:useBean id="connDbBean" scope="page" class="vote.VoteConn"/><script language="JavaScript">       window.location.reload();</script>  <html>    <head>        <title>后台</title>        <link rel="stylesheet" type="text/css" href="style.css">    </head>    <body bgcolor="#ffffff">        <div align="center">            <p><font color="#990000" size="+2"><u>调查系统维护中心</u></font></p>            <%            ResultSet tempRs=connDbBean.executeQuery("select id,note from vote order by id");            %>            <table width="80%" border="0" cellspacing="1" cellpadding="2">                <tr>                    <td width="10%" class="text1" bgcolor="#99ccff">                        <div align="center">序号<div>                    </td>                    <td width="80%" class="text1" bgcolor="#99ccff">                        <div align="center">内容<div>                    </td>                    <td width="10%" class="text1" bgcolor="#99ccff">                        <div align="center">^_^<div>                    </td>                </tr>                <%                int i =1;            while(tempRs.next())            {%>                        <tr>                <td><div align="center"><%=i%></div></td>                <td align="center"><%=tempRs.getString("note")%></td>                <td><div align="center"><a href="delvote.jsp?id=<%=tempRs.getInt("id")%>" >删除</a></div></td>            </tr>            <%            i=i+1;            }            %>            <tr>                <td colspan="3">                    <hr width="100%" size="1">                </td>            </tr>            <tr>                <td class="text1"><div align="center"></div>                </td>                <td class="text1" colspan="2"> </td>            </tr>            <tr>                <td class="text1" colspan="3" bgcolor="#99ccff">增加项目                </td>            </tr>            <tr>                <td class="text1" colspan="3">                    <form method ="post" action="addvote.jsp">                        <p>内容                            <input type="text" name="note" size="50" maxlength="50">                        </p>                        <p>                            <input type="submit" name="Submit" value="提交"">                            <input type="reset" name="Submit2" value="重置">                        </p>                        <p> </p>                    </form>                </td>            </tr>            </table>            <%                tempRs.close();            %>    </body></html> 



增加项目的页面:
addvote.jsp
Assembly code
<%@page contentType="text/html;charset=UTF-8"%><%@page language="java" import="java.sql.*"%><jsp:useBean id="connDbBean" scope="page" class="vote.VoteConn"/><%    String nn=request.getParameter("note");    if(nn!=null&&nn.length()>0)    {        ResultSet tmpRs=connDbBean.executeQuery("select max(id) as maxid from vote");        tmpRs.next();        int max_id =tmpRs.getInt("maxid")+1;        tmpRs.close();        String sql="insert into vote values("+max_id+",'";        sql+=nn+"',0);";        System.out.println(sql);        connDbBean.executeUpdate(sql);    }    response.sendRedirect("admin.jsp");        //我从<jsp:forward page="admin.jsp">换成response.sendRedirect("admin.jsp")还是需要刷新一次才能正常显示%>


delvote.jsp
删除项目
Assembly code
<%@page contentType="text/html;charset=UTF-8"%><%@page language="java" import="java.sql.*"%><jsp:useBean id="connDbBean" scope="page" class="vote.VoteConn"/><%    String d_id=request.getParameter("id");    if(d_id!=null&&d_id.length()>0){        connDbBean.executeUpdate("delete from vote where id="+d_id);        System.out.println("delete from vote where id="+d_id);    }    response.sendRedirect("admin.jsp");//同样的问题%>




[解决办法]
乱码可以看看获取到之后进行转码。或者传的时候固定上编码。你是重定向的是重新建立的链接去的。
[解决办法]
http://blog.csdn.net/lip009/article/details/1192022

JSP中文乱码问题总结
[解决办法]
JSP的乱码问题可以归结为客户端向服务端发送和服务端想客户端发送,request和respnose两个对象正确编码,最好使用过滤器Filter来完成编码问题,可以参考一下jsp编码问题:http://www.docin.com/p-67846166.html

读书人网 >Java Web开发

热点推荐