-
新建一个web项目
-
新建一张表
-
实现一个jsp +servlet+jdbc的实现
3.1 webapp目录新建一个jsp
3.2 创建一个servlet类相关
3.2.1 pom中增加依赖
javax.servlet
servlet-api
2.5
3.2.2 新建一个类,手动继承HttpServlet
public class DeptAddServlet 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 {
String name = req.getParameter("dname");
System.out.println("name...."+name);
resp.sendRedirect("index.jsp");
}
}
3.2.3 修改web.xml
<servlet>
<servlet-name>deptAdd</servlet-name>
<servlet-class>com.zt.servlet.DeptAddServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>deptAdd</servlet-name>
<url-pattern>/addDept</url-pattern>
</servlet-mapping>
3.2.4 启动tomcat ,访问,就可以看到后台接收到了deptAdd.jsp传递给DeptAddServlet的值
3.2.5 注意点:
3.3 使用jdbc
3.3.1 修改pom
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>8.0.32</version>
</dependency>
3.3.2 增加一个类
public class DeptDao {
public int add(String dname){
try {
//1. 加载驱动
Class.forName("com.mysql.cj.jdbc.Driver");
//2. 与数据库建立连接
String url ="jdbc:mysql://localhost:3306/jdbc08?useUnicode=true&characterEncoding=utf8";
String user = "root";
String password ="";
Connection con = DriverManager.getConnection(url, user, password);
String sql = "insert into tb_dept values(null,?)";
PreparedStatement pst = con.prepareStatement(sql);
pst.setString(1, dname);// 1 sql 中第1个问号, setXXX 问号在数据库中的数据类型
int result = pst.executeUpdate();// 不需要传入sql
return result ;
} catch (ClassNotFoundException e) {
e.printStackTrace();
} catch (SQLException e) {
e.printStackTrace();
}
return -1;
}
public static void main(String[] args) {
DeptDao deptDao = new DeptDao();
deptDao.add("啦啦");
}
}
通过运行上面的主函数,你会发现成功连接mysql,并添加了一条数据到数据库
3.4 整合到一起
修改DeptAddServlet类
public class DeptAddServlet 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");
String name = req.getParameter("dname");
System.out.println("name...."+name);
DeptDao deptDao = new DeptDao();
int res = deptDao.add(name);
if (res !=-1){
resp.sendRedirect("index.jsp");
}else{
resp.sendRedirect("deptAdd.jsp");
}
}
}
3.5 浏览器中访问后添加数据到数据库就成功了
- servlet优缺点
Servlets是Java编写的服务器端程序,用于处理客户端请求并生成响应。它们是构建Java Web应用程序的基础组件之一。让我们来看看它们的优缺点:
优点:
可移植性: Servlets基于Java,因此具有跨平台的特性。这意味着您可以在任何支持Java的平台上运行它们,而无需担心在不同操作系统上的兼容性问题。
性能: 与传统的CGI(通用网关接口)相比,Servlets通常具有更好的性能。由于Servlets在服务器上一次加载并保持在内存中,因此处理多个请求时不需要重复地创建和销毁进程,这有助于提高性能。
灵活性: Servlets可以与其他Java技术(如JSP、JavaBeans等)以及框架(如Spring MVC)结合使用,从而提供更高级的功能和更好的开发体验。
安全性: Servlets框架提供了安全性功能,可以轻松地实现身份验证、授权和数据加密等安全功能,有助于保护Web应用程序免受恶意攻击。
缺点:
复杂性: 相较于其他技术(如PHP或Node.js),使用Servlets编写和管理Web应用程序可能需要更多的代码和配置,因此可能会增加开发的复杂性。
学习曲线: 对于初学者来说,理解Servlets的生命周期、请求处理过程以及与其他Java技术的集成可能需要一些时间和精力,这可能会增加学习曲线。
开发效率: 尽管Servlets提供了很大的灵活性,但在某些情况下,使用其他更高级的框架(如Spring Boot)可能会更快地开发Web应用程序,因为它们提供了更多的默认配置和便利功能。
维护成本: 由于Servlets通常需要手动管理生命周期和资源,因此在大型或复杂的Web应用程序中可能需要更多的维护工作,以确保其性能和安全性。
在总体上,Servlets作为Java Web开发的基础技术之一,具有可移植性、性能和安全性等优点,但在复杂性和学习曲线方面可能略显不足。
6. jdbc优缺点
Java数据库连接(JDBC)是Java编程语言用于与数据库通信的标准API。下面是JDBC的优缺点:
优点:
-
跨平台性: JDBC是Java的一部分,因此具有跨平台的特性。无论您在哪个操作系统上运行Java应用程序,只要数据库有相应的驱动程序,JDBC就能够与之通信。
-
广泛支持: 几乎所有主流的数据库系统都提供了JDBC驱动程序,因此您可以使用JDBC来连接和操作各种数据库,如MySQL、Oracle、PostgreSQL等。
-
灵活性: JDBC提供了灵活的API,允许开发人员编写自定义的SQL语句,并且可以直接执行存储过程和函数等数据库特定的操作。
-
性能: 与ORM(对象关系映射)框架相比,JDBC通常具有更好的性能,因为它直接使用SQL语句与数据库进行通信,减少了框架的开销。
-
直观性: 对于熟悉SQL的开发人员来说,使用JDBC可以更直观地编写和理解数据库操作,因为它直接映射到SQL语句。
缺点:
-
繁琐的代码: 使用JDBC编写数据库代码可能需要编写大量的样板代码,如打开连接、创建语句、处理结果集等,这可能会导致代码的冗长和重复。
-
低级别API: JDBC是一种较低级别的API,需要开发人员处理连接管理、异常处理、事务管理等细节,这可能增加开发的复杂性和学习曲线。
-
缺乏对象映射: 与ORM框架相比,JDBC不提供对象到关系数据库表的映射,这意味着开发人员需要手动将Java对象与数据库表进行映射,增加了开发和维护的工作量。
-
安全性: 直接拼接SQL语句可能会导致SQL注入等安全漏洞,因此开发人员需要谨慎处理用户输入以防止此类攻击。
-
性能调优: 对于复杂的数据库操作或大数据量的处理,需要开发人员进行性能调优以确保应用程序的响应时间和吞吐量满足需求,这可能需要深入了解数据库和SQL语句的优化技术。
尽管JDBC具有一些缺点,但作为Java数据库通信的标准API,它仍然是连接和操作数据库的主要选择之一,特别是对于那些需要更直接地控制数据库操作的开发人员。
6. 框架的好处
总的来说,框架可以帮助开发人员快速构建可靠、高效和安全的应用程序,降低了开发成本和风险,并提高了开发的效率和质量。
提高开发效率: 框架提供了预定义的结构、模式和组件,可以帮助开发人员快速搭建应用程序的基础架构,从而减少了开发时间和工作量。
标准化开发: 框架通常遵循一套标准化的设计模式和最佳实践,使开发人