标签:
最近再跟着视频,学做一个简单的BBS。用来掌握所学习的Servlet,jsp,以及数据库的相关知识。
1.当传输过来的数据中有中文时,
request.setCharacterEncoding("GBK"); 会保证,传输过来的字段会是中文
要注意的是:在执行setCharacterEncoding()之前,不能执行任何getParameter()。 在执行第一个getParameter()时,java将会按照编码分析所有提交内容,后面的getParameter()将不再分析。
2.
1 boolean autoCommit=conn.getAutoCommit(); 2 conn.setAutoCommit(false);//将此连接的自动提交模式设置为给定状态。如果连接处于自动提交模式下,则它的所有 SQL 语句将被执行并作为单个事务提交。否则,它的 SQL 语句将聚集到事务中,直到调用commit
方法或rollback
方法为止。默认情况下,新连接处于自动提交模式。
3 4 int rootId=-1; 5 String sql="insert into article values(null,0,?,?,?,now(),0)"; 6 7 PreparedStatement pstmt=conn.prepareStmt(sql,Statement.RETURN_GENERATED_KEYS); //创建一个默认PreparedStatement
对象,该对象能获取自动生成的键。 8 pstmt.setInt(1, rootId); 9 pstmt.setString(2, title); 10 pstmt.setString(3, cont); 11 pstmt.executeUpdate(); 12 13 ResultSet rsKey=pstmt.getGeneratedKeys();//获取由于执行此Statement
对象而创建的所有自动生成的键。如果此Statement
对象没有生成任何键,则返回空的ResultSet
对象。 14 rsKey.next(); 15 rootId=rsKey.getInt(1);//获得结果集里第一个自动生成键的值 16 17 Statement stmt=DB.createStmt(conn); 18 stmt.executeUpdate("update article set rootId="+ rootId +" where id =" + rootId); 19 20 conn.commit(); 21 conn.setAutoCommit(autoCommit);
3.
String action=request.getParameter("action"); if(action!=null&&action.trim().equals("post")){ //执行代码 }
1 <form action="post.jsp" method="post"> 2 <input type="hidden" name="action" value="post"/> 3 标题:<input type="text" name="title" /><br> 4 内容:<textarea rows="15" cols="80" name="cont"></textarea><br> 5 <input type="submit" name="提交" value="提交"/> 6 </form>
jsp文件自己提交到自己本身,设置一个隐藏的表单元素,而在jsp的java代码处接收传过去的参数,与隐藏表单元素的值对比,若相同,则证明现在的页面是由本身提交过去的。
标签:
原文地址:http://www.cnblogs.com/df1995/p/5788823.html