JSP问题 求解
关于修改日志的,用的MVC模式
代码:
jsp:
<%
int id=Integer.parseInt(request.getParameter("id"));
ArticleDao ad=new ArticleDao();
List<Article> list=ad.select(id);
Article article=list.get(0);
%>
<table><tr><td>
<div align="left">
<div>编辑日志</div>
<hr style="color:#CCCCCC;height:1px;width:760px;">
<form action="ArticleServlet?mothod=updateArticle" method="post" name="form1">
<div>
<span>标题:</span>
<span><input type="text" name="title" value="<%=article.getTitle() %>"></span>
</div><br>
<div>
<span>内容:</span><br>
<span><textarea rows="45" cols="60" name="content" style="width: 729px; height: 505px"><%=article.getContent() %></textarea></span>
</div><br>
<div>
<span>关键字:</span>
<span><input type="text" name="information" value="<%=article.getInformation() %>"></span>
</div><br>
<div>
<input type="submit" value="修改" name="submit">
</div>
</form>
</div></td></tr></table>
servlet:
//修改日志
public void updateArticle(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
response.setContentType("text/html");
response.setCharacterEncoding("gbk");
PrintWriter out=response.getWriter();
String title=request.getParameter("title");
title=new String(title.getBytes("ISO-8859-1"),"gb2312");
String content=request.getParameter("content");
content=new String(content.getBytes("ISO-8859-1"),"gb2312");
int id=Integer.parseInt(request.getParameter("id"));
String information=request.getParameter("information");
information=new String(information.getBytes("ISO-8859-1"),"gb2312");
Article article=new Article();
article.setTitle(title);
article.setContent(content);
article.setId(id);
article.setInformation(information);
ArticleDao rd=new ArticleDao();
boolean flag=rd.updateArticle(article, id);
if(flag)
{
out.print("<script>alert('修改成功!');window.location.href='blog/showArticle.jsp';</script>");
}
else
{
out.print("<script>alert('对不起,修改失败!');window.location.href='blog/updateArticle.jsp';</script>");
}
}
DAO:
//修改日志
public boolean updateArticle(Article article,int id)
{
boolean flag=false;
try
{
String sql="update article set title=?,content=?,information=? where id=?";
con=db.getConnection();
pstmt=con.prepareStatement(sql);
pstmt.setString(1, article.getTitle());
pstmt.setString(2, article.getContent());
pstmt.setString(3, article.getInformation());
pstmt.setInt(4,id);
int result=pstmt.executeUpdate();
if(result>0)
{
flag=true;
return flag;
}
}catch(Exception e)
{
e.printStackTrace();
}
return flag;
}
报错:
严重: Servlet.service() for servlet ArticleServlet threw exception
java.lang.NumberFormatException: null
at java.lang.Integer.parseInt(Integer.java:415)
at java.lang.Integer.parseInt(Integer.java:497)
at cn.jmi.blog.servlet.ArticleServlet.updateArticle(ArticleServlet.java:97)
at cn.jmi.blog.servlet.ArticleServlet.service(ArticleServlet.java:49)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:228)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:175)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:104)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:216)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:844)
at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:634)
at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:445)
at java.lang.Thread.run(Thread.java:595)