字符编码问题
<%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