public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
request.setCharacterEncoding("utf-8");
String title = request.getParameter("title");
String content = request.getParameter("content");
String category = request.getParameter("category");
int cid = Integer.parseInt(category); System.out.println(title);
System.out.println(content);
System.out.println(cid);
DataSource ds = null;
try {
InitialContext context = new InitialContext();
ds = (DataSource) context.lookup("java:comp/env/jdbc/MBlog");
long end = System.currentTimeMillis();
System.out.println("end-start"); //测试连接数据库时间 } catch (Exception e) {
System.out.println("获取数据源失败!");
}
try {
Connection conn = ds.getConnection();
if(conn==null)
{
System.out.println("连接失败");
}
else{
System.out.println("连接成功!");
}
String sql = "insert into blog(cat_id,title,content,created_time)values(?,?,?,'2010-12-01')";
PreparedStatement pstm = conn.prepareStatement(sql);
pstm.setInt(1, cid);
pstm.setString(2, title);
pstm.setString(3, content);
int result = pstm.executeUpdate();
System.out.println(result);
} catch (SQLException e) {
e.printStackTrace();
}
}问题:jsp页面中的textarea文本框中,输入了两行数据
title:测试
content:再测试
一遍
cid: 1执行完数据库操作后为什么content字段只有插入了“再测试”这一行数据呢?也就是说换行数据没有插入到数据库中,我哪写错了!
throws ServletException, IOException {
request.setCharacterEncoding("utf-8");
String title = request.getParameter("title");
String content = request.getParameter("content");
String category = request.getParameter("category");
int cid = Integer.parseInt(category); System.out.println(title);
System.out.println(content);
System.out.println(cid);
DataSource ds = null;
try {
InitialContext context = new InitialContext();
ds = (DataSource) context.lookup("java:comp/env/jdbc/MBlog");
long end = System.currentTimeMillis();
System.out.println("end-start"); //测试连接数据库时间 } catch (Exception e) {
System.out.println("获取数据源失败!");
}
try {
Connection conn = ds.getConnection();
if(conn==null)
{
System.out.println("连接失败");
}
else{
System.out.println("连接成功!");
}
String sql = "insert into blog(cat_id,title,content,created_time)values(?,?,?,'2010-12-01')";
PreparedStatement pstm = conn.prepareStatement(sql);
pstm.setInt(1, cid);
pstm.setString(2, title);
pstm.setString(3, content);
int result = pstm.executeUpdate();
System.out.println(result);
} catch (SQLException e) {
e.printStackTrace();
}
}问题:jsp页面中的textarea文本框中,输入了两行数据
title:测试
content:再测试
一遍
cid: 1执行完数据库操作后为什么content字段只有插入了“再测试”这一行数据呢?也就是说换行数据没有插入到数据库中,我哪写错了!
解决方案 »
- java 数据库连接(oracle)
- 如何实现在点击图片下载链接时,直接弹出一个下载的窗口.而不是在新的窗口打开这个图片
- 我的应用是j2ee应用吗?
- select optiion 联动
- 在网上找到一个JSP的发送邮件程序,自己稍作修改,但是运行出错,程序很短,达人帮忙看看
- 求教 JSP页面乱码问题 struts表单繁体中文乱码 数字和英文正确
- 请问如何用Java Servlet或Jsp上传图像文件并把该图像保存到数据库中去,谢了!
- 网页中能打印吗?
- 特大喜讯:JSP+数据库的免费空间+xml+WAP,FREE!!!
- java webservice Axis框架问题
- java如何获取google的搜索结果页面
- 为什么我的网页会死掉
就可以知道是页面值拿错了 还是 插入数据库出错了
<table width="828" border="0">
<tr>
<td width="79">主题:</td>
<td width="739"><label>
<input type="text" name="title" id="textfield" />
</label></td>
</tr>
<tr>
<td>类别:</td>
<td><select name="category">
<option value="1">心情故事</option>
<option value="2">旅游故事</option>
</select></td>
</tr>
<tr>
<td>内容:</td>
<td><label>
<textarea name="content" cols="100" rows="6" id="content"></textarea>
</label></td>
</tr>
<tr>
<td><label>
<input type="reset" name="button" id="button" value="重置" />
</label></td>
<td><label>
<input type="submit" name="button2" id="button2" value="提交" />
</label></td>
</tr>
<tr>
<td> </td>
<td> </td>
</tr>
<tr>
<td> </td>
<td> </td>
</tr>
</table>
</form>上面是jsp的form加了
pstm.setInt(1, cid);
pstm.setString(2, title);
System.out.println(content);
pstm.setString(3, content);
是多行数据,但是执行数据库操作时就进去一行数据
content.replace('\r','~');
把读到的字符串里面的\n\r用一个用不到的特殊字符替代,然后以后从数据库读出来的时候在反过来调用替换回去
不然你就换个其它的文本域组件试一下
我没有遇到换行就报错的问题
只有使用一些编辑器的时候才会有一些特殊字符串的问题