当前位置:编程学习 > JAVA >>

字符编码问题

<%
request.setCharacterEncoding("gb2312");
%>

在jsp页面加上 上面的代码 变量接收不到传递过来的值 去掉的话就可以接受了 
这是怎么回事怎么解决啊! java jsp --------------------编程问答-------------------- 不应该吧。。。 --------------------编程问答--------------------   你仔细看一下是不是这个问题 --------------------编程问答-------------------- 肯定不是这个原因引起的... --------------------编程问答-------------------- 能帮看下吗  这个是传递参数的jsp
<%@page contentType="text/html;charset=gb2312"%>
<%@page import="java.sql.*"%>

<%
request.setCharacterEncoding("gb2312");
if(session.getAttribute("uname")!=null)
{
%>
<%
int id=0;
try
{
id=Integer.parseInt(request.getParameter("id"));
}
catch(Exception e)
{}

%>

<%!
String DBDRIVER="com.microsoft.sqlserver.jdbc.SQLServerDriver";
String DBURL="jdbc:sqlserver://localhost:1433;DatabaseName=jdbc";
String DBUSER="sa";
String DBPWD="123";
Connection conn=null;
PreparedStatement pstmt=null;
ResultSet rs=null;

%>

<%
int i=0; //如果有内容,则修改变量i,如果没有,则根据i的值进行无内容提示
String sql="SELECT * FROM note WHERE id=?" ;
try
{
Class.forName(DBDRIVER);
conn=DriverManager.getConnection(DBURL,DBUSER,DBPWD);
pstmt=conn.prepareStatement(sql);
pstmt.setInt(1,id);
rs=pstmt.executeQuery();
if(rs.next())
{
i++;
id=rs.getInt(1);
String title=rs.getString(2);
String author=rs.getString(3);
String ucontent=rs.getString(4);



%>

<form  action="demo.jsp" method="post">
<table>
<tr>
<td colspan="2">添加新的留言</td>
</tr>
<tr>
<td>标题:</td>
<td><input type="text" name="title" value="<%=title%>"></td>
</tr>
<tr>
<td>作者:</td>
<td><input type="text" name="author" value="<%=author%>"></td>
</tr>
<tr>
<td>内容:</td>
<td><textarea name="ucontent" cols="30" rows="6" ><%=ucontent%></textarea></td>
</tr>
<tr>
<td colspan="2">
<input type="hidden" name="str" value="<%=id%>">
<input type="submit" value="修改">
<input type="reset" value="重置">
</tr>

</table>
</form>
<%=id%>
<%
}
else
{
%>
没有发现,要更新的内容!!<br>
请确认要更新的留言是否存在!!<br>
<%
}

%>

<%
rs.close();
pstmt.close();
conn.close();
}
catch(Exception e)
{
e.printStackTrace();
}

%>
<h3><a href="list_notes.jsp">回到留言列表页</a></h3>

<%
}
else
{
response.setHeader("refresh","2;URL=login.jsp") ;
%>
您还未登陆,请先登陆!!!<br>
两秒后自动跳转到登陆窗口!!!<br>
如果没有跳转,请按<a href="Login.jsp">这里</a>!!!<br>
<%
}


%> --------------------编程问答-------------------- 这个是接受参数的jsp
<%@page contentType="text/html;charset=gb2312"%>

<%@ page import="java.sql.*"%>


<%
request.setCharacterEncoding("gb2312");
if(session.getAttribute("uname")!=null)
{
// 用户已登陆
%>


<%!
String DBDRIVER="com.microsoft.sqlserver.jdbc.SQLServerDriver";
String DBURL="jdbc:sqlserver://localhost:1433;DatabaseName=jdbc";
String DBUSER="sa";
String DBPWD="123";
Connection conn = null ;
PreparedStatement pstmt = null ;
%>

<%
boolean chack = false ;
String title = request.getParameter("title") ;
String author = request.getParameter("author") ;
String content = request.getParameter("ucontent") ;
String str=request.getParameter("str");
int i=0;
try{
i=Integer.parseInt(str);
}
catch(Exception e)
{
e.printStackTrace();
}

%>
<%
// 更新note表中的数据
String sql = "UPDATE note set title=?,author=?,ucontent=? WHERE id=?" ;
try
{
//int str=Integer.parseInt(request.getParameter("str"));
Class.forName(DBDRIVER) ;
conn = DriverManager.getConnection(DBURL,DBUSER,DBPWD) ;
pstmt = conn.prepareStatement(sql) ;
pstmt.setString(1,title) ;
pstmt.setString(2,author) ;
pstmt.setString(3,content) ;
pstmt.setInt(4,i);
out.println(i);
pstmt.executeUpdate() ;
pstmt.close() ;
conn.close() ;

// 如果修改成功,则肯定能执行到此段代码
chack = true ;
}
catch(Exception e)
{
e.printStackTrace();
}
%>

<%
response.setHeader("refresh","100;URL=list_notes.jsp") ;
if(chack)
{
%>
留言修改成功,两秒后跳转到留言列表页!!!<br>
如果没有跳转,请按<a href="list_notes.jsp">这里</a>!!!
<%
}
else
{
%>
留言修改失败,两秒后跳转到留言列表页!!!<br>
如果没有跳转,请按<a href="list_notes.jsp">这里</a>!!!
<%
}
%>


<%
}
%>
//我把此页面的request.setCharacterEncoding("gb2312");注释掉就能够接收到隐藏域中的值
//写上的话接收到的隐藏域里的值是0 
//帮看下刚开始学习怎么弄就是弄不好 --------------------编程问答-------------------- 跟你这个设置码编一定是没有关系的。应该是你传值的那边出了问题吧。 --------------------编程问答-------------------- 检查下是怎么传的,是parameter还是attribute
补充:Java ,  Java EE
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,