2023年5月13日(软件工程日报)
今日完成
web相关练习
EL表达式
JSTL标签库
package servles; import java.io.IOException; import java.util.ArrayList; import javax.servlet.*; import javax.servlet.annotation.WebServlet; import javax.servlet.http.*; import book.bean.Book; @WebServlet("*.do") public class BookController extends HttpServlet { private static final long serialVersionUID = 1L; public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { doPost(request, response); } public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { request.setCharacterEncoding("utf-8"); String actionUrl = request.getServletPath(); // 获取客户请求的Servlet地址 if (actionUrl.equals("/index.do")) { // 查询所有图书 ArrayList<Book> list = Book.getBookList(); // 调用BookInfo的getBookList方法查询所有图书,赋值给list request.setAttribute("list", list); // 在request增加属性list,其结果为list对象 request.getRequestDispatcher("/index.jsp").forward(request, response);// 重定向至index.jsp进行显示 } else if (actionUrl.equals("/addview.do")) { // 新增图书显示页面 request.getRequestDispatcher("add.html").forward(request, response); } else if (actionUrl.equals("/add.do")) { // 新增图书 Book bi = new Book(); bi.setBookname(request.getParameter("bookname")); bi.setAuthor(request.getParameter("author")); bi.setPrice(request.getParameter("price")); int r = Book.addBook(bi); // 调用BookInfor的addBook方法完成 if (r == 1) request.getRequestDispatcher("success.html").forward(request, response); // 成功的话重定向至success.html else request.getRequestDispatcher("failure.html").forward(request, response); // 失败的话重定向至failure.html } else if (actionUrl.equals("/edit.do")) { // 客户端要对指定id的图书进行修改 String id = request.getParameter("id"); Book bi = Book.getBookById(id); // 调用BookInfo的getBookById方法获取图书信息,赋值给bi对象 request.setAttribute("bi", bi); // 将bi对象增加到request的属性中 request.getRequestDispatcher("/edit.jsp").forward(request, response);// 重定向至edit.jsp进行显示 } else if (actionUrl.equals("/update.do")) { // 用户输入要修改的图书的信息之后需要保存到数据库 Book bi = new Book(); bi.setId(request.getParameter("id")); bi.setBookname(request.getParameter("bookname")); bi.setAuthor(request.getParameter("author")); bi.setPrice(request.getParameter("price")); int r = Book.updateBook(bi);// 调用BookInfo的updateBook方法实现 if (r == 1) request.getRequestDispatcher("/success.html").forward(request, response);// 成功的话重定向至success.html else request.getRequestDispatcher("/failure.html").forward(request, response);// 失败的话重定向至failure.html } else if (actionUrl.equals("/delete.do")) { // 用户需要删除指定id的图书 String id = request.getParameter("id"); int r = Book.deleteBook(id); // 调用BookInfo的deleteBook方法实现 if (r == 1) request.getRequestDispatcher("/success.html").forward(request, response);// 成功的话重定向至success.html else request.getRequestDispatcher("/failure.html").forward(request, response);// 失败的话重定向至failure.html } } }
package servles; 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; @WebServlet("/ajaxServlet") public class ajaxServlet extends HttpServlet { @Override protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { doPost(req,resp); } @Override protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { req.setCharacterEncoding("utf-8"); resp.setContentType("text/html;charset=utf-8"); String name = req.getParameter("param1"); String password = req.getParameter("param2"); resp.getWriter().print(name+","+password); } }
package servles; import java.io.IOException; import java.util.*; 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 org.json.*; import book.bean.Book; @WebServlet("*.action") public class AjaxController extends HttpServlet { private static final long serialVersionUID = 1L; public AjaxController() { super(); // TODO Auto-generated constructor stub } protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { doPost(request, response); } protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { request.setCharacterEncoding("utf-8"); response.setContentType("text/html;charset=utf-8"); String actionUrl = request.getServletPath(); // 获取客户端的访问URL地址信息 if (actionUrl.equals("/list.action")) { // 查询所有图书 ArrayList<Book> list = Book.getBookList(); // 调用BookInfo的getBookList方法完成 // 使用JSONArray对象将结果构建为json对象并输出到客户端 JSONArray jsonArray = new JSONArray(); for (int i = 0; i < list.size(); i++) { Book book = list.get(i); Map<String, Object> map = new HashMap<String, Object>(); map.put("id", book.getId()); map.put("bookname", book.getBookname()); map.put("author", book.getAuthor()); map.put("price", book.getPrice()); JSONObject BookObj = new JSONObject(map); jsonArray.put(BookObj); } // 向客户端返回json结果 response.getWriter().print(jsonArray.toString()); } else if (actionUrl.equals("/add.action")) { // 增加图书操作 Book bi = new Book(); bi.setBookname(request.getParameter("bookname")); bi.setAuthor(request.getParameter("author")); bi.setPrice(request.getParameter("price")); int r = Book.addBook(bi); // 调用BookInfo的addBook方法完成 // 向客户端返回结果 response.getWriter().print(r); } else if (actionUrl.equals("/edit.action")) { // 编辑图书操作 String id = request.getParameter("id"); Book bi = Book.getBookById(id); // 调用BookInfo的getBookById方法完成 // 将该对象构建为json数据 Map<String, Object> map = new HashMap<String, Object>(); map.put("id", bi.getId()); map.put("bookname", bi.getBookname()); map.put("author", bi.getAuthor()); map.put("price", bi.getPrice()); JSONObject BookObj = new JSONObject(map); // 向客户端返回结果 response.getWriter().print(BookObj.toString()); } else if (actionUrl.equals("/update.action")) { // 更新图书操作 Book bi = new Book(); bi.setId(request.getParameter("id")); bi.setBookname(request.getParameter("bookname")); bi.setAuthor(request.getParameter("author")); bi.setPrice(request.getParameter("price")); int r = Book.updateBook(bi);// 调用BookInfo的updateBook方法完成 response.getWriter().print(r); // 向客户端返回结果 } else if (actionUrl.equals("/delete.action")) { // 删除图书操作 String id = request.getParameter("id"); int r = Book.deleteBook(id); // 调用BookInfo的deleteBook方法完成 response.getWriter().print(r); // 向客户端返回结果 } } }
package book.bean; import java.sql.*; public class Dao { private String driverStr = "com.mysql.jdbc.Driver"; private String connStr = "jdbc:mysql://127.0.0.1:3306/book?useSSL=false&useUnicode=true&characterEncoding=utf-8"; private String dbusername = "root"; private String dbpassword = "123456"; private Connection conn = null; private Statement stmt = null; public Dao() { try { Class.forName(driverStr); conn = DriverManager.getConnection(connStr, dbusername, dbpassword); stmt = conn.createStatement(); System.out.println("22222"); } catch (Exception ex) { } } public int executeUpdate(String s) { int result = 0; try { result = stmt.executeUpdate(s); } catch (Exception ex) { } return result; } public ResultSet executeQuery(String s) { ResultSet rs = null; try { rs = stmt.executeQuery(s); } catch (Exception ex) { } return rs; } public void close() { try { stmt.close(); conn.close(); } catch (Exception e) { } } }
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· SQL Server 2025 AI相关能力初探
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南