??? 实际上,一个servlet可以处理相关的业务逻辑,当然这些业务逻辑也可以单独的分别写,也就是一个业务逻辑写一个servlet,但这样会增加servlet的数量,影响开发效率,如果采用高效率的处理方法,就可以简化,增加开发效率。
?
?? 例如,一个博客系统中有关博文的操作很多,增加博文,删除博文,修改博文等业务逻辑,当然可以分别写相应处理这样的servlet,但采取用一个servlet处理更方便。 方法:可以从jsp隐含的传来一个“method”的属性,当jsp提交表单的时候,servlet会根据隐含的属性来判断调用servlet的哪个方法,然后进行相应的处理。
?
?? ?简单的代码如下: jsp 表单代码:
?
<form id="form1" name="form1" method="post" action="<%=request.getContextPath() %>/servlet/BlogServlet">? //注意:这里不要添加?method=addBlog
<input type="hidden" name="method" value="addBlog" />?
? <table width="678" border="0" cellpadding="0" cellspacing="3">
??? <tr>
????? <td width="51">标题:</td>
????? <td width="618"><label for="title"></label>
????? <input type="text" name="title" id="title" /></td>
??? </tr>
??? <tr>
????? <td>类别:</td>
????? <td><label for="select"></label>
??????? <select name="select" size="1" id="select">
????????? <option value="1">心情</option>
????????? <option value="2">旅游</option>
????? </select></td>
??? </tr>
??? <tr>
????? <td>内容:</td>
????? <td><label for="content"></label>
??????? <label for="textarea"></label>
??????? <label for="content"></label>
????? <textarea name="content" cols="80" rows="20" id="content"></textarea></td>
??? </tr>
??? <tr>
????? <td><input type="reset" name="button" id="button" value="重置" /></td>
????? <td><input type="submit" name="button2" id="button2" value="提交" /></td>
??? </tr>
???? </table>
</form>?
?
?
?
servlet代码如下:
?
public void doPost(HttpServletRequest request, HttpServletResponse response)
???throws ServletException, IOException {
??request.setCharacterEncoding("UTF-8");
??String method = request.getParameter("method");
??if (method.equals("addBlog")) {
???addBlog(request, response);
??}
?
?
public void addBlog(HttpServletRequest request, HttpServletResponse response)
???throws ServletException, IOException {
??request.setCharacterEncoding("UTF-8");
??String title = request.getParameter("title");
??String content = request.getParameter("content");
??String sql = "insert into blog (title,content,createdtime) value(?,?,now())";
??String params[] = { title, content };
??QueryRunner qr = DbHelper.getQueryRunner();
??int result = 0;
??try {
???result = qr.update(sql, params);
??} catch (SQLException e) {
???e.printStackTrace();
??}
??
?
?