删除文章
(一)注解配置路由
在Servlet3.0之后都可以用注解的方式直接配置路由,
@WebServlet("/login")
不在需要web.xml+servlet的开发方式
<!--登录-->
<servlet>
<servlet-name>login</servlet-name>
<servlet-class>services.LoginServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>login</servlet-name>
<url-pattern>/login</url-pattern>
</servlet-mapping>
如此开发会高校便捷很多,此后我们就以这种方式进行开发
要想进行这样使用,需要配置一下web.xml,将
metadata-complete="false"
改为false。表示当前web.xml中的路由,并不是全部的路由文件,此时它就回去寻找注释的路由。
(二) 文章列表修改删除键
在“删除”上添加事件响应
<a href='javascript:mydel("+article.id+")'>删除</a>
随后添加一个mydel删除函数
function mydel(id) {
if(confirm("确认删除吗?")) {
jQuery.getJSON("del",{
"id":id
},function (data) {
if(data != null && data.succ == 1) {
alert("删除成功");
location.href = location.href;
}else {
alert("删除失败:"+data.msg);
}
});
}
}
(三) 在数据库进行删除操作
在AritcleInfoDao中添加删除方法
/**
* 删除文章
* @param id
* @return
* @throws SQLException
*/
public int del(int id) throws SQLException {
int result = 0;
if(id > 0) {
Connection connection = DBUtils.getConnection();
String sql = "delete from articleinfo where id=?";
PreparedStatement statement = connection.prepareStatement(sql);
statement.setInt(1,id);
result = statement.executeUpdate();
DBUtils.close(null,statement,connection);
}
return result;
}
(四) 添加删除servlet
package services;
import dao.ArticleInfoDao;
import utils.ResultJSONUtils;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.sql.SQLException;
import java.util.HashMap;
/**
* Created with IntelliJ IDEA.
* Description:模板(copy)
* User: starry
* Date: 2021 -04 -08
* Time: 16:46
*/
@WebServlet("/del")
public class DelServlet extends HttpServlet {
@Override
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
this.doGet(request, response);
}
@Override
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
int succ = -1; // succ=1 表示操作成功
String msg = "lala"; // 错误说明信息
// 1.从前端获取参数
int id = Integer.parseInt(request.getParameter("id"));
// 2.调用数据库执行相应的业务逻辑
if(id > 0) {
ArticleInfoDao dao = new ArticleInfoDao();
try {
succ = dao.del(id);
} catch (SQLException throwables) {
throwables.printStackTrace();
}
}else {
msg = "非法操作,请先登录账号";
}
// 3.将上一步操作的结果返回给前端
HashMap<String, Object> result = new HashMap<>();
result.put("succ", succ);
result.put("msg", msg);
ResultJSONUtils.write(response, result);
}
}
这样就删除功能了!!!